Datenbanken

Status
Für weitere Antworten geschlossen.

vatos123

Cadet 1st Year
Registriert
Sep. 2017
Beiträge
8
Hey Leute,

es haben sich im Laufe des Skripts weitere Fragen ergeben: In dem Kapitel "Datenbanken" habe ich soweit alle Fragen gelöst, nur die folgenden sind mir unklar. Kann mir das einer vllt. kurz und knapp erklären?


1) Wie kann man eine "Abfrage" beschreiben?

Davor die Frage war, dass ich die Definitionen von Abfrage und Transaktion erläutern soll. Da steht im Skript, dass die Abfrage den abgrenzenden Inhalt aus der DB verfügbar macht. Bei Transaktion steht, dass es eine konsistenzerhaltene Operation auf der DB ist, z.B. wenn eine neue Maschine in einen Arbeitsplan eingefügt wird, muss diese auch in die Inventarliste eingetragen werden (DB aktualisieren). Könnt ihr mir da etwas Klarheit verschaffen?

2) Welche Schritte sind beim Entwurf und Implementierung einer Datenbankanwendung mit Benutzungsschnittstelle (GUI) erfoderlich? In welcher Reihenfolge würden Sie diese Schritte abarbeiten?

Verstehe den Zusammenhang mit GUI nicht. GUI ist doch quasi, dass man die Programmiersprache mit einem grafischen Element verbindet bzw. grob gesagt, Befehle damit verbindet.

3) Wie könnte die formale Entwurfsbeschreibung einer Datenbanktabelle aussehen?

In der Klausur soll man in der Lage sein solch eine Tabelle für eine gegebene Aufgabenstellung zu entwerfen.
Im Skript steht unter der Überschrift "Definition der Datenbank "Eurorechner" " folgendes:

MS Access öffnen, neue DB anlegen ->Neue Tabelle anlegen und in "Entwurfsansicht" öffnen ->Felder "WKZ" und "Kurs" anlegen, ggf. von Access automatisch angelegte Felder löschen -> Feld "WKZ" als Primärschlüssel markieren -> "Tabelle speichern als "Kursdaten" -> 2-3 Währungen eintragen zum Start -> Access wieder schließen.

Das ist jetzt spezifisch auf einen Eurorechner bezogen (weiss nicht, ob das der Teil ist, der die Frage beantworten soll). Könnt ihr mir vllt, kurz und knapp erklären, wie es im Allgemeinen aussieht?


Ich bedanke mich im Voraus.
 
Forenregeln beachten! Kein Support für Hausaufgaben.
 
Zu 2.:
​Irgendwie müssen von der GUI die Daten ja in die Datenbank kommen und Daten in der Datenbank wiederum in der GUI angezeigt werden.
​Schritte beim Entwurf sind zum Beispiel der Entwurf des Datenbankschemas, oder das Design der Schnittstelle zwischen Datenbank und Anwendungslogik, ...
 
Nimm doch bitte einfach deinen alten Thread, da bleibt der Zusammenhang erhalten

vatos123 schrieb:
Hey Leute,
1) Wie kann man eine "Abfrage" beschreiben?

Meine aller erste Antwort wäre ja: "Mit einer Tastatur!"
In erster Linie wäre das wieder so ein Ding wo man herausbekommen sollte was der Prof auf die Frage hören will. Grundlegend sind Datenbankabfragen via SQL so aufgebaut:

Code:
SELECT <Spaltenbezeichner>
    FROM <Tabellenbezeichner>
    WHERE <Bedingungen>

2) Welche Schritte sind beim Entwurf und Implementierung einer Datenbankanwendung mit Benutzungsschnittstelle (GUI) erfoderlich? In welcher Reihenfolge würden Sie diese Schritte abarbeiten?

Verstehe den Zusammenhang mit GUI nicht. GUI ist doch quasi, dass man die Programmiersprache mit einem grafischen Element verbindet bzw. grob gesagt, Befehle damit verbindet.
Bringe in er Erfahrung was der Prof will! Die Frage macht ein riesen Fass auf.
Mein Ansatz wäre: Anforderungen aufnehmen (Lastenheft) -> Entwurf (Pflichtenheft inkl. Zustandsdiagrammen, UML-Classendiagrammen, Konzeptzeichnungen der GUI) -> Umsetzung)

Deine Auffassungen von dem was GUIs sind, wüde ich so nicht unterschreiben. Zum einen weil GUIs auch mittels Programmiersprachen umgesetzt werden und es zwingend auch keinen Zusammenhang geben muss aus Nutzereingaben und ablaufender Programmlogik. An sich wäre da interessant herauszubekommen wie der Prof seine eigene Frage versteht.
Ansonsten Ähnlichkeiten bei der Entwicklung von Datenbanken und GUIs: Anforderungen muss man da genauso aufstellen und Entwerfen kann man die Dinger auch über geeignete Mittel. In beiden Fällen wäre es durchaus Möglich zum Beispiels Zustandsdiagramme zu nutzen. Bei der Umsetzung nutzt man dann entsprechende Beschreibungssprachen um das gewünschte Ziel zu erreichen.

3) Wie könnte die formale Entwurfsbeschreibung einer Datenbanktabelle aussehen?

In der Klausur soll man in der Lage sein solch eine Tabelle für eine gegebene Aufgabenstellung zu entwerfen.
Im Skript steht unter der Überschrift "Definition der Datenbank "Eurorechner" " folgendes:

MS Access öffnen, neue DB anlegen ->Neue Tabelle anlegen und in "Entwurfsansicht" öffnen ->Felder "WKZ" und "Kurs" anlegen, ggf. von Access automatisch angelegte Felder löschen -> Feld "WKZ" als Primärschlüssel markieren -> "Tabelle speichern als "Kursdaten" -> 2-3 Währungen eintragen zum Start -> Access wieder schließen.

Das ist jetzt spezifisch auf einen Eurorechner bezogen (weiss nicht, ob das der Teil ist, der die Frage beantworten soll). Könnt ihr mir vllt, kurz und knapp erklären, wie es im Allgemeinen aussieht?

Antwort:
https://en.wikipedia.org/wiki/Entity–relationship_model
oder
https://en.wikipedia.org/wiki/Class_diagram

Wobei Diagramme nach UML klar vorzuziehen sind. Wobei die Modellierung von Datenbanken immer mit den Regeln der Normalisierung erfolgen sollten außer man kann die Abweichung sehr gut begründen:
https://de.wikipedia.org/wiki/Normalisierung_(Datenbank)

Die Klickstrecke zu in Microsoft Access bringt bei der Frage eigentlich garnichts, da das mit der formelen Entwurfsbeschreibung null zu tun hat (naja, außer dass Access auch UML-Diagramme darstellt um den Aufbau der Datenbank zu visualisieren)
 
Ich danke euch für die Antworten, werde die nächsten Fragen nur noch unter einem Thread stellen.
@firexs, das sind keine Hausaufgaben, bereite mich auf meine Info-Klausur im Studium vor. Es sind locker 230 Fragen, die ich beantwortet habe und bei einigen, wie zu sehen ist, brauche ich Hilfe.
 

​ER-Diagramme sind eher weniger dafür geeignet Datenbanktabellen darzustellen. Das sind eher Modelle für die Daten an sich, die helfen Datenbankschemata/tabellen zu generieren (gibt durchaus Programme, die dies übernehmen).

Klassendiagramme mögen eine Möglichkeit zur Beschreibung von Datenbanktabellen sein. Jedoch verkörpern diese eine eher visuelle Beschreibung der Datenbanktabelle.

Eine formale Möglichkeit zur Beschreibung von Tabellen wäre z.B. die Relationale Darstellung:

Studenten:{[ MatrNr : integer, Name : string, Semester : integer] }
Vorlesungen:{[ VorlNr : integer, Titel : string, SWS : integer] }
Professoren:{[ PersNr : integer, Name : string, Rang : string, Raum : integer] }
Assistenten:{[ PersNr : integer, Name : string, Fachgebiet : string]
hören:{[ MatrNr : integer, VorlNr : integer] }
lesen:{[ PersNr : integer, VorlNr : integer] }
arbeitenFür:{[ AssiPersNr : integer, ProfPersNr : integer] }
voraussetzen:{[ Vorgänger : integer, Nachfolger : integer] }
prüfen:{[ MatrNr : integer, VorlNr : integer, PersNr : integer, Note : decimal] }
http://www-lehre.informatik.uni-osnabrueck.de/~dbs/2001/skript/node41.html
 
Die Frage war nach formalen Beschreibungsmöglichkeiten für den Entwurf und es würde mich sehr wundern, wenn da bei einem Informatikkurs für Maschinenbaustudenten etwas anderes gelehrt wird als ERM und/oder UML-Class ;).
 
Ich weiß nicht, was in dem Kurs gelehrt wird, aber ERM beschreibt sicher keinen Entwurf einer Tabelle, und UML ist auch nicht formal.

​Inwiefern entspricht obige Beschreibungsmöglichkeit nicht einer formalen Beschreibung eines Entwurfs einer Datenbanktabelle?
 
Eure Antworten haben mir schon sehr weitergeholfen. Dies wird auch der letzte Tag sein, dass ich Dinge frage, da es ab morgen nur noch mit dem Auswendiglernen losgeht. Hier noch eine kleine Frage:

Heisst es:

WHILE x>10 DO, BEGIN (anweisung), END

oder

WHILE x>10 DO (anweisung)?


Mir scheint das zweite grammatikalisch sinnvoller, aber da es in den beiden Formen vorkommt bin ich nun etwas verwundert.

Wie ist es bei: FOR X=1 TO 10 DO, BEGIN (anweisung), END ?

Es ist nur 1 Semester Info, habe noch nie in meinem Leben programmiert. Die Klausur wird auch dementsprechend gestaltet sein, daher solche Fragen :)
 
Kommt darauf an, was du machen möchtest.

Wie ist es bei: FOR X=1 TO 10 DO, BEGIN (anweisung), END ?
​Die Schleife läuft 10 Durchgänge, wobei von 1 bis 10 hochgezählt wird.

WHILE x=10 DO (anweisung)?
​Die Schleife läuft solange bis du in der Schleife x auf einen anderen Wert als 10 änderst. Wenn der Wert vorher schon nicht 10 war, macht die Schleife keinen einzigen Durchlauf

WHILE x>10 DO, BEGIN (anweisung), END

Die Schleife läuft solange bis du X in der Schleife auf einen Wert kleiner oder gleich 10 setzt.

​Von daher: Ich weiß nicht genau wie es heißt, weil ich nicht weiß, was erreicht werden soll.

​Übrigens Achtung: In vielen Programmiersprachen ist = eine Zuweisung. Wenn du auf Gleichheit prüfen möchtest ist oft ein == erforderlich.
 
The Ripper schrieb:
Ich weiß nicht, was in dem Kurs gelehrt wird, aber ERM beschreibt sicher keinen Entwurf einer Tabelle, und UML ist auch nicht formal.
In der Theorie hast du recht. In der Praxis verfallen selbst Informatikprofessoren der Umgangssprache.
Bei mir an der Uni wurde und wird manchmal gar Absonderliches gelehrt. Das scheint aber vielen Studenten auch an anderen Unis so zu gehen :).


​Inwiefern entspricht obige Beschreibungsmöglichkeit nicht einer formalen Beschreibung eines Entwurfs einer Datenbanktabelle?

Es hat Niemand behauptet, dass dem nicht so ist. Ich habe nur angemerkt, dass es unwahrscheinlich ist, dass dies beim TE so in der Lehre stattgefunden hat.
 
Danke für deine Mühe.
Mich hat das BEGIN gestört und weiss nicht, ob es dahin gehört. Macht grammatikalisch keinen Sinn oder ist das egal, ob man das BEGIN bei dem WHILE und FOR dazu schreibt?
 
Es hat Niemand behauptet, dass dem nicht so ist. Ich habe nur angemerkt, dass es unwahrscheinlich ist, dass dies beim TE so in der Lehre stattgefunden hat.
Die Frage war nach formalen Beschreibungsmöglichkeiten für den Entwurf
​Indirekt schon - Du hast geantwortet als hätte ich auf eine vollständig andere Frage geantwortet.

​@vatos123:
Zur Beantwortung deiner Frage wäre eine Nennung der Programmiersprache hilfreich.
 
Wenn du mehr als ein Statement in der Schleife hast, benutzt du überall
BEGIN ...Statements... END

​Wenn du nur ein Statement hast, kannst du es auch bei allen drei weglassen.
 
Vielen Dank, Ripper.
Hier eine eigentlich simple Frage, die mal in einer Altklausur dran kam, aber nirgends im Skript steht. Eigentlich ja einfach, aber ich frage euch sicherheitshalber mal:

Wie ist der Unterschied zwischen Speicherinhalt und Speicheradresse?


Der Rest der Aufgaben ist mir klar. Könnt ihr mir evtl. Tipps geben, wie ich bei einem Luhn-Algorithmus vorgehen sollte? Das Internet ist voll damit, aber wie würdet ihr es am simpelsten erklären? Die Klausur geht nur 2 Std, der wird da nicht viel verlangen (können). Habt ihr auch Tipps zu Nassi-Shneiderman Diagrammen und zur Backus-Naur-Form? Ich weiss, ist jetzt viel verlangt, aber der Stoff ist so dermaßen viel, dass man da nicht mit allem zurecht kommt, geht 99% so.

Er sagt halt ganz grob "Sie sollten in der Lage sein, eine Beschreibung in Backus Naur Form zu interpretieren, einen als Datenflussdiagramm, als Nassi Shneiderman Diagramm oder als Pseudocode formulierten Algorithmus zu interpretieren bzw. auch selbst einen Algorithmus in einer dieser drei Darstellungsformen zu beschreiben".

Ich möchte echt nicht, dass ihr mir alles erklärt, aber vielleicht habt ihr Tipps und Denkanstösse bzw. wie ich es mir einfacher machen kann? Sind nur basics, die wir machen, da geht nichts in die Tiefe. Ein Semester Info und dann ist man durch.
 
Wie ist der Unterschied zwischen Speicherinhalt und Speicheradresse?
​Speicheraddresse: Sagt, wo der Speicherinhalt ist.

​Beispiel:
Man hat 100 Datenzellen, welche von 1-100 durchnummeriert sind.

​Eine Speicheradresse kann dann z.B. 7 sein.
​-> Man geht in Datenzelle 7. Der Speicherinhalt dort kann z.B. "Haus" sein.

​Ansonsten schau dir Youtube Videos an ;)
 
vatos123 schrieb:
@firexs, das sind keine Hausaufgaben, bereite mich auf meine Info-Klausur im Studium vor. Es sind locker 230 Fragen, die ich beantwortet habe und bei einigen, wie zu sehen ist, brauche ich Hilfe.

Hmmm ... der Hinweis auf die Forenregeln bleibt allerdings!

Doch dieses Forum - wie auch alle anderen Bereiche des Forum Computerbase - ist keine Plattform für Hausaufgaben, Tests, Arbeiten, Prüfungen usw.
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben