Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Access Datenbank für Ausbildungsberufe





Frage

Hallo, ich habe folgendes Problem: Nach langem Überlegen und Probieren hänge ich an den Berufen mit Fachrichtungen fest. Und zwar, in der Datenbank sollen jeden Beruf mehrere Fachrichtungen zugeordnet werden. Bedingung, es sollen keine Redundanzen oder leere Datensätze in der Tab vorhanden sein. Ich habs mit Abfragen probiert, das wird aber verdammt aufwendig da es 127 Berufe gibt, es hat nich jeder Beruf eine Fachrichtung, aber ungefähr 30 Berufe haben ne Fachrictung. Außerdem hat nicht jeder Beruf nur eine Fachrichtung sondern teilweise sogar 5. Wie kann ich es "am einfachsten" machen, für die Benutzer? Bitte um Hilfe.... Danke...

Antwort 1 von OmaDuck

Hallo,
das ist ein klassischer m:n Fall. Du brauchst eine Zwischentabelle in der Du jedem Beruf eine Fachrichtung zuordnest.
Bsp.:
Tab. Berufe
Id
Text
Tab. Fachrichtungen
ID
Text
Tab. Zuordnung
ID
Berufe.ID
Fachrichtungen.ID

In der Tabelle Zuodnung kann dann jeder Beruf, aber auch jede Fachrichtung, mehrfach vorkommen
Gruß
OmaDuck

Antwort 2 von Datenbankler

aber es sollen ja eben nicht fachrichtungen mehrfachvorkommen, d.h. keine duplikate, sondern einem beruf sollen bspw. 5 fachrichtungen zugeordnet werden, sollte ich diese "mehrfach fachrichtungen" in nem nachschlage feld unterbringen? was auch nicht so funzt.....

oder mit nem unterdaten blatt...

bitte um hilfe

cu

Antwort 3 von Teddy7

Du hast ja 2 Tabellen: Berufe und Fachrichtungen - wobei in tblFachrichtungen der Beruf nochmal als Schlüssel steht.
Also machst Du ein Formular mit Datenquelle Berufe.
Da soll man z.B. über ein Kombifeld den Beruf auswählen können, den man pflegen oder ändern will, bzw. einen neuen Beruf eingeben.
In dieses Formular hängst Du ein Endlos-Unterformular mit Datenquelle Fachrichtungen, verknüpft mit dem Hauptformular über den Beruf. Hier werden dann alle zu dem Beruf gehörenden Fachrichtungen angezeigt.
Wichtig ist, daß man bei Neueingaben dafür sorgt, daß das Feld Beruf in der tblFachrichtung aus dem Feld Beruf im Hauptformular gefüllt wird (dann muß es nicht jedesmal mit erfaßt werden).

Gruß
Teddy

Antwort 4 von Datenbankler

in der Tab Fachrichtungen stehen nur die Fachrichtungen, ich hab jetz mal n feld mit Berufe angelegt soweit so gut.

Ich klär euch mal auf, was noch in der DB für Tab sind.

einmal die Berufe Tab mit Feld Berufe, Berater, Fachrichtungen, Berufsschule, Dauer, weitere Informationen, Zwischenprüfung, Abschlussprüfung.

Dann eine Tab Berater mit Feld Berater-Nr, Ausbildungsberater, Telefon, Email.

Dann die besagte Tab Fachrichtungen mit Feld Fachrichtungen.

Und eine Tab Berufsschule mit Feld Berufsschule, Straße, Postleitzahl, Ort, Ansprechpartner, Schulleiter/-in, Stellvertreter, Telefon, Fax, email, Internetadresse.

so...das waren sie alle, ich werd den Vorschlag von Teddy mal gleich ausprobieren, den Vorschlag von OmaDuck hab ich nicht ganz verstanden mit den IDs...trotzdem Danke.

Antwort 5 von Datenbankler

@ Teddy
ich kann doch gar nicht in der Tab Fachrichtungen das Feld Berufe als Primär schlüssel festlegen....steht doch gar nix drinne

Antwort 6 von Teddy7

Das muß aber gefüllt sein/werden, weil Du sonst keine Verbindung Beruf/Fachrichtungen herstellen kannst.

Von Schlüssel in der Tabelle hab ich nix gesagt !

Antwort 7 von RalfH

Hallo,
Was Teddy meint ist, das Du ja eine Verknüpfung brauchst, damit Access die diversen Fachrichtungen auch einen Beruf zuordnen kannst. Das nennt man Relation.

Beispiel:

Tab Berufe
Berufs_id  = 1
Beruf: Lackierer
Berufsbeschreibung: blabla

Tab Fachrichtung
Fachrichtungs_id=1
Zitat:
Berufs_id: Hier kommt nun der zu verknüpfende Beruf rein.
Fachrichtung: Maler und Lackierer

Tab Fachrichtung
Fachrichtungs_id=2
Zitat:
Berufs_id: Hier kommt nun der zu verknüpfende Beruf rein.
Fachrichtung: Fahrzeuglackierer

Nun wird im Hauptformular der Beruf LACKIERER angezeigt und im Unterformular die 2 dazugehörigen Fachrichtungen.

Hier kannste Du mal nachlesen:


Relationen
Gruß Ralf

Antwort 8 von Datenbankler

" Du hast ja 2 Tabellen: Berufe und Fachrichtungen - wobei in tblFachrichtungen der Beruf nochmal als Schlüssel steht."

damit hast du doch gesagt, dass in der Tab Fachrichtungen der Beruf als Primärschlüssel definiert is....oder was soll das heißen?

Antwort 9 von Datenbankler

Guter Stoff Ralf, aber nicht grad einfach....
danke.

Zurück zur DB, also mach ich jetz ne neue Tab mit den Namen ID. Mit Berufe_ID und Fachrichtung_ID, die beiden als Primärschlüssel, dann verknüpf ich das feld Berufe_ID mit der Tab Berufe, über das Feld Berufe.

Dann schnapp ich mir die Tab ID, verknüpfe das Feld Fachrichtung_ID mit dem Feld aus der Tab Fachrichtung, soweit in Ordnung?

danke

Antwort 10 von Datenbankler

ich versteh nich, wie dass gehen soll.

1. es sind ca. 127 berufe
2. es sind ca. 68 Fachrichtungen

wie soll ich dass machen, dass über die Tab IDs den Berufen die richtigen Fachrichtungen angezeigt werden??
Is das dass Prinzip "mach ne Tabelle in der machst 2 spalten mit Laufenden Nummern, und diese Nummern werden Primärschlüssel"?

Wenn das so ist, is es doch einfach....

Hoffe ich habs richtig verstanden...

danke

Antwort 11 von Teddy7

Schlüssel hat nix mit Primärschlüssel zu tun.

Die Tabellen sollten so aussehen

tblBerufe:
id1 autowert primärschlüssel
Beruf text
....sonstige Felder zum Beruf......


tblFachrichtung:
id2 autowert primärschlüssel
Beruf text
Fachrichtung text
....sonstige Felder zur Fachrichtung......

ODER SO

tblBerufe:
id1 autowert primärschlüssel
Beruf text
....sonstige Felder zum Beruf......


tblFachrichtung:
id2 autowert primärschlüssel
id1 long integer
Fachrichtung text
....sonstige Felder zur Fachrichtung......

Die Verknüpfung zwischen den beiden Tabelln macht man erst in einer Abfrage oder in Formular/Unterformular.

Antwort 12 von Datenbankler

Danke Teddy....schwere Geburt mit der DB :)

habe soweit die Tabellen mit autowerten versehen.
Jetzt sollte ich die Abfragen oder das Formular/Unterformular starten?

Warum macht man die Verknüpfungen außerdem erst bei der Abfrage bzw. Formular/Unterformular?

Antwort 13 von Datenbankler

wenn ich die beiden Tabellen verknüpfen will, also die Berater Tabelle mit Berater_ID Primärschlüssel und die Tabelle Berufe mit Berufe_ID Primärschlüssel, dann versucht er ne 1:1 verbindung aufzubaun, was ja überhaupt nicht vom logischen her stimmen kann, da ein berater ca. 20-30 berufe betreut.

Dann sag mir doch bitte Teddy, wie ich die Tabellen verküpfen soll?

Danke.

Antwort 14 von Teddy7

Man kann bereits die Tabellen miteinander verknüpfen. Aber das kann zu Problemen führen und ist überflüssig, es sei denn man will eine automatische Löschweiterleitung haben.
Wenn Du es also so haben willst, daß wenn ein Beruf gelöscht wird automatisch die zugehörigen Fachrichtungen gelöscht werden, dann solltest Du eine Verknüpfung bei den Tabellen einrichten.
/////
Berater-Id mit Berufs-Id verknüpfen ist natürlich Schwachsinn.
Eigentlich solltest Du jetzt schon wissen, daß man bei einer 1:n Verbindung eine zusätzliche Tabelle braucht, in der der Berater(oder seine ID) und die zugehörigen Berufe(oder deren id) gespeichert werden.

Antwort 15 von Datenbankler

ich hab ja ne tab für die ganzen IDs.

Tab ID mit Feldern Berufe_ID, Berater_ID, Berufsschule_ID, Fachrichtungen_ID.

Antwort 16 von Datenbankler

die ganzen restlichen "informationen" wie etwa die Orte der Berufsschule oder der Ansprechpartner, die werden ja auch "sozusagen" mit verknüpft, ich mein, dass ich an die infos rankomme über das formular später, is doch richtig oder?

Antwort 17 von RalfH

Hallo Datenbankler,

Es gibt Programmierer die Verknüpfungen (Relationen)erst zur Laufzeit, z.B. bei einer Abfrage erstellen. So wie es Teddy dir schreibt, und es ist nicht verkehrt !

Allerdings bin ich der Meinung, gerade dann, wenn man am Anfang seiner Datenbankler Karriere ;-) steht, sollte man es so machen, wie es die Gelehrten beschreiben.


Hier mal ein wenig Grundlagen Wissen

Datenmodellierung:

Der Datenmodellierung kommt im Prozess der allgemeinen Anwendungsentwicklung eine überragende und grundlegende Bedeutung zu, denn ohne eine konsistente Datenstruktur wird eine Datenbank auf dauer nicht widerspruchsfrei funktionieren.

Bei der Datenmodellierung kommt es darauf an, Sachverhalte von Ausschnitten der realen Welt in einem logischen konsistenten Datenmodell abzubilden.


Das ERM Model Entity-Relationship-Modell
Das wird nicht nur in Access benutzt sondern in allen Relationalen Datenbanken (Ms Access,MS SQL, PostgrSQL, usw)

Entity: Entität Eine Entität repräsentiert Objekte der realen Welt z.B ( Kunden,Berufe,Personal, Kategorien,Bestellungen, usw.)
Jede Entität wird durch eine Tabelle wiedergegeben.


Entitäten besitzen Attribute ( Eigenschaften).
Zum Beispiel hat die Entität "Personal" die Eigenschaften Name,Nachname,Anrede, usw.) Eigenschaften werden also in der Tabelle als Felder wiedergegeben.

Beziehungen
Eine Beziehung drückt den Zusammenhang zwischen zwei Tabellen ( Entitäten) aus.

Man Unterscheidet zwischen drei Beziehungstypen:
1:n ( Ein Datensatz der Tabelle A, passt zu vielen in der Tabelle B)
m:n (Ein Datensatz der Tabelle A passt zu vielen in B, und von Tabelle B zu vielen in Tabelle A)

1:1 ( Ein Datensatz der Tabelle A, passt zu höchstens einem Datensatz der Tabelle B)

Der wesentliche Grund für die Aufteilung der Daten in verschiedenen Tabellen ist die Vermeidung von überflüssigen Daten ( Redudanzen), die
a) vermehrt Speicherplatz belegen würden
b) dadurch die performance Bremsen und
c) die zu Wiedersprüchen in den Daten führen können und somit auf Dauer den gebrauch einer Datenbank minimieren bzw. unmöglich machen.

Wichtig ist, das in den Tabellen Primärschlüsselfelder definiert werden.

Ein Primärschlüssel ein eindeutiger Wert zu einem Datensatz, quasi der Fingerabdruck !

Das heißt, wenn ich in Tabelle Fachrichtung den ID Schlüssel des Berufes unterbringe ( dass nennt man Fremdschlüssel),
Und ich jetzt ein Formular Berufe erstelle, in diesem Formular ein EnhdlosUnterformular Fachrichtungen erstelle, werden beide Formulare mit dem Schlüssel Berufs_ID verknüpft. Und die entsprechenden Daten werden Dir angezeigt, so wie in Antwort 7 beschrieben.

Das ganze wäre aus meiner Sicht eine 1 zu N Verbindung
1 Beruf kann x beliebige Fachrichtungen haben ( siehe z.B. Kaufmännische Berufe oder Ingeneure).

Gruß Ralf

Antwort 18 von RalfH

sorry, Antwort 3 von Teddy vergessen, auch Klasse beschrieben.
Gruß Ralf

Antwort 19 von Datenbankler

@ RalfH

Top, Top geschrieben .....

Jetzt erscheint mir vieles Klarer.

Meld mich wenn se fertig is .

Danke an alle, die mir hier geholfen haben.
CU

Antwort 20 von Datenbankler

@ RalfH
was meinst du mit " wenn ich in Tabelle Fachrichtungen den ID Schlüssel des Berufes unterbringe (dass nennt man Fremdschlüssel),"

was soll ich da machen? soll ich ne spalte machen mit autowert als laufende NR oder was?

Antwort 21 von RalfH

Die Schlüsselnummer des Berufes wird da eingetragen.
Kein Autowert

Antwort 22 von Datenbankler

Aber es wird dann doch redundanzen geben in der tabelle, weil wenn ich in die tabelle fachrichtungen die Berufe Nr schreibe, kann das nich funktionierern. Eine Fachrichtung wird nich einem Beruf zugeordnet, sondern ein Beruf wird mehreren Fachrichtungen zugeordnet.

Es gibt (immer noch) 128 Berufe und ca. 66 fachrichtungen, wenn, dann muss ich in die Tabelle Berufe ne Fachrichtungen Nr einfügen oder nich?

Antwort 23 von Teddy7

es soll in der tblFachrichtungen einen Datensatz geben je Kombination Beruf(ID) und Fachrichtung.


Deshalb soll ja das Unterformular, in dem die Fachrichtungen des Berufs (s.o.) angezeigt/geändert/erfasst werden ein ENDLOS-Formular sein.

Antwort 24 von RalfH

Guten Morgen,

Probier es einfach mal aus, wie sagt man so schön?
Probieren geht über studieren!
Gruß Ralf

Antwort 25 von Datenbankler

Moin,

also, ich hab mir die Sache nochmal angeguckt.

Also mach ich ne Zwischentabelle für die Berufe und die Fachrichtungen, in die Spalte Berufe kommen die Gesamten Berufe rein, ABER jeder Beruf soll ja in der tabelle wegen den Fachrichtungen mehrfach vorkommen (deswegen ja das endlos Formular) richtig?

bsp. ich schreib darein Beruf: Anlagenmechaniker Fachrichtung: Schweitßechnik, Beruf: Anlagenmechaniker Fachrichtung: Drehtechnik

bis alle Fachrichtungen für den Beruf "aufgebraucht" sind, richtig??

Antwort 26 von RalfH

Hallo,
Ein Beruf bekommt eine Nummer in der Tabelle Berufe
1 Anlagenmechaniker
2 Ausbildungsmeister

Eine Fachrichtung bekommt auch eine Nummer in Tab Fachrichtungen
1 Schweitßechnik
2 Drehtechnik

3.Tabelle Zuordnung( oder so)

Beruf 1(Anlagenmechaniker) Fachrichtung 1 (Schweitßechnik)
Beruf 2(Ausbildungsmeister) Fachrichtung 1(Schweitßechnik)

In der Tabelle sieht das so aus:
1 1
2 1
usw.

Jetzt kannst Du z.B. dem Berufsbild 2 (Ausbildungsmeister) x beliebige Fachrichtungen geben. Die 3. Tabelle ist zum Zuordnen da, hier gibt es KEINE Redudanz, da es sich um Verknüfungen handelt.
Gruß Ralf

Antwort 27 von Datenbankler

Hallo,

jo, so hat ich dat sogar schon mal :D

Gut ich machs nochmal so danke schön.
m:n Beziehungen sind nich ganz einfach :P

Antwort 28 von Datenbankler

Es gibt viele Berufe, die haben gar keine Fachrichtung, soll ich da ne 0 schreibeN?

Antwort 29 von Datenbankler

funzt nich, access sagt mir, nachdem ich versucht habe in der Zwischentabelle die ganzen nummern einzutragen "Der Datensatz kann nicht hinzugefügt oder geändert werden, da ein Datensatz in der Tabelle Fachrichtungen mit diesem Datensatz in Beziehung stehen muss". Das heißt?

Antwort 30 von RalfH

Hi, So gemacht wie in Antwort 1 von OmaDuck?
Dann sollte es aber gehen!
Gruß Ralf

Antwort 31 von OmaDuck

Hallo,
Du kannst hilfsweise in Deine Tabelle Fachrichtungen einen Satz "keiner Fachrichtung zugeordnet" eintragen und den dann entsprechend dem Beruf ohne Fachrichtung zuordnen. Oder Du löst das ganze über den join in der Abfrage der Berufe. Das erste ist einfacher.
Gruß
OmaDuck

Antwort 32 von Datenbankler

so, habe jetz wie RalfH mir gesagt hat ne zwischentabelle gemacht, dort findet man einmal die Fachrichtungen-Berater-Berufe-Berufsschulennummer, aber wie kriege ich die gesamten Daten die ich jetzt verknüpft habe, daraus? Bzw. in eine schöne und lesbare form der benutzer kann sich schlecht hunderte Zahlen merken :D

danke

Antwort 33 von RalfH

Guten Morgen, siehe Antwort 3 .
Gruß Ralf

P.S.: Immer schön am Ball bleiben ;-)

Antwort 34 von Datenbankler

Hallo

ich komm zwar weiter, weiß aber nicht, ob das soweit stimmt.

Hier der mom. Stand der Dinge:
Hab bei jeder Tabelle (tblBerater, tblBerufe, tblFachrichtungen, tblBerufsschulen) jeweils eine "Nummernspalte" eingfügt mit Feldtyp Zahl, jeweils soviel Zahlen, wie die Anzahl der bsp. Berater sind sechs in dem Fall.
Richtig so?

Dann habe ich ne Zuordnungstabelle gemacht, in der die oben genannten Nummernspalten drinne stehen, bsp. Anlagenmechaniker bekommt Berufenr 1, Fachrichtungsnr 0, Beraternr 4 und Berufsschulennr 90....--> damit wäre ein Beruf komplett fertig.
Immer noch richtig so?

Weshalb ich frage? Ich bin mir nich ganz sicher dabei, die Zuordnung klappt wunderbar, nur später muss ich ja aus den ganzen Zuordnungszahlen wieder die Berufe, Fachrichtungen, Berater, Berufsschulen rauskriegen, wenn die Zuordnungstabelle fertig ist, (nun die große Frage) wie bekomme ich anstatt Zahlen die ganzen Namen?

Danke sehr, hoffe ihr könnt mir auch dieses Mal helfen.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: