Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Internships in India (Accenture)  Falls Sie ein Internship in India machen möchten, bitte setzen Sie sich mit mir in Verbindung:

Ähnliche Präsentationen


Präsentation zum Thema: "Internships in India (Accenture)  Falls Sie ein Internship in India machen möchten, bitte setzen Sie sich mit mir in Verbindung:"—  Präsentation transkript:

1 Internships in India (Accenture)  Falls Sie ein Internship in India machen möchten, bitte setzen Sie sich mit mir in Verbindung: donaldk@inf.ethz.chdonaldk@inf.ethz.ch  Zeitraum: Juni - September 2008 (in vorlesungsfreier Zeit)  Orte: Bangalore, Chennai oder Hyderabad  Voraussetzung  sehr guter Studienfortschritt in den ersten beiden Jahren (auch offen für Masterstudierende)  sehr gute Englischkenntnisse  Programmierkenntnisse (Java, SQL)  Das ist wirklich ein Abenteuer!!!  (Wenn ich Sie wäre, würde ich es auch machen.)

2 Grundlagen des relationalen Modells Seien D 1, D 2,..., D n Domänen (Wertebereiche)  Relation: R  D 1 x... x D n Bsp.: Telefonbuch  string x string x integer  Tupel: t  R Bsp.: t = („Mickey Mouse“, „Main Street“, 4711)  Schema: legt die Struktur der gespeicherten Daten fest Bsp.: Telefonbuch: {[Name: string, Adresse: string, Telefon#:integer]}

3 Telefonbuch NameStraßeTelefon# Mickey MouseMain Street4711 Mini MouseBroadway94725 Donald DuckBroadway95672... Ausprägung: der aktuelle Zustand der Datenbasis Schlüssel: minimale Menge von Attributen, deren Werte ein Tupel eindeutig identifizieren Primärschlüssel: wird unterstrichen Einer der Schlüsselkandidaten wird als Primärschlüssel ausgewählt Hat eine besondere Bedeutung bei der Referenzierung von Tupeln

4 Studenten Assistenten MatrNr PersNr Semester Name Fachgebiet Note hören prüfen arbeitenFür Professoren Vorlesungen lesen voraussetzen SWS VorlNr Titel Raum Rang PersNr Nach- folger Vorgänger Name Uni-Schema 1 N 1 1 N N N M M MN

5 Relationale Darstellung von Entitytypen 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]}

6 Relationale Darstellung von Beziehungen A 11 E1E1 R... AR1AR1 EnEn E2E2 An1An1 A 21... R:{[]}

7 Beziehungen unseres Beispiel- Schemas hören : {[MatrNr: integer, VorlNr: integer]} lesen : {[PersNr: integer, VorlNr: integer]} arbeitenFür : {[AssistentenPersNr: integer, ProfPersNr: integer]} voraussetzen : {[Vorgänger: integer, Nachfolger: integer]} prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]}

8 Schlüssel der Relationen hören : {[MatrNr: integer, VorlNr: integer]} lesen : {[PersNr: integer, VorlNr: integer]} arbeitenFür : {[AssistentenPersNr: integer, ProfPersNr: integer]} voraussetzen : {[Vorgänger: integer, Nachfolger: integer]} prüfen : {[MatrNr: integer, VorlNr: integer, PersNr: integer, Note: decimal]}

9 Ausprägung der Beziehung hören Studenten MatrNr... 26120... 27550... hören MatrNrVorlNr 261205001 275505001 275504052 281065041 281065052 281065216 281065259 291205001 291205041 291205049 295555022 254035022 295555001 Vorlesungen VorlNr... 5001... 4052... Studenten hören Vorlesungen M N MatrNr VorlNr

10 Verfeinerung des relationalen Schemas 1:N-Beziehung  Initial-Entwurf Vorlesungen : {[VorlNr, Titel, SWS]} Professoren : {[PersNr, Name, Rang, Raum]} lesen: {[VorlNr, PersNr]} Professoren Vorlesungen lesen 1 1 N

11 Verfeinerung des relationalen Schemas 1:N-Beziehung  Initial-Entwurf Vorlesungen : {[VorlNr, Titel, SWS]} Professoren : {[PersNr, Name, Rang, Raum]} lesen: {[VorlNr, PersNr]}  Verfeinerung durch Zusammenfassung Vorlesungen : {[VorlNr, Titel, SWS, gelesenVon]} Professoren : {[PersNr, Name, Rang, Raum]} Regel Relationen mit gleichem Schlüssel kann man zusammenfassen aber nur diese und keine anderen!

12 Ausprägung von Professoren und Vorlesung Professoren PersNrNameRangRaum 2125SokratesC4226 2126RusselC4232 2127KopernikusC3310 2133PopperC352 2134AugustinusC3309 2136CurieC436 2137KantC47 Vorlesungen VorlNrTitelSWSGelesen Von 5001Grundzüge42137 5041Ethik42125 5043Erkenntnistheorie32126 5049Mäeutik22125 4052Logik42125 5052Wissenschaftstheorie32126 5216Bioethik22126 5259Der Wiener Kreis22133 5022Glaube und Wissen22134 4630Die 3 Kritiken42137 Professoren Vorlesungen lesen 1 N

13 Vorsicht: So geht es NICHT Professoren PersNrNameRangRaumliest 2125SokratesC42265041 2125SokratesC42265049 2125SokratesC42264052... 2134AugustinusC33095022 2136CurieC436?? Vorlesungen VorlNrTitelSWS 5001Grundzüge4 5041Ethik4 5043Erkenntnistheorie3 5049Mäeutik2 4052Logik4 5052Wissenschaftstheorie3 5216Bioethik2 5259Der Wiener Kreis2 5022Glaube und Wissen2 4630Die 3 Kritiken4 Professoren Vorlesungen lesen 1 N

14 Vorsicht: So geht es NICHT: Folgen  Anomalien  Update-Anomalie: Was passiert wenn Sokrates umzieht  Lösch-Anomalie: Was passiert wenn „Glaube und Wissen“ wegfällt  Einfügeanomalie: Curie ist neu und liest noch keine Vorlesungen Professoren PersNrNameRangRaumliest 2125SokratesC42265041 2125SokratesC42265049 2125SokratesC42264052... 2134AugustinusC33095022 2136CurieC436?? Vorlesungen VorlNrTitelSWS 5001Grundzüge4 5041Ethik4 5043Erkenntnistheorie3 5049Mäeutik2 4052Logik4 5052Wissenschaftstheorie3 5216Bioethik2 5259Der Wiener Kreis2 5022Glaube und Wissen2 4630Die 3 Kritiken4

15 Relationale Modellierung der Generalisierung Fachgebiet Assistenten Professoren RaumRang is_a Angestellte PersNrName Angestellte: {[PersNr, Name]} Professoren: {[PersNr, Rang, Raum]} Assistenten: {[PersNr, Fachgebiet]}

16 Relationale Modellierung schwacher Entitytypen Studenten ablegen Prüfungen 1 N Note PrüfTeil MatrNr Vorlesungen umfassen VorlNr abhalten Professoren PersNr NN MM Prüfungen: {[MatrNr: integer, PrüfTeil: string, Note: integer]} umfassen: {[MatrNr: integer, PrüfTeil: string, VorlNr: integer]} abhalten: {[MatrNr: integer, PrüfTeil: string, PersNr: integer]}

17 Man beachte, dass in diesem Fall der (global eindeutige) Schlüssel der Relation Prüfung nämlich MatrNr und PrüfTeil als Fremdschlüssel in die Relationen umfassen und abhalten übernommen werden muß.

18 Die relationale Uni-DB Professoren PersNrNameRangRaum 2125SokratesC4226 2126RusselC4232 2127KopernikusC3310 2133PopperC352 2134AugustinusC3309 2136CurieC436 2137KantC47 Studenten MatrNrNameSemester 24002Xenokrates18 25403Jonas12 26120Fichte10 26830Aristoxenos8 27550Schopenhauer6 28106Carnap3 29120Theophrastos2 29555Feuerbach2 Vorlesungen VorlNrTitelSWSgelesen von 5001Grundzüge42137 5041Ethik42125 5043Erkenntnistheorie32126 5049Mäeutik22125 4052Logik42125 5052Wissenschaftstheorie32126 5216Bioethik22126 5259Der Wiener Kreis22133 5022Glaube und Wissen22134 4630Die 3 Kritiken42137 voraussetzen VorgängerNachfolger 50015041 50015043 50015049 50415216 50435052 50415052 5259 hören MatrNrVorlNr 261205001 275505001 275504052 281065041 281065052 281065216 281065259 291205001 291205041 291205049 295555022 254035022 Assistenten PerslNrNameFachgebietBoss 3002PlatonIdeenlehre2125 3003AristotelesSyllogistik2125 3004WittgensteinSprachtheorie2126 3005RhetikusPlanetenbewegung2127 3006NewtonKeplersche Gesetze2127 3007SpinozaGott und Natur2126 prüfen MatrNrVorlNrPersNrNote 28106500121261 25403504121252 27550463021372

19 Professoren PersNrNameRangRaum 2125SokratesC4226 2126RusselC4232 2127KopernikusC3310 2133PopperC352 2134AugustinusC3309 2136CurieC436 2137KantC47 Studenten MatrNrNameSemester 24002Xenokrates18 25403Jonas12 26120Fichte10 26830Aristoxenos8 27550Schopenhauer6 28106Carnap3 29120Theophrastos2 29555Feuerbach2 Vorlesungen VorlNrTitelSWSgelesen Von 5001Grundzüge42137 5041Ethik42125 5043Erkenntnistheorie32126 5049Mäeutik22125 4052Logik42125 5052Wissenschaftstheorie32126 5216Bioethik22126 5259Der Wiener Kreis22133 5022Glaube und Wissen22134 4630Die 3 Kritiken42137 voraussetzen VorgängerNachfolger 50015041 50015043 50015049 50415216 50435052 50415052 5259 hören MatrNrVorlNr 261205001 275505001 275504052 281065041 281065052 281065216 281065259 291205001 291205041 291205049 295555022 254035022 Assistenten PerslNrNameFachgebietBoss 3002PlatonIdeenlehre2125 3003AristotelesSyllogistik2125 3004WittgensteinSprachtheorie2126 3005RhetikusPlanetenbewegung2127 3006NewtonKeplersche Gesetze2127 3007SpinozaGott und Natur2126 prüfen MatrNrVorlNrPersNrNote 28106500121261 25403504121252 27550463021372

20 Die relationale Algebra   Selektion   Pojektion  x Kreuzprodukt  A Join (Verbund)   Umbenennung   Mengendifferenz   Division   Vereinigung   Mengendurchschnitt  F Semi-Join (linker)  E Semi-Join (rechter)  C linker äußerer Join  D rechter äußerer Join

21 Formale Definition der Algebra Basisausdrücke  Relation der Datenbank oder  konstante Relationen Operationen  Selektion:  p (E 1 )  Projektion:  S (E 1 )  Kartesisches Produkt: E 1 x E 2  Umbenennung:  V (E 1 ),  A  B (E 1 )  Vereinigung: E 1   E 2  Differenz: E 1  - E 2

22 Die relationalen Algebra- Operatoren  Semester > 10 (Studenten) MatrNrNameSemester 24002Xenokrates18 25403Jonas12  Semester > 10 (Studenten) Selektion  Rang (Professoren) Rang C4 C3  Rang (Professoren) Projektion

23 Kartesisches Produkt: Minibeispiel L ABC a1a1 b1b1 c1c1 a2a2 b2b2 c2c2 R DE d1d1 e1e1 d2d2 e2e2 Resultat ABCDE a1a1 b1b1 c1c1 d1d1 e1e1 a1a1 b1b1 c1c1 d2d2 e2e2 a2a2 b2b2 c2c2 d1d1 e1e1 a2a2 b2b2 c2c2 d2d2 e2e2 x =

24 Die relationalen Algebra- Operatoren Professorenhören PersNrNameRangRaumMatrNrVorlNr 2125SokratesC4226261205001... 2125SokratesC4226295555001... 2137KantC47295555001 Kartesisches Produkt Professoren x hören Problem: riesige Zwischenergebnisse Beispiel: (Professoren x hören) "bessere" Operation: Join (siehe unten)

25 Der natürliche Verbund (Join) Gegeben seien: R(A 1,..., A m, B 1,..., B k ) S(B 1,..., B k, C 1,..., C n ) R A S =  A1,..., Am, R.B1,..., R.Bk, C1,..., Cn (  R.B1=S. B1 ...  R.Bk = S.Bk (RxS)) R A S R  SR  SS  R A1A1 A2A2...AmAm B1B1 B2B2 BkBk C1C1 C2C2 CnCn

26 Drei-Wege-Join (Studenten A hören) A Vorlesungen MatrNrNameSemesterVorlNrTitelSWSgelesenVon 26120Fichte105001Grundzüge42137 27550Jonas125022Glaube und Wissen22134 28106Carnap34052Wissenschftstheorie32126...

27 Allgemeiner Join (Theta-Join)  Gegeben seien folgende Relationen(-Schemata)  R(A1,..., An) und  S(B1,..., Bm) R A  S RS A1A1 A2A2... AnAn B1B1 B2B2 BmBm R A  S R A  S =   (R x S)

28 Andere Join-Arten natürlicher Join L ABC a1a1 b1b1 c1c1 a2a2 b2b2 c2c2 R CDE c1c1 d1d1 e1e1 c3c3 d2d2 e2e2 A = Resultat ABCDE a1a1 b1b1 c1c1 d1d1 e1e1 L ABC a1a1 b1b1 c1c1 a2a2 b2b2 c2c2 C = linker äußerer Join R CDE c1c1 d1d1 e1e1 c3c3 d2d2 e2e2 Resultat ABCDE a1a1 b1b1 c1c1 d1d1 e1e1 a2a2 b2b2 c2c2 --

29 L ABC a1a1 b1b1 c1c1 a2a2 b2b2 c2c2 D = rechter äußerer Join R CDE c1c1 d1d1 e1e1 c3c3 d2d2 e2e2 Resultat ABCDE a1a1 b1b1 c1c1 d1d1 e1e1 -- c3c3 d2d2 e2e2

30 Andere Join-Arten L ABC a1a1 b1b1 c1c1 a2a2 b2b2 c2c2 B = äußerer Join L ABC a1a1 b1b1 c1c1 a2a2 b2b2 c2c2 R CDE c1c1 d1d1 e1e1 c3c3 d2d2 e2e2 E = Semi-Join von L mit R R CDE c1c1 d1d1 e1e1 c3c3 d2d2 e2e2 Resultat ABCDE a1a1 b1b1 c1c1 d1d1 e1e1 a2a2 b2b2 c2c2 -- -- c3c3 d2d2 e2e2 ABC a1a1 b1b1 c1c1

31 Andere Join-Arten (Forts.) L ABC a1a1 b1b1 c1c1 a2a2 b2b2 c2c2 R CDE c1c1 d1d1 e1e1 c3c3 d2d2 e2e2 Resultat CDE c1c1 d1d1 e1e1 F = Semi-Join von R mit L

32 Die relationalen Algebra- Operatoren Umbenennung  Umbenennung von Relationen  Beispiel: Ermittlung indirekter Vorgänger 2. Stufe der Vorlesung 5216  V1. Vorgänger(  V2. Nachfolger=5216  V1.Nachfolger = V2.Vorgänger (  V1 (voraussetzen) x  V2 (voraussetzen)))  Umbennung von Attributen  Voraussetzung  Vorgänger (voraussetzen)

33 Mengendurchschnitt  Mengendurchschnitt nur auf zwei Argumentrelationen mit gleichem Schema anwendbar  Deshalb ist die Umbenennung des Attribute gelesenVon in PersNr in der Relation Vorlesungen notwendig  Der Mengendurchschnitt zweier Relationen R  S kann durch die Mengendifferenz wie folgt ausgedrückt weden: R  S = R  (R  S) Als Beispielanwendung für den Mengendurchschnitt (Operatorsymbol  ) betrachten wir folgende Anfrage: Finde die PersNr aller C4-Professoren, die mindestens eine Vorlesung halten.  PersNr (  PersNr  gelesenVon (Vorlesungen))   PersNr (  Rang=C4 (Professoren))

34 Die relationale Division Bsp.: Finde MatrNr der Studenten, die alle vierstündigen Vorlesungen hören L :=  VorlNr (  SWS=4 (Vorlesungen)) hören   VorlNr (  SWS=4 (Vorlesungen)) L

35  t  R  S, falls für jedes ts  S ein tr  R existiert, so dass gilt:  tr.S = ts.S  tr.(R-S) = t  Die Division R  S kann auch durch Differenz, Kreuzprodukt und Projektion ausgedrückt werden. R MV m1m1 v1v1 m1m1 v2v2 m1m1 v3v3 m2m2 v2v2 m2m2 v3v3 S V v1v1 v2v2  = R  S =  (R  S) (R)   (R  S) ((  (R  S) (R) x S)  R) R  S M m1m1 Definition der Division

36 Division: Beispiel  R = hören; S = Vorlesung   MatrNr (hören) Alle Studenten (die irgendetwas hören)   MatrNr (hören) x Vorlesung Alle Studenten hören alle Vorlesungen  (  MatrNr (hören) x Vorlesung) – hören Studenten und Vorlesungen, die ein Student nicht hört   MatrNr ((  MatrNr (hören) x Vorlesung) – hören): Studenten, die mindestens eine Vorlesung nicht hören   MatrNr (hören) -  MatrNr ((  MatrNr (hören) x Vorlesung) – hören) Studenten, die alle Vorlesungen hören R  S =  (R  S) (R)   (R  S) ((  (R  S) (R) x S)  R)

37 Der Relationenkalkül Eine Anfrage im Relationenkalkül hat die Form {t  P(t)} mit P(t) Formel. Beispiele:  C4-Professoren  {p  p  Professoren  p.Rang = 'C4'}  Studenten mit mindestens einer Vorlesung von Curie {s  s  Studenten   h  hören(s.MatrNr=h.MatrNr   v  Vorlesungen(h.VorlNr=v.VorlNr   p  Professoren(p. PersNr=v.gelesenVon  p.Name = 'Curie')))}

38  Wer hat alle vierstündigen Vorlesungen gehört {s  s  Studenten   v  Vorlesungen (v.SWS=4   h  hören(h.VorlNr=v.VorlNr  h.MatrNr= s.MatrNr))}

39 Definition des Tupelkalküls Atome  s  R, mit s Tupelvariable und R Relationenname  s.A  t.B, mit s und t Tupelvariablen, A und B Attributnamen und  Vergleichsperator ( , , ,...)  s. A  c mit c Konstante Formeln  Alle Atome sind Formeln  Ist P Formel, so auch  P und (P)  Sind P 1 und P 2 Formeln, so auch P 1  P 2, P 1  P 2 und P 1  P 2  Ist P(t) Formel mit freier Variable t, so auch  t  R(P(t)) und  t  R(P(t))

40 Sicherheit  Einschränkung auf Anfragen mit endlichem Ergebnis.  Die folgende Beispielanfrage {n   (n  Professoren)} ist nicht sicher.  Das Ergebnis ist unendlich.  Bedingung: Ergebnis des Ausdrucks muss Teilmenge der Domäne der Formel sein.  Die Domäne einer Formel enthält -alle in der Formel vorkommenden Konstanten -alle Attributwerte von Relationen, die in der Formel referenziert werden

41 Der Domänenkalkül Ein Ausdruck des Domänenkalküls hat die Form {[v 1, v 2,..., v n ]  P (v 1,..., v n )} mit v 1,..., v n Domänenvariablen und P Formel. Beispiel: MatrNr und Namen der Prüflinge von Curie {[m, n]   s ([m, n, s]  Studenten   v, p, g ([m, v, p,g]  prüfen   a,r, b([p, a, r, b]  Professoren  a = 'Curie')))}

42 Sicherheit des Domänenkalküls  Sicherheit ist analog zum Tupelkakkül  zum Beispiel ist {[p,n,r,o]   ([p,n,r,o]  Professoren) } nicht sicher.  Ein Ausdruck {[x 1, x 2,..., x n ]  P( x 1, x 2,..., x n )} ist sicher, falls folgende drei Bedingungen gelten:

43 1.Falls Tupel [c 1, c 2,..., c n ] mit Konstante c i im Ergebnis enthalten ist, so muss jedes c i (1  i  n) in der Domäne von P enthalten sein. 2.Für jede existenz-quantifizierte Teilformel  x(P 1 (x)) muss gelten, dass P 1 nur für Elemente aus der Domäne von P 1 erfüllbar sein kann - oder evtl. für gar keine. Mit anderen Worten, wenn für eine Konstante c das Prädikat P 1 (c) erfüllt ist, so muss c in der Domäne von P 1 enthalten sein. 3.Für jede universal-quantifizierte Teilformel  x(P 1 (x)) muss gelten, dass sie dann und nur dann erfüllt ist, wenn P 1 (x) für alle Werte der Domäne von P 1 erfüllt ist- Mit anderen Worten, P 1 (d) muss für alle d, die nicht in der Domäne von P 1 enthalten sind, auf jeden Fall erfüllt sein.

44 Ausdruckskraft Die drei Sprachen 1.relationale Algebra, 2.relationaler Tupelkalkül, eingeschränkt auf sichere Ausdrücke und 3.relationaler Domänenkalkül, eingeschränkt auf sichere Ausdrücke sind gleich mächtig


Herunterladen ppt "Internships in India (Accenture)  Falls Sie ein Internship in India machen möchten, bitte setzen Sie sich mit mir in Verbindung:"

Ähnliche Präsentationen


Google-Anzeigen