Was ist der Unterschied zwischen einem Entitäten und einem Entitätstyp?

...komplette Frage anzeigen

1 Antwort

Die Begriffe kommen eigentlich aus der Welt von relationalen Datenbanken. ERM ist "Entity Relationship Model", bezeichnet also, wie die Entitäten zusammen in Beziehung stehen.

In Programmiersprachen findet das eine analoge Anbindung, hierbei verstärkt unter Enterprise Umgebungen (Java EE hat eine Annotation @Entity, hierauf beziehe ich mich gleich.)

Konkret ist die Entität die Gestalt eines Entitätstypes... was heißt das?

Stellen wir uns eine Bank vor (in der man sein Geld hinterlegt, nich die zum drauf setzen), hätte sie z.B. Konten, Kunden und Mitarbeiter.

Konten hätten: - Eine Kontonummer - eine Bankleitzahl - einen "besitzer" also einen Kunden - einen "betreuer" also einen Mitarbeiter

Die Entität ist das konkrete Konto mit der Kontonummer 1234555, der Bankleitzahl der Bank eben, dem Kunden YEmere und dem betreuer tsiegleauq.

Der Enitätstyp ist schlichtweg Konto.

Wie bereits beschrieben, ein Konto hat einen besitzer, - das ist die "Beziehung" zwischen einem Konto (einer Konto-Entiät) und einem Kunden (einer Kunden-Enität).

Programmiertechnisch ließe sich das folgendermaßen auf Java mittelt Java EE und JPA (Java persistance API) abbilden (für fortgeschrittene):

@Entity
public class Konto implements Serializable {

private static final long serialVersionUID = 1L;

@Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id;

private int kontonummer;
private int blz;
@OneToOne private Kunde besitzer;
@OneToOne private Mitarbeiter betreuer;

public Konto() {
}

public Konto(int kontonummer, int blz, Kunde besitzer, Mitarbeiter betreuer) {
    this.kontonummer = kontonummer;
    this.blz = blz;
    this.besitzer = besitzer;
    this.betreuer = betreuer;
}

@Override
public int hashCode() {
    int hash = 0;
    hash += (id != null ? id.hashCode() : 0);
    return hash;
}

@Override
public boolean equals(Object object) {
    if (!(object instanceof Konto)) {
        return false;
    }
    Konto other = (Konto) object;
    if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
        return false;
    }
    return true;
}

@Override
public String toString() {
    return "id = " + this.id + " Kontonummer = " + this.kontonummer;
}

 //getter setter }

Was möchtest Du wissen?