Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Anwendungen des OODM auf die ADB / NDB. Umsetzung des Er Diagramms in ein Objektorientiertes Datenmodell Versuch möglichst nah am Konzept des Diagramms.

Ähnliche Präsentationen


Präsentation zum Thema: "Anwendungen des OODM auf die ADB / NDB. Umsetzung des Er Diagramms in ein Objektorientiertes Datenmodell Versuch möglichst nah am Konzept des Diagramms."—  Präsentation transkript:

1 Anwendungen des OODM auf die ADB / NDB

2 Umsetzung des Er Diagramms in ein Objektorientiertes Datenmodell Versuch möglichst nah am Konzept des Diagramms zu bleiben Entitäten als Objekte realisiert Für die Realisierung Java verwendet Ergebnis: 10 Klassen

3

4 Klasse Person

5 Atomare Attribute als elmentare Typen Attribut mit weiteren Attributen als innere Klasse Mehrwertige Attribute als ArrayList Kapselung der Attribute und daraus folgende Probleme

6 Klasse Person public class Person { private String geschlecht; private int geburtsDatum; private int todesDatum; private String geburtsOrt; private String sterbeOrt; private int id; public class Name {//innere Klasse private String nachname; private String vorname; private ArrayList pseudonym = new ArrayList (); private ArrayList namensVariation = new ArrayList (); }//Ende der Inneren Klasse {

7 Klasse Person Sicherstellung der Objektidentität. Jedes Objekt bekommt eine eindeutige Identifikation OID Einsatz des Konstruktor Automatische OID Erzeugung Speicherung der ID in einer statischen ArrayList ArrayList von außen nur über get-Methode erreichbar Keine Set-Methode für IDListe

8 Konstruktor von Person public class Person { private int id; private static ArrayList personenIDListe = new ArrayList (); public Person(){ id=(int)(100*Math.random()*Math.random()*10); while(personenIDListe.contains(id)){ id=(int)(100*Math.random()*Math.random()*10); }personenIDListe.add(id); –} public int getId() { return id; } }

9 Eltern und Kinder Verbindung mit Eltern über Referenzvariable Kinder werden in ArrayList gespeichert Beim verbinden der Eltern auch automatischer Eintrag in der Kinder- ArrayList Get-Methoden für Mutter, Vater und Kinder

10 Eltern und Kinder public class Person { private ArrayList kinder = new ArrayList (); private Person vater; private Person mutter; public void setKinder(Person kind) { If(!kinder.conatins(kind)){ kinder.add(kind);} } public void setMutter(Person mutter) { this.mutter = mutter; mutter.setKinder(this); } public Person getMutter() { return mutter; }

11

12 Personen und Studium Klasse Studiert Klasse Institution Klasse Fach Atomare Attribute wie vorher schon gezeigt OID wie bereits bei der Klasse Person gezeigt über Konstruktor Studiert als eigene Klasse, da eigene Attribute im Diagramm Person, Institution und Fach haben jeweils eine Referenz auf ein Objekt von Studiert Problem: zeigen nicht auf das gleiche Objekt. Entwurfsmuster Singelton- Objekt auch keine Lösung

13 Attribute von Klasse Studiert public class Studiert { private int studiumsId; private int anfang; private int ende; private float anzahlInMonaten; }

14 Konstruktor der Klasse Studiert public class Studiert { private int studiumsId; private int anfang; private int ende; private float anzahlInMonaten; private ArrayList studiumsIDListe = new ArrayList (); public Studiert(){//Konstruktor studiumsId=(int)(100*Math.random()*Math.random()*10); while(studiumsIDListe.contains(studiumsId)){ studiumsId=(int)(100*Math.random()*Math.random()*10); }studiumsIDListe.add(studiumsId); }

15 Studierende Personen public class Studiert { private HashMap > personMap = new HashMap >(); public void setPersonenMap(Person p, ArrayList iL){ personMap.put(p,iL); } //überladene set-methode für Personen(Key) Institutionen(Value) public void setPersonenMap( Person p, Institution iL){ ArrayList i = personMap.get(p); i.add(iL); personMap.clear(); personMap.put(p,i); }

16 Studiert und Person Erstellung eines Studium Objekts in der Klasse Person Set-Methode greift über die Referenz auf die Objekt eigenen Setter-Methoden Wichtigsten Informationen werden übergeben

17 Studiert und Person public class Person { Studiert student =new Studiert(); public void setStudienInformationen(int a, int e, float f, Institution i,String fachName){ student.setAnfang(a); student.setEnde(e); student.setAnzahlinMonaten(f); student.setPersonenMap(this,i); Fach fach =new Fach(fachName); student.setPersonFaecherKombi(this, fach); }

18 Nach dem gleichen Prinzip greifen auch die Klassen Institution und Fach auf das Studiums Objekt zu. Unterschied: Fach speichert die Personen –Fächer Kombinationen ab. Institution wie viel Personen an einer Institution studieren

19 Verschiedene Fächer einer Person public class Studiert { private HashMap > personFaecherKombi = new HashMap >(); public void setPersonFaecherKombi( Person p, Fach f) { ArrayList a = personFaecherKombi.get(f); a.add(f); personFaecherKombi.clear(); personFaecherKombi.put(p,a); }

20 public class Fach { Studiert studium = new Studiert(); public void setStudienInformationen(int a, int e, float f, Institution i, Person p){ studium.setAnfang(a); studium.setEnde(e); studium.setAnzahlinMonaten(f); studium.setPersonenMap(p,i); studium.setFachPersonenKombi(this,p); }

21

22

23 Werke einer Person Werk und Art_des_Werks zu einer Klasse zusammengefasst Werk schwache Entität Attribute wie voran gegangen umgesetzt Innerhalb der Klasse Person eine ArrayList welche nur Objekte vom Typ Werk aufnimmt Plus übliche Getter und Setter Methoden

24 Klasse Werk public class Werk{ private String titel; private int jahr; private int artId; private String artTyp; }

25 Konstruktor der Klasse Werk public class Werk{ private int artId; private static ArrayList artIDListe = new ArrayList (); public void Werk(){ artId=(int)(Math.random()*Math.random()*100); while(artIDListe.contains(artId)){ artId=(int)(100*Math.random()*Math.random()*10); }artIDListe.add(artId);} }

26 Liste von Werken einer Person public class Person { private ArrayList werke =new ArrayList (); }

27

28 Verbindung zwischen Person und Fundstelle per Interface gelöst Fundstelle fungiert als Interface für Referenz und Priorität In den Klassen Porträt und Referenz Attribute wie vorangegangen umgesetzt Mit Konstruktor OID automatisch erstellt In der Klasse Person eine ArrayListe vorhanden, welche nur Objekte vom Typ Fundstelle annimmt

29 Leeres Interface Fundstelle public interface Fundstelle { }

30 Klasse Proträt mit Interface Fundstelle public class Protraet implements Fundstelle { private String titel; private int jahr; private String autor; private String ausstellungsOrt; private static ArrayList titelListe = new ArrayList (); public Protraet(String titel){ this.titel= titel; titelListe.add(titel); }

31 Referenz und Interface Fundstelle public class Referenz implements Fundstelle { private int referenzID; private String autor; private String titel; private String verlag; private ArrayList seiter; private static ArrayList referenzIDListe = new ArrayList (); public Referenz(){ referenzID=(int)(100*Math.random()*Math.random()); while(referenzIDListe.contains(referenzID)){ referenzID=(int)(100*Math.random()*Math.random()); } referenzIDListe.add(referenzID); }

32 Fundstellen in der Klasse Person public class Person { private ArrayList fundstellen = new ArrayList (); }


Herunterladen ppt "Anwendungen des OODM auf die ADB / NDB. Umsetzung des Er Diagramms in ein Objektorientiertes Datenmodell Versuch möglichst nah am Konzept des Diagramms."

Ähnliche Präsentationen


Google-Anzeigen