PMG2224 1/DB Beleg/Erik

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>SQL</language>


==<Big><Center>Datenbankbeleg - Philosophen der Aufklärung: Soziale Kontakte & Eigene Werke</Center></Big>==




===Begründung der Themenwahl===
----

Mit diesem Beleg soll darauf aufmerksam gemacht werden, wie relevant der soziale Kontakt von Philosophen der Aufklärung untereinander war, da                              dieser oft eine nicht zu vernachlässigende Wirkung auf deren Werke besaß. Außerdem wird die Verpflechtung von Intellektuellen jeder Art in Kunst und Literatur gezeigt. Hierbei wird auch nicht außer Acht gelassen, welche Themen von Autoren jeglicher Art aufgegriffen werden, um Inhalte der Aufklärung zu verkörpern. In der Hoffnung auf Kardinalitäten zu stoßen, die für die Erklärung des Verlaufs der Aufklärung nützlich sind finden sie im Folgenden meine Arbeit zu genanntem Thema.
Auch wenn die Darstellung nur einen sehr vereinfachten Blick auf dieses komplexe Geflecht gibt, sollte sie trotzdem, um etwas mehr Übersicht bemüht, helfen.

===Modellierung des Entity-relationship-Modells===
----
[[Bild:Erich_More_Hope_ERM.jpg.jpg]]

===Relationenmodell===
----

Um die Umsetzung in einer Datenbank vorzubereiten, sehen sie hier die Tabellen der jeweiligen Entitäten. Dabei wurde aufgrund der n zu m Beziehung von 'Philosophen' und 'Einflusspersonen' die zusätzliche Tabelle 'austauschen' angelegt. Außerdem sind noch zusätzlich mit Verbindungen die Fremdschlüssel gekennzeichnet.


[[Bild:Erich_Tables-ER_More_Hope.jpg]]

===Datenbank===
----

<code id="65e18babb6235">

CREATE TABLE Philosophen(
  Phil_ID int(10), 
  Name varchar(30),
  Lebensdaten varchar(30),
  Alleinstellungsmerkmal varchar(40),
  Land mit längstem Aufenthalt varchar(20),
  PRIMARY KEY  (Phil_ID)
);

CREATE TABLE Einflusspersonen(
  Ein_ID int(10),
  Name varchar(70),
  Lebensdaten varchar(10),
  Beruf oder Tätigkeit varchar(50),
  PRIMARY KEY  (Ein_ID)
);

CREATE TABLE Eigene_Werke(
  Werk_ID int(10),
  Titel varchar(100),
  Erscheinungsdatum int(10),
  Thema varchar(100),
  Werkart varchar(30),
  Ein_ID int(10),
  Phil_ID int(10), 
  PRIMARY KEY  (Werk_ID),
  FOREIGN KEY (Ein_ID) REFERENCES Einflusspersonen(Ein_ID),
  FOREIGN KEY (Phil_ID) REFERENCES Philosophen(Phil_ID)
);

CREATE TABLE austauschen(
  Ein_ID int(10),
  Phil_ID int(10),  
  FOREIGN KEY (Ein_ID) REFERENCES Einflusspersonen(Ein_ID),
  FOREIGN KEY (Phil_ID) REFERENCES Philosophen(Phil_ID)
);

INSERT INTO Philosophen VALUES (1, 'Jean-Jaques Rousseau', '1712-1778', 'Republik bzw. direkte Demokratie', 'Frankreich');
INSERT INTO Philosophen VALUES (2, 'Thomas Hobbes', '1588-1679', 'Leviathan', 'England');
INSERT INTO Philosophen VALUES (3, 'Voltaire oder Francois-Marie Arouet l.j.', '1694-1778', 'Gesellschaftskritiken', 'Frankreich');
INSERT INTO Philosophen VALUES (4, 'John Locke', '1632-1704', 'Einfache Gewaltenteilung', 'England');
INSERT INTO Philosophen VALUES (5, 'David Hume', '1711-1776', 'Moral durch Empirie', 'England');
INSERT INTO Philosophen VALUES (6, 'Immanuel Kant', '1724-1804', 'Kategorische Imperativ', 'Preußen');

INSERT INTO Einflusspersonen VALUES (1, 'Friedrich II', '1712-1786', 'König');
INSERT INTO Einflusspersonen VALUES (2, 'Charles Francois Frederic II de Montmorency-Luxembourg', '1662-1726', 'Gouverneur der Normandie');
INSERT INTO Einflusspersonen VALUES (3, 'Rene Descartes', '1596-1650', 'Universalgelehrter');
INSERT INTO Einflusspersonen VALUES (4, 'Robertr Boyle', '1626-1691', 'Naturwissenschaftler');
INSERT INTO Einflusspersonen VALUES (5, 'Paul Henri Thiry dHolbach', '1723-1789', 'Philosoph');
INSERT INTO Einflusspersonen VALUES (6, 'Johann Erich Biester', '1749-1816', 'Philosoph');

INSERT INTO Eigene_Werke VALUES (1, 'Vom Gesellschaftsvertrag oder Prinzip des Staatsrechtes', '1762', 'Politisches System von Kleinflächenstaaten', 'Buch', '0', '1');
INSERT INTO Eigene_Werke VALUES (2, 'Leviathan', '1651', 'Staatsform Englands', 'Buch', '0', '2');
INSERT INTO Eigene_Werke VALUES (3, 'Henriade', '1723', 'Lobesgedicht für Ludwig IV','Gedicht', '0', '3');
INSERT INTO Eigene_Werke VALUES (4, 'Zwei Abhandlungen über die Regierung', '1690', 'Politisches System und Kritik Englands', 'Buch', '0','4');
INSERT INTO Eigene_Werke VALUES (5, 'Eine Untersuchung über den menschlichen Verstand', '1748', 'Moralphilosophie', 'Buch', '0', '5');
INSERT INTO Eigene_Werke VALUES (6, 'Die Kritiken', '1788', 'Philosophie des Handelns', 'Trilogie', '0','6');

INSERT INTO austauschen VALUES (2, 1);
INSERT INTO austauschen VALUES (3, 2);
INSERT INTO austauschen VALUES (1, 3);
INSERT INTO austauschen VALUES (4, 4);
INSERT INTO austauschen VALUES (5, 5);
INSERT INTO austauschen VALUES (6, 6);

 
</code>


===SQL-Abfragen===
----

<Big> Alle Einflusspersonen ausgeben lassen </Big>

<run id="65e18babb62d3">

SELECT * FROM Einflusspersonen

</run>

<Big> Ausgabe aller Eigenen Werke, die keine Bücher sind </Big>

<run id="65e18babb6317">

SELECT * FROM Eigene_Werke WHERE Werkart <> 'Buch'

</run>


<run id="65ede1de36732">



</run>


<run id="65ede1de36788">

</run>


<run id="65ede1de367d8">

</run>

===Reflexion===
----


====Erklärung der Kardinalitäten====
----

====='Philosophen' - 'Einflusspersonen'=====

Ein Philosoph tauscht sich mit mehreren Einflusspersonen aus.
Eine Einflussperson tauscht sich mit mehreren Philosophen aus.
-> Folglich: n zu m

====='Philosophen' - 'Eigene Werke'=====

Ein Eigenes Werk wird von einem Philosoph verfasst.
Ein Philosoph verfasst mehrere Eigene Werke.
-> Folglich: 1 zu n 

Problem: Weitere Werke können auch von mehreren Personen verfasst worden sein. Allerdings hätte das Implizieren dieses Umstands zu einer weiteren Tabelle im ER geführt, dank der so entstandenen n zu m Beziehung. Aufgrund von mangelnder Übersicht bei solcher Ausführung wurde darauf verzichtet.

====='Einflusspersonen' - 'Eigene Werke'=====

Ein Eigenes Werk wird von einer Einflussperson geschrieben.
Eine Einflussperson schreibt mehrere Eigene Werke. 
-> Folglich 1 zu n

Problem: Identisches Problem, wie bei Kardinalität 'Philosophen' - 'Eigene Werke'

====Wahl von Entitäten und Attributen====
----


=====Entität - 'Eigene Werke'=====

Die Wahl des Namens 'Eigene Werke' insinuiert schon, dass es sich nur um Werke der genannten Philosophen oder Einflusspersonen handeln kann. Auch wenn dies andere Werke anderer bedeutender Personen außen vor lässt, ist die Betitelung als solches trotzdem wichtig, um Dopplungen zu vermeiden. Außerdem muss darauf geachtet werden, dass der Titel dieser Entität im Programmcode 'Eigene_Werke' heißt.

=====Entität - 'Philosophen'=====

Der Beruf des Philosophen war in der Zeit der Aufklärung kein geschützter Begriff und es ist bei einigen nicht klar hervorgegangen, ob sie sich als solchen definieren. Der Einfachheit halber habe ich nach Einschätzung der heutigen Zeit diese einfach als solche bezeichnet, um Verwirrung zu vermeiden.

=====Fehlende Entität - 'Andere Werke'=====

Eigentlich war in diesem Datenbeleg vorgesehen eine weitere Entität (siehe Titel) zu implizieren, allerdings ist bei der Modellierung mit einer solchen aufgefallen, dass es einen Überfluss an Daten und Relationsmodellen gegeben hätte, da diese zu zu vielen 'n' zu 'm' Beziehungen geführt hätte. Somit wäre das Ziel dieses ERM's, für mehr Übersichtlichkeit zu sorgen, schiefgegangen und meine Arbeit hätte nicht ihre Funktion gehabt.

=====Attribut - 'Alleinstellungsmerkmal' (Philosophen)=====

Das Attribut 'Alleinstellungsmerkmal' weißt insofern Probleme auf, als dass es ganz meiner Urteilskraft unterlag, was als ein solches definiert wird. Da es keinerlei offizielle Einstufungen solcher gibt, musste ich nach bestem Gewissen und Wissensstand mein Urteil darüber abgeben.

=====Attribut - 'Lebensdaten' (Philosophen/Einflusspersonen)=====

Bei den Lebensdaten beider Entitäten, wurde sich auf die Jahreszahl beschränkt, da nur diese für die historische Einordnung von Relevanz zeugt. Somit wurde der Arbeits- & Speicheraufwand begrenzt. Durch das Angeben der Lebenszeitspanne wurde allerdings die Möglichkeit verwährt, nach einem bestimmten Datum zu suchen, da so immer nur die Zeitsspanne ausgegeben wird

=====Attribut - 'Name' (Philosophen)=====

Bei einem solchen einfachen Attribut sollte es eigentlich zu keinen kritikwürdigen Ungereimtheiten kommen. Die Kritik ist auch eher im Sinne einer autorischen Anmerkung, um Verwirrung zu vermeiden, zu betrachten, da der Philosoph 'Voltaire' laut Geburtsname 'Francois-Marie Arouet l.j. (le jeune)' heißt. 

=====Attribut - 'Name' (Einflusspersonen)=====

Auch bei dem Attribut des Namens der anderen Entität kommt das Problem der Schreibweise eines Namen auf, da die Person mit Ein_ID '5' eigentlich 'd'Holbach'. Allerdings wäre das Apostroph im Namen nicht mit der Programmiersprache vereinbar gewesen.

=====Attribut - 'Land mit längstem Aufenthalt' (Philosophen)=====

Dieses Attribut mit unhandlichem Titel ist insofern kritisch zu bewerten, als dass es nicht runterzubrechen ist auf 'Nationalität', da viele Aufklärer durch ihre von Reform und Kritik beherrschten Werke zur Flucht gezwungen wurden. Würde ich dann trotz Flucht nur das Herkunftsland notieren, wäre das Ziel dieses Attributs verfehlt, da es auf die vermutlich größte Wirkung in einem Land hinabzielt in Abhängigkeit zu der dort verbrachten Zeit.

=====Attribut - 'Werkart' (Eigene Werke)=====

'Werkart' als Attribut zielt darauf ab eine grobe Einordnung zu geben, um welches Textformat es sich handelt, ohne genaue Textsortenangaben zu machen, da diese manchmal auch nicht eindeutig sind.

===Tools & Quellen===
----