Prototypenverwaltung mit Oracle


Trabajo de Seminario, 2003

25 Páginas, Calificación: 1,3


Extracto


Inhaltsverzeichnis

1. Erläuterung der Aufgabenstellung

2. Spezifikation der Aufgabenstellung

3. Auswahl der Entitäten mit Attributen und Datentypen

4. Auswahl beispielhafter Beziehungen

5. ER- Modell

6. Nachweis der durchgeführten Normalisierung des ER- Modells

7. SQL- Script zum vollständigen Generieren der Tabellen entsprechend normalisiertem ER- Modell

8. SQL-Script zum Füllen der einzelnen Tabellen mit je 10 Datensätzen

9. SQL-Scripte für Datenabfrage

10. Script zum Erzeugen eines Paketes mit 8 Funktionen und 5 Prozeduren

11. Script zum Erzeugen von 2 Datenbanktriggern

1. Erläuterung der Aufgabenstellung

Die vorliegende Entwurfsarbeit bildet einen Ausschnitt einer komplexen Teile- Verwaltung ab. Es sollen hier ausgewählte Funktionen und Mechanismen einer Lagerverwaltung gezeigt werden. Um ein Lager und ein voll funktionierendes System aufzubauen genügen meine gezeigten Ansätze jedoch nicht aus. Die komplexen Zusammenhänge zwischen einer Disposition1 und der daraus generierten Bestellung werden in meiner Arbeit auch nicht berücksichtig. Es besteht jedoch die Möglichkeit eine „manuelle“ Bestellung auszulösen.

Eine detaillierte Spezifikation der zu lösenden Aufgaben meiner Arbeit folgt im nächste Abschnitt.

2. Spezifikation der Aufgabenstellung

Im folgenden Abschnitt werde ich beispielhaft erläutern worauf ich in meiner Arbeit Wert lege, welche Funktionalitäten sie beinhaltet und wieso ich gerade diese gewählt habe.

Für ein Unternehmen ist es heutzutage immer wichtiger Aufträge zu bekommen und diese dann so schnell wie möglich, mit bester Qualität zu bearbeiten. Damit eine reibungslose Produktion gewährleistet werden kann, ist es fast unerlässlich sein Unternehmen in einem sog. ERP- System2 abzubilden. In meiner Arbeit greife ich daraus folgende Module bzw. Funktionen heraus:

Teileerfassung (Stammdaten3) Kunden (Stammdaten) Lieferanten (Stammdaten) Adressen (Stammdaten) Bestellungen (Stammdaten) Bestellpositionen (Stammdaten)

Um die Grundfunktionalitäten darstellen zu können, reichen diese 6 Entitäten4 aus.

2.1. Welche Daten werden benutzt

Um einen besseren Einblick in die vorliegende Arbeit zu bekommen stelle ich die einzelnen Entitäten hier kurz vor:

2.2.1. Teil:

Unter dieser Entität werden Teile zusammengefasst, welche die gleichen Eigenschaften besitzen. Es wird also nicht jedes Teil explizit angelegt sondern einer bestimmten Teilegruppe zugeordnet. Es wäre z.B. nicht sinnvoll für eine Lagerverwaltung 50 Schaftfräser mit einem Durchmesser von 5mm einzeln anzulegen, sondern eher eine Teilegruppe mit der Anzahl gleicher Teile zu pflegen. Um einen Bezug zu einer gesamten Baugruppe zu schaffen wird zu jedem „Teil“ eine baugruppen_id eingetragen, die ihrerseits nur eine teil_id referenziert und somit

kennzeichnet zu welcher Baugruppe ein Teil gehört. Am Beispiel lässt sich der Zusammenhang besser erkennen. Nehmen wir an ein Teil (Abdeckhaube) hat die teil_id = 10 und eine baugruppen_id = 20. Dann würde das Teil (Fräser) mit teil_id = 30 und baugruppen_id = 10 zum Teil (oder Baugruppe) Abdeckhaube (teil_id = 10) gehören. Wir haben hier also die konkrete Zuordnung von Teilen zu einer bestimmten Baugruppe erreicht. Auf die weiteren Attribute und ihre Funktion gehe ich hier nicht ein, da sie sich erstens selbst erklären und ich zweitens im folgenden noch nähere Angaben dazu mache.

2.2.2. Lieferant

Zur Lieferantentabelle5 gibt es eigentlich nicht allzu viel zu sagen. Hier wird die Lieferzeit hinterlegt und eine Verknüpfung auf eine Adresse, worauf ich im Weiteren noch genauer eingehen werde.

2.2.3. Kunde

Die Tabelle Kunde ist ähnlich der Lieferantentabelle aufgebaut. Ein Verweis zu einer Adresse und das Lieferziel6 werden hier eingetragen. Wie auch in der Tabelle Lieferant habe ich mich entschlossen hier nur einige, zu Demonstrationszwecken ausgewählte Attribute zu benutzen. In der Praxis würden hier sicherlich noch mehr Informationen benötigt werden, auf die ich hier aber verzichte. Ich denke um die Funktionalitäten ausreichend zu gestalten reichen die von mir gewählten Attribute aus.

2.2.4. Adresse

Die Tabelle Adresse erfüllt eine Wichtige Rolle in diesem Datenbankentwurf. Ihre Attribute beschreiben wieder ausgewählte Merkmale einer Adresse. Hier werden u.A. Name, Wohnanschrift, Telefonnummer etc. hinterlegt. Um einen Bezug zu bekommen zu Kunden oder Lieferanten werden in den genannten Tabellen Fremdschlüssel eingebaut. Da ein Kunde „Klaus Meier“ auch für andere Produkte Lieferant „Klaus Meier“ sein kann ist das eine gute Möglichkeit diesen Zusammenhang zu schaffen. Des weiteren ist es so auch möglich z.B. eine Lieferadresse abweichend von der hinterlegten Kundenadresse zu referenzieren und eine Bestellung somit an eine Adresse X zu senden.

2.2.5. Bestellung

Eine Bestellung ist unerlässlich um seinen Lagerbestand wieder aufzufüllen. Deshalb habe ich auch in meiner Arbeit wert auf diese Funktionalität gelegt. Eine Bestellung beinhaltet Informationen zum Bestelldatum einer Adresse (in diesem Fall immer die Lieferadresse) und eines möglichen Rabattes einer Bestellung. Was genau aber bestellt wir, werde ich in einer weiteren Tabelle zusammenfassen.

2.2.6. Bestell_Position

Diese Tabelle nennt sich zwar Bestell_Position, könnte aber durchaus auch für Lieferungen, Materialscheine oder Stücklistenpositionen genutzt werden. Sie beinhaltet allgemeine Informationen zu einer Position auf genannten Dokumenten. Im Fall einer Bestellung werden hier also Bestell_Positionen charakterisiert. Damit alle Positionen auch zu einer Bestellung zugeordnet werden können, wird zu jeder

Abbildung in dieser Leseprobe nicht enthalten

2.2.7. Allgemeine Attribute

In allen Tabellen wird das Anlagedatum des jeweiligen Datensatzes gespeichert. Dieses Attribut werde ich zwar nicht benutzen, es hat aber durchaus eine Berechtigung.

2.2.8. Kurzbeschreibung der Implementierten Funktionen und Prozeduren F1 get_kunde_info:

In dieser Funktion wird der Einzelpreis aus der Tabelle TEIL gesucht, der zu dem Teil gehört, dessen teil_id der Funktion als Eingangsparameter übergeben wurde. Dieser Einzelpreis kann dann einer Variablen zugeordnet werden.

Bsp.: v_preis := get_kunde_info(10);

F2 get_kuerzeste_lieferzeit:

Diese Funktion liefert die kürzeste Lieferzeit, aus der Lieferantentabelle.

Bsp.: v_lieferzeit := get_kuerzeste_lieferzeit;

F3 get_mwst:

Diese Funktion gibt von einem als Eingangsparameter mitgegebenen Wert den Mehrwertsteueranteil zurück.

Bsp.: v_mwst := get_mwst(1000);

F4 get_bestellsumme:

Als Eingangsparameter für diese Funktion dient eine bestellung_id. Daraufhin werden die einzelnen Positionen „durchforstet“ und die Preise der Jeweiligen Teile mit deren Bestellanzahl multipliziert. Diese Positionssummen werden aufaddiert und ergeben somit die Bestellsumme. Mit welchen Maßnahmen dies realisiert ist, kann unter dem Gliederungspunkt 10F:4 nachgelesen werden.

Bsp.: v_summe := get_bestellsumme(10);

F5 get_rabatt:

Diese Funktion benutzt die eben beschrieben get_bestellsumme- Funktion um daraus abhängig von einer bestimmten Höhe des Preises einen Rabatt festzulegen. Eingangsparameter hier ist wiederum eine bestellung_id.

Bsp.: v_rabatt := get_rabatt(10);

F6 get_gesamtsumme_brutto:

Um auch die Bruttosumme einfach berechnen zu lassen, habe ich diese Funktion geschrieben. Als Eingangsparameter benötigt „sie“ eine Nettosumme (z.B. aus Funktion get_bestellsumme), einen Mwst-Wert und einen Rabatt (in %). Daraus wird dann wie folgt die Endsumme berechnet. Von der Nettosumme + Mwst wird der %- tuale Rabatt abgezogen.

Bsp.: v_summe_brutto := get_gesamtsumme_brutto(1050,168,1);

F7 anzahl_kunden:

Diese Funktion zählt die Anzahl der Datensätze7 in der Tabelle KUNDE und gibt diese dann zurück.

Bsp.: v_anzahl_kunden :=anzahl_kunden;

F8 anzahl_adressen:

Diese Funktion zählt die Anzahl der Datensätze in der Tabelle ADRESSE und gibt diese dann zurück.

Bsp.: v_anzahl_adressen :=anzahl_adressen;

P1 adresse_anlegen:

Mit Hilfe dieser Prozedur kann man einen Adressendatensatz in die Tabelle ADRESSE einfügen. Die Prozedur benötigt einige Eingangsparameter. Die „Firma, Vorname, Nachname, Strasse, Hausnummer, Telefon, Email“. Wenn man zur Laufzeit alle Daten eingeben möchte, sollte man die Prozedur wie folgt aufrufen.

Bsp.: adresse_anlegen('&v_firma', '&v_vorname', '&v_nachname', '&v_strasse', '&v_hausnummer', '&v_telefon', '&v_email');

P2 kunde_anlegen:

Diese Prozedur legt einen Kunden an. Da sich hinter einem KUNDE auch immer eine ADRESSE verbirgt, wird bevor der Kunde an sich gespeichert wird erst einmal eine Adresse mit der vorher beschriebenen Prozedur (adresse_anlegen) angelegt. Diese Adresse hat dann die höchste adresse_id. Dieses „Wissen“ nutze ich um dem Kunden auch die angelegte Adresse zuzuordnen. Diese Funktion könnte man auch so für Lieferanten implementieren. Allerdings müsste dann als Eingangsparameter nicht das lieferziel, sonder die lieferzeit übergeben werden.

Bsp.: execute kunde_anlegen(’&v_lieferzeit’);

P3 lagerstatistik:

Diese Prozedur gibt eine Lagerstatistik aus. Es werden alle TEILE mit ihrem jeweiligen Warenwert ausgegeben. Somit bekommt man einen Überblick wie viel Teile jeder „TEIL“eart vorhanden sind und welchen Warenwert sie haben. Des weiteren wird noch die Gesamtsumme des Lagerbstandes ausgegeben. Diese Statistik könnte man auch als Inventurliste verwenden.

Bsp.: execute lagerstatistik;

P4 print_bestellung:

Als einziger Eingangsparameter dieser Funktion muss ein bestellung_id

„mitgegeben“ werden. Es werden dann eine Reihe Informationen aus den Tabellen: TEIL, BESTELLUNG, BESTELL_POSITION und ADRESSE. Diese Informationen werden dann, Positionsweise zusammengefasst, ausgegeben. Für die einzelnen Zwischensumme, Mwst, Rabatt etc. werden teilweise o.g. Funktionen und Prozeduren verwendet.

Bsp.: execute print_bestellung;

P5 print_teilinfo:

Diese Prozedur gibt eine kurze Teileinfo aus. Die Bezeichnung und der Lieferant werden angezeigt.

Bsp.: execute print_teilinfo(10);

Des weiteren gehörten neben o.a.g. Funktionen und Prozeduren noch zahlreiche SQL- Abfragen und Scripte, auf die ich hier nicht näher eingehe. Sie sind unter dem Gliederungspunkt 9 nachzulesen.

Unter dem nächsten Gliederungspunkt finden Sie eine Übersicht über die von mir verwendeten Entitäten, deren Attributen und die zugehörigen Datentypen.

[...]


1 Disposition: Unter Disposition versteht man die Anforderung, Artikel zu beschaffen. Von wesentlicher Bedeutung ist dabei die Ermittlung der Menge der zu beschaffenden Artikel und die Auswahl des Lieferanten.

2 ERP-System: Enterprise- Ressource- Planing: Mit solchen Softwaresystemen, sog. Warenwirtschaftsprogramme können Lager, Aufträge, Buchhaltung u.v.m. eines Unternehmens in einer Software nachgebildet und verwaltet werden. Die bekanntesten Beispiele sind wohl: SAP, proALPHA, KHK etc.

3 Stammdaten: von mir ausgewählte Attribute.

4 Entität: Ist eine Gruppierung von Attributen mit gleichem Bezugsobjekt: z.B. Mitarbeiter, Haus, Abteilung, Teil. Ist also „irgend etwas“ von dem es sich lohnt, Informationen zu haben. (Auto: Prof. Dr. Horst Heineck)

5 Tabelle: In Datenbanksystemen werden Entitäten durch Tabellen beschrieben, wobei die Attribute in separaten Spalten abgebildet werden.

6 Lieferziel: Ist eine pauschale Zeitspanne (in Tagen), die der Kunde auf seine Lieferung „wartet“. Bestell_Position eine bestellung_id eingetragen. Somit kann man alle Positionen genau zu einer Bestellung zuordnen.

7 Datensatz: Ein Zeile in einer Tabelle bezeichnet man als Datensatz.

Final del extracto de 25 páginas

Detalles

Título
Prototypenverwaltung mit Oracle
Universidad
University resin university for applied sciences
Curso
DBMS
Calificación
1,3
Autor
Año
2003
Páginas
25
No. de catálogo
V108515
ISBN (Ebook)
9783640067121
Tamaño de fichero
521 KB
Idioma
Alemán
Notas
Diese Arbeit befasst sich mit einem DB- Entwurf einer Teileverwaltung. Alle Scripte SQL / PLSQL sind enthalten.
Palabras clave
Prototypenverwaltung, Oracle, DBMS
Citar trabajo
Stephan Feltel (Autor), 2003, Prototypenverwaltung mit Oracle, Múnich, GRIN Verlag, https://www.grin.com/document/108515

Comentarios

  • No hay comentarios todavía.
Leer eBook
Título: Prototypenverwaltung mit Oracle



Cargar textos

Sus trabajos académicos / tesis:

- Publicación como eBook y libro impreso
- Honorarios altos para las ventas
- Totalmente gratuito y con ISBN
- Le llevará solo 5 minutos
- Cada trabajo encuentra lectores

Así es como funciona