Anwendungen des oodm auf die adb ndb
Download
1 / 32

Anwendungen des OODM auf die ADB / NDB - PowerPoint PPT Presentation


  • 51 Views
  • Uploaded on

Anwendungen des OODM auf die ADB / NDB. 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. Klasse Person. Klasse Person.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Anwendungen des OODM auf die ADB / NDB ' - clive


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript


Klasse person
Klasse Person Datenmodell


Klasse person1
Klasse Person Datenmodell

  • Atomare Attribute als elmentare Typen

  • Attribut mit weiteren Attributen als innere Klasse

  • Mehrwertige Attribute als ArrayList

  • Kapselung der Attribute und daraus folgende Probleme


Klasse person2
Klasse Person Datenmodell

  • publicclass Person {

  • private String geschlecht;

  • privateint geburtsDatum;

  • privateint todesDatum;

  • private String geburtsOrt;

  • private String sterbeOrt;

  • privateint id;

  • publicclass Name {//innere Klasse

  • private String nachname;

  • private String vorname;

  • privateArrayList<String> pseudonym = new ArrayList<String> ();

  • privateArrayList<String> namensVariation = new ArrayList<String> (); }//Ende der Inneren Klasse

  • {


Klasse person3
Klasse Person Datenmodell

  • 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


Konstruktor von person
Konstruktor von Person Datenmodell

  • publicclass Person {

  • private int id;

  • privatestatic ArrayList<Integer> personenIDListe = newArrayList<Integer>();

  • 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);

    • }

  • publicint getId() {

  • return id; }

  • }


Eltern und kinder
Eltern und Kinder Datenmodell

  • Verbindung mit Eltern über Referenzvariable

  • Kinder werden in ArrayList<Person> gespeichert

  • Beim verbinden der Eltern auch automatischer Eintrag in der Kinder-ArrayList

  • Get-Methoden für Mutter, Vater und Kinder


Eltern und kinder1
Eltern und Kinder Datenmodell

  • publicclass Person {

  • private ArrayList<Person> kinder = new ArrayList<Person>();

  • private Person vater;

  • private Person mutter;

  • public void setKinder(Person kind) {

  • If(!kinder.conatins(kind)){

  • kinder.add(kind);}

  • }

  • publicvoid setMutter(Person mutter) {

  • this.mutter = mutter;

  • mutter.setKinder(this);

  • }

  • public Person getMutter() {

  • return mutter;

  • }


Personen und studium
Personen und Studium Datenmodell

  • 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


Attribute von klasse studiert
Attribute von Klasse Studiert Datenmodell

  • publicclass Studiert {

  • privateint studiumsId;

  • privateint anfang;

  • privateint ende;

  • privatefloat anzahlInMonaten;

  • }


Konstruktor der klasse studiert
Konstruktor der Klasse Studiert Datenmodell

  • publicclass Studiert {

  • privateint studiumsId;

  • privateint anfang;

  • privateint ende;

  • privatefloat anzahlInMonaten;

  • private ArrayList<Integer> studiumsIDListe = new ArrayList<Integer>();

  • 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);

  • }

  • }


Studierende personen
Studierende Personen Datenmodell

  • public class Studiert {

  • private HashMap<Person,ArrayList<Institution>> personMap = new HashMap<Person,ArrayList<Institution>>();

  • publicvoid setPersonenMap(Person p, ArrayList<Institution> iL){

  • personMap.put(p,iL);

  • }

  • //überladene set-methode für Personen(Key) Institutionen(Value)

  • publicvoid setPersonenMap( Person p, Institution iL){

  • ArrayList<Institution> i = personMap.get(p);

  • i.add(iL);

  • personMap.clear();

  • personMap.put(p,i);

  • }

  • }


Studiert und person
Studiert und Person Datenmodell

  • Erstellung eines „Studium“ Objekts in der Klasse „Person“

  • Set-Methode greift über die Referenz auf die Objekt eigenen Setter-Methoden

  • Wichtigsten Informationen werden übergeben


Studiert und person1
Studiert und Person Datenmodell

  • publicclass Person {

  • Studiert student =new Studiert();

  • publicvoid 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);

  • }



Verschiedene f cher einer person
Verschiedene Fächer einer Person Institution und Fach auf das Studiums Objekt zu.

  • publicclass Studiert {

  • private HashMap<Person,ArrayList<Fach>> personFaecherKombi= newHashMap<Person,ArrayList<Fach>>();

  • publicvoidsetPersonFaecherKombi( Person p, Fach f) {

  • ArrayList<Fach> a = personFaecherKombi.get(f);

  • a.add(f);

  • personFaecherKombi.clear();

  • personFaecherKombi.put(p,a);

  • }

    }


  • public Institution und Fach auf das Studiums Objekt zu.class Fach {

  • Studiert studium = new Studiert();

  • publicvoid 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);

  • }

    }


Werke einer person
Werke einer Person Institution und Fach auf das Studiums Objekt zu.

  • 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


Klasse werk
Klasse Werk Institution und Fach auf das Studiums Objekt zu.

  • publicclass Werk{

  • private String titel;

  • privateint jahr;

  • privateint artId;

  • private String artTyp;

  • }


Konstruktor der klasse werk
Konstruktor der Klasse Werk Institution und Fach auf das Studiums Objekt zu.

  • publicclass Werk{

  • privateint artId;

  • private static ArrayList<Integer> artIDListe = new ArrayList<Integer>();

  • publicvoid Werk(){

  • artId=(int)(Math.random()*Math.random()*100);

  • while(artIDListe.contains(artId)){

  • artId=(int)(100*Math.random()*Math.random()*10);

  • }artIDListe.add(artId);}

  • }


Liste von werken einer person
Liste von Werken einer Person Institution und Fach auf das Studiums Objekt zu.

publicclass Person {

  • private ArrayList<Werk> werke =new ArrayList<Werk>();

    }


  • 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


Leeres interface fundstelle
Leeres Interface Fundstelle gelöst

  • public interface Fundstelle {

  • }


Klasse protr t mit interface fundstelle
Klasse Proträt mit Interface Fundstelle gelöst

  • public class Protraet implements Fundstelle {

  • private String titel;

  • private int jahr;

  • private String autor;

  • private String ausstellungsOrt;

  • private static ArrayList<String> titelListe = new ArrayList<String>();

  • public Protraet(String titel){

  • this.titel= titel;

  • titelListe.add(titel);

  • }

  • }


Referenz und interface fundstelle
Referenz und Interface Fundstelle gelöst

  • public class Referenz implements Fundstelle {

  • private int referenzID;

  • private String autor;

  • private String titel;

  • private String verlag;

  • private ArrayList<String> seiter;

  • private static ArrayList<Integer> referenzIDListe = new ArrayList<Integer>();

  • public Referenz(){

  • referenzID=(int)(100*Math.random()*Math.random());

  • while(referenzIDListe.contains(referenzID)){

  • referenzID=(int)(100*Math.random()*Math.random());

  • }

  • referenzIDListe.add(referenzID);

  • }


Fundstellen in der klasse person
Fundstellen in der Klasse Person gelöst

  • public class Person {

  • private ArrayList<Fundstelle> fundstellen = new ArrayList<Fundstelle>();

  • }


ad