# Data Dictionary



## Leno (26. Jan 2012)

Guten Abend liebes Forum,

ich habe eine Frage bezüglich Data Dictionary und Java. Ein Data Dictionay beschreibt Entitäten und deren Attribute, so hoffe ich habe ich das richtig verstanden. 

Ich habe ein solches vorliegen und wollte Fragen ob man die Objekte aus einem solchen DD übernehmen kann und in Java programmieren kann, z.B. Person ( Attribute Name, etc...) oder ist ein solches DD nur für den Aufbau bzw. die Beschreibung von Datenbanken notwendig bzw. geeinget ?


----------



## SlaterB (27. Jan 2012)

reichlich abstrakte Frage,

ob du eine Klasse Person mit Attributen name usw. erstellst, hängt doch davon ab ob du die Klasse brauchst oder nicht?
wenn das schon irgendwo beschrieben steht ist das ja schön, aber wo besteht der direkte Zusammenhang?
du willst nicht automatisch Code erzeugen lassen, oder?


----------



## Leno (27. Jan 2012)

Ja es geht eigentlich im folgendes, ich habe ein DD indem z.B. die Entität Person beschrieben ist.
Die Ent.Pers hat attribute wie z.B. Name, Adresse , Ort etc... 

Ich wollte diese Entität aus dem DD direkt in Java abbilden als Klasse z.B. , für ein Projekt benötigen wir Testdaten und ich möchte Daten wie z.B. Namen, Adresse in einer CSV auf der Festplatte Lokal speichern.

Anschließend möchte ich auf die Datei per Java zugreifen die weret auslesen und Sie dann an Person Objekte binden. Anschließend wollte ich diese Datensätze mischen ( als zufällig ) und dann wieder in die CSV Datei zurückschreiben. 

Dadurch soll eine art Generator programmiert werden, der aus bereits hinterlegten CSV Dateien zufällig neue erstellt.


----------



## Leno (27. Jan 2012)

Wie gesagt das DD beschreibt legendlich welche Entitäten und Attribute benötigt werden, die Idee war es diese in Java abzubilden und zufallswerte zu erzeugen. Das wäre der Zusammenhang zwischen DD und Java.


----------



## Michael... (27. Jan 2012)

Leno hat gesagt.:


> Anschließend wollte ich diese Datensätze mischen ( als zufällig ) und dann wieder in die CSV Datei zurückschreiben.


Heißt: Die Reihefolge der Datensätze mischen? Dafür benötigt man nicht unbedingt eine Klasse Person oder Java allgmein.
Heißt: Einzelne Werte zwischen verschiedenen Datensätzen austauschen? Dafür würde es sich anbieten eine Klasse zu schreiben, die den Datensatz als Objekt abbildet (z.B. eine Klasse Person)


----------



## SlaterB (27. Jan 2012)

zwischen Klassen schreiben und Daten einlesen sollten wir streng unterscheiden, letzteres passiert klar automatisch, aus Datei usw.,

bei ersterem sehe ich keine deutliche Antwort, ob du die Klassen per Tastatur eintippen oder automatisch generieren willst,
ok, für den Einlese-Code der Daten gilt das im Grunde auch, wenn Person-Objekte erstellt, Attribute befüllt werden sollen,
dann braucht das ja auch alles Code-Zeilen

dass das DD, in welcher Form auch immer, die Klassen beschreibt und die Daten damit zusammenhängen, dürfte klar sein,
was genau ist dazu jetzt die Frage?

ich kann weiter nur zum Punkt automatische Generierung raten/ vermuten, 
wie viele Klassen gibt es eigentlich? was passiert letztlich mit denen, greifen andere dann normale Java-Klassen darauf zu?,
oder muss das nur in sich verarbeitet werden, z.B. damit am Ende andere Daten in Datei-Form herauskommen?

denkbar ist allgemein auch keine speziellen Einzelklassen Person, .. zu verwenden sondern 'Entity' mit einer Liste an Attributnamen/ Datentypen, einer Liste der Werte usw.

allgemein ist automatische Code-Generation immer möglich, klar, es braucht nur eine genau strukturierte einlesbare Definition


----------



## Leno (27. Jan 2012)

@ Michal : Ja tatsächlich ist es so das z.B. aus einer Person Ftitz , Mustermann ,29
               Fritz , Schneider , 39  werden soll. Es geht also nicht nur um die zufällig Mischung der     Reihenfolge, also das hier meine ich nicht   Thorsten,Rudolf -->  Rudolf, Thorsten.
Leider kann mir keiner aus dem Projektteam, eine Antwort darüber geben ob meine Idee in die richtge Richtng geht, zudem ist mein latein auch am Ende.


----------



## Leno (27. Jan 2012)

@ SlaterB : Ja du denkst in die richtige Richtung ,es ist so das wir im DD genau 6 Entitäten abgebildet haben, zu denen Testdaten erzeugt werden sollen. Ich dachte ich hinterlege listen( CSV ) mit bereits definierten werten  Name , Vorname 
                          Gustav,Karl 
                          Rüdiger,Otto


das ist zwar viel arbeit, aber jemand muss ja paar Daten hinterlegen. Anschließend läuft Java über die Liste, liest die Namen,Vornamen aus und weisst Sie dann in unterschiedlicher Rheienfolgen einem Objekt vom Typ Person zu. z.B.   


```
class Person {

private String name;
private String vorname;

public Person( String name, String vorname) {

this.name = name;
this.vorname = vorname;
etc...
```

durch das zufällige zuordnen der vornamen und namen enstehen Person Objekte wie z.B. Karl,Rüdiger. Diese Objekte bzw. werden dann in einen neue CSV abgelegt. 

Dadurch habe ich neue Daten sozusagen, aus den hinterlegten Daten.


----------



## Camino (27. Jan 2012)

Was passiert denn dann mit den neu erzeugten Testdaten? Ausser, dass sie in einer CSV-Datei gespeichert werden? Werden die auch noch in der Anwendung gebraucht?


----------



## Leno (27. Jan 2012)

@Camino : Ja die Daten werde per Datenimport in ein CRM importiert. 

Wichtig war mir nur ob einer von euch eine bessere Idee hat, oder mir feedback gibt ob die Idee die ich bisher habe totaler schrott ist. 

Wie gesagt habe bereits auch schon was programmiert was dies lösen könnte, habe aber von meinen vorgesetzten gesagt bekommen "geht das auch einfacher? ohne zu progen" , meiner Meinung nach gibt es nur diese vernünftige Lösung.


----------



## Camino (27. Jan 2012)

Leno hat gesagt.:


> @Camino : Ja die Daten werde per Datenimport in ein CRM importiert..



Und in diesem CRM werden die Daten in einer Datenbank gespeichert? Ist denn der Import über CSV-Dateien vorgegeben und nicht änderbar?

Ich hab nämlich für eine Anwendung, die auch Personen verwaltet, mir einen Zufallsgenerator in die Anwendung eingebaut (während der Entwicklungszeit), mit dem ich zufällige Personendaten erstellen kann, um die Anwendung zu testen. Ich hab das halt fest in Klassen als Arrays reingeschrieben (Vornamen, Nachnamen, Strassennamen usw.) und andere Daten wie z.B. Geburtsdatum per Zufall erstellen lassen.


----------



## Leno (27. Jan 2012)

@ Camino : Ja die Daten werden in das MS CRM 2011 in der Datenbank abgelegt, entsprechende Felder und Entitäten ( Person, etc.. ) sind bereits angelegt oder werden noch angelegt. 

Das hörst sich ja fast nachdem an was ich auch brauche , naja es ist halt so das wir Daten für die Präsentation dieses CRM brauchen. Die Daten müssen wir daher zuerst erstellen ( generieren ) und dann in die Datenbank des CRM schieben, das könnte dann so aussehen :

hier meine CSV 
Name,Vorname
Richard,Klaus 

hier mein MSCRM ( sozusagen die Felder einer Entität ) 
Name = Richard Vorname = Klaus 

Daher bin ich gerade dabei einen Generator zu schreiben. Also die Idee mit dem Fest reinschreiben in die Arrays ist schon gut und zufälliges generieren von Geburtsdatum auch, das entspricht auch fast dem was ich mache


----------



## Camino (27. Jan 2012)

Ich hab meinen Zufallsgenerator halt erstmal in die Anwendung integriert (fliegt dann nach der Entwicklung wieder raus). Ich hab eben eine Person-Klasse, mit den verschiedenen notwendigen Feldern (Vorname, Nachname, Matrikelnummer, Geburtsdatum, Strasse, PLZ, Wohnort...). Der Zufallsgenerator erstellt mir dann Person-Objekte und schreibt die gleich in die Datenbank rein. Und ich kann dem Zufallsgenerator sagen, wie viele Datensätze er mir erstellen soll. Wie schon gesagt, die benötigten Daten wie Vornamen und Nachnamen hab ich mir aus Namenslisten im Internet kopiert und in Arrays fest reingeschrieben. Der Zufallsgenerator holt sich dann diese Daten und stellt die Person zusammen. Beim Geburtsdatum muss man halt bestimmte Zahlenbereiche festlegen: Tage von 1 bis 31 (auch vom Monat abhängig), Monate von 1-12, Geburtsjahr evtl. ein Mindest- oder Höchstalter...


----------



## Michael... (27. Jan 2012)

Es geht also nicht um das Austauschen von Werten, sondern um das Erstellen von Zufallspersonen!?
Kann man das nicht direkt per Java in der Datenbank machen oder muss das über ein CSV Import erfolgen?
Bei letzterem würde ich ja fast sagen: Spar Dir die Programmiererei, erzeuge die Zufallspersonen in Excel und speichere die Liste als csv.


----------

