# Einige allgemeinere Fragen über Datenbanken



## b1zarRe (24. Jan 2013)

Hallo, ich bereite mich gerade
auf eine Klausur vor, und gehe halt paar ältere Klausuren und
hoffe ihr könnt mir an den Stellen, wo ich nichtmehr weiterkomme,
weiterhelfen.

*1.)Installationsaufwand, Performanz, Entwicklungsaufwand mit ++,--,oo beschreiben von Treiber: Typ1,Typ2,Typ4*
=> Meiner Meinung nach: 
Typ1(++,--,oo)
Typ2(+,-,oo)
Typ4(--,++,oo)

Was ist genau mit Entwicklungsaufwand gemeint?! Ist der nicht immer gleich? Das ist ja abhängig davon, was zu entwicklen ist oder?!

*2.) Ein ER von Hand in ein ER überführen... Siehe Link.*
=> Meiner Meinung nach:
Konto(KontoNr)
Zugriff(Uhrzeit, Datum,, KontoNr, Volumen)
Gutschrift(Uhrzeit, Datum,, KontoNr)
Lastschrift(Uhrzeit, Datum,, KontoNr)

Bild: 
	

	
	
		
		

		
			




Was denkt ihr?!

*3.) a) Welche Arten von Integritätsbedingungen lassen sich in Rel. Datenbanken  im Rahmen des CreateTabels Befehls deklarativ formulieren?*
- REFERENCES (Fremdschlüssel)
- ON DELETE / ON UPDATE
- ob Null gesetzt werden darf (CONSTRAINT ... NOT NULL)
- PRIMARY KEy setzen (CONSTRAINT ... PRIMARY_KEY)
- Datentypen setzen (IBEN ?)
- CHECK>Wert

*b) Szenario entwickeln mit einer sinnvollen Integritätsbedingung, die sich nicht
deklarativ innerhalb von CreateTabels Befehls formuleren lässt?*

Keine Ahnung?! Werden damit anwendungsbezogene IBEN's
gemeint?! Zum Beispiel einen Wert den man nicht prüfen kann
(Aus der Reko: "Schnee ist heiß")

*4.)Welche Anomalien können bei Views auftreten?*
- ??

*5.)Welche IBENs gehen durch die ER Transformation verloren?*
- ??

*6.) Wie beurteilen Sie die die Portabilität?*
- JDBC DatenbankAnwendungen sind nicht unbedingt portabiltätskonform: Es hängt viel vom Programmierer
ab, welche Befehle etc. benutzt und ob diese auf einem anderen System unterstützt werden.

*7.) Embedded SQL Vor/Nachteile zu JDBC*
JDBC Vorteil: Direkt Treiberwechsel möglich ohne Umstrukturierung des Codes (ausser: Siehe Punkt 11)
E.SQL Vorteil: Schneller/Performanter da direkt eingebettet im Code. Treiberwechsel erfordert hohe Wartung

*8.) Mögliche Befehle von den Tabellen beschreiben*
- Basis: CreateTable, UpdateInsertDelete, Select
- System: ???
- View: CreateView, Select, UpdateInsertDelete,(aber nicht persistent)


----------



## Evil-Devil (24. Jan 2013)

Obstruse Fragen...

@1) Kommt auf das DBMS an. MySQL ist leicht installiert. MS SQL läuft nur auf Windows und ist relativ einfach zu installieren. Oracle DB läuft glaub auf Unix und Windows und empfand ich bisher als Krampf...

@2) Sollte recht einfach sein, wenn man SQL versteht

@3) Je nach System bis zu allen

@4) Ist denke ich auch System abhängig. Manche Systeme lassen persistierte Views zu, andere cachen gar nichts, etc etc.

@5) Welche was?

@6) An sich kann man auf jede Datenbank mit JDBC zugreifen solange es einen Treiber gibt. Prinzipiell sollte man sofern man weiß das die DB wechseln könnte auf eine entspreche API aufsetzen oder nur SQL Befehle nutzen die mit einem Standard konform sind. Zb. SQL99. Nur wird das von DBMS zu DBMS trotzdem noch zu Problemen führen. Keines unterstützt alles ^^

@7) kA, hab ich noch nicht genutzt

@8) System: Load Data From File Into <Table>
Manche DBMS wie zb. unterstützen das direkte einspielen von Daten über die Konsole. Dann liegen die Daten in einem SQL Skript vor:
mysql -u <benutzer> -p<passwort> -h<host> <datenbank> < sql_datei.sql

Hoffe das hilft dir ein wenig weiter und gibt dir Denkanstöße.


----------



## b1zarRe (24. Jan 2013)

Also danke schonmal zu deiner Antwort!

Kurze Anmerkungen:

- IBEN = Integritätsbedinungen (Keine Ahnung warum unser Dozent das immer so abkürzt..... sorry hätte ich ausschreiben sollen)
- allgemein: Wir haben "nur" JDBC und SQL benutzt... Also zu 1.) bezieht sich auf JDBC/Derby
- Zu 2) Kannst du mir da dennoch weiterhelfen und sagen ob mein Ansatz okay ist?!


----------



## Evil-Devil (25. Jan 2013)

@2) Man könnte Gutschrift und Lastschrift in einer Tabelle führen und mittels einer Typ Spalte unterscheiden. Ansonsten sehe ich jedenfalls nicht anstößiges.


----------



## b1zarRe (25. Jan 2013)

Das sehe ich genauso!

Was ist mit der Tabelle Zugriff?
Könnte man diese nicht vollkommen entfernen? Bzw. anders gesagt: 

Eine Tabelle Konto (wie gehabt) und eine Tabelle Zugriff,
welche mithilfe einer Spaltezwischen Gutschrift und Lastschrift differenziert.


Andere Frage Aufgabenteil b:
http://www10.pic-upload.de/25.01.13/x1bbgxv2i8dk.jpg

Meiner Meinung nach verändert das "disjunkt" nichts an der Überführung ins Relationsschema oder doch?!


----------

