Sie sind nicht angemeldet.

Catherine

Trainee

  • »Catherine« ist weiblich
  • »Catherine« ist der Autor dieses Themas

Beiträge: 61

Registrierungsdatum: 06.10.2003

1

12.11.2003, 16:27

Datenbanksysteme I - Übungsblatt 4

Hallo Leute,

eine Frage über Aufgabe 2, "Relation mit den Attributen Name und Elternteil" <=> Eltern(Name, Elternteil) ?

Und Elternteil bedeutet entweder Vater oder Mutter, also dann der Wert des Elternteil sind: Vater, Mutter oder Null, habe ich richtig verstanden?

Danke!
Follow your heart, not brain!

AnyKey

Erfahrener Schreiberling

Beiträge: 451

Registrierungsdatum: 11.12.2001

Wohnort: H-Town

Beruf: Student

2

12.11.2003, 22:01

Nein!
Die Relation ist schon ELTERN(Name, Elternteil)
ABER in der Spalte Elternteil stehen die Namen eines Elternteils.
So kommt dann ein Kind in der Regel in der Spalte Name 2x vor, also einmal mit der Mutter und einmal mit dem Vater.
So hab ich das verstanden.

"Der Mensch braucht Schubladen." -- Any Key

Catherine

Trainee

  • »Catherine« ist weiblich
  • »Catherine« ist der Autor dieses Themas

Beiträge: 61

Registrierungsdatum: 06.10.2003

3

13.11.2003, 15:25

Vielen Dank AnyKey! :)
Follow your heart, not brain!

AnyKey

Erfahrener Schreiberling

Beiträge: 451

Registrierungsdatum: 11.12.2001

Wohnort: H-Town

Beruf: Student

4

13.11.2003, 16:19

Wie sieht das denn eigentlich mit den Halbgeschwistern aus? Hat da einer mal nen tipp? Ich tapp da nämlich im dunklen :(

"Der Mensch braucht Schubladen." -- Any Key

Wanja

Junior Schreiberling

Beiträge: 150

Registrierungsdatum: 04.02.2003

5

15.11.2003, 17:45

Hallo, wie kann ich Aufgabe 2 in Relationsalgebra aufschreiben, ich finde dazu kein Beispiel. Wenn man nen 3fachen Selfjoin macht und dann wie in nem Baum die Kinder abarbeitet, kann man das mit sigma Elternteil = Name aufschreiben? Und für Elternteil setzt man die Unteranfrage ein?

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Wanja« (15.11.2003, 17:50)


migu

free rider

  • »migu« ist männlich

Beiträge: 2 643

Registrierungsdatum: 11.12.2001

Wohnort: Hannover

Beruf: Developer

6

15.11.2003, 21:36

nix
tar: Anlegen eines leeren Archivs wird feige verweigert.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »migu« (15.11.2003, 21:41)


NullAhnung

Erfahrener Schreiberling

  • »NullAhnung« ist weiblich

Beiträge: 332

Registrierungsdatum: 28.04.2003

7

16.11.2003, 10:43

Kann das so funktionieren? Für 1b

SELECT PRES_NAME, YEARS_SERV
FROM PRESIDENT
WHERE NOT EXISTS
(SELECT *
FROM PRES_MARRIAGE
WHERE PRES_NAME = '%' AND SPOUSE_NAME = '%');

migu

free rider

  • »migu« ist männlich

Beiträge: 2 643

Registrierungsdatum: 11.12.2001

Wohnort: Hannover

Beruf: Developer

8

16.11.2003, 12:40

Zitat

Original von NullAhnung
Kann das so funktionieren? Für 1b

SELECT PRES_NAME, YEARS_SERV
FROM PRESIDENT
WHERE NOT EXISTS
(SELECT *
FROM PRES_MARRIAGE
WHERE PRES_NAME = '%' AND SPOUSE_NAME = '%');


Nein, ich denke nicht. Du musst prüfen, ob für einen president.pres_name ein pres_marriage.pres_name existiert.
tar: Anlegen eines leeren Archivs wird feige verweigert.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »migu« (16.11.2003, 12:40)


NullAhnung

Erfahrener Schreiberling

  • »NullAhnung« ist weiblich

Beiträge: 332

Registrierungsdatum: 28.04.2003

9

16.11.2003, 17:31

Also ich hab bei 2)
a) Geht nicht
b) Geht nicht
c) SELECT Name, Elternteil
FROM ELTERN E1
WHERE (SELECT *
FROM ELTERN E2
WHERE E1.Elternteil=E2.Elternteil)


Ist da irgendwas von richtig? Und wenn nicht, wie mach ichs besser?

cowhen

Muuuh!

  • »cowhen« ist männlich

Beiträge: 1 374

Registrierungsdatum: 13.12.2001

10

16.11.2003, 18:19

Zitat

Original von NullAhnung
a) Geht nicht
b) Geht nicht
Also IMHO gehen a) und b) auch
plenty of time to relax when you are dead

dfex

Junior Schreiberling

  • »dfex« ist männlich

Beiträge: 248

Registrierungsdatum: 11.12.2001

11

16.11.2003, 20:00

hi ...

bitte um meinungen:

c) geht auch...

falls jemand anderer meinung ist, bitte "gegenbeispiel daten" posten ... thx

NullAhnung

Erfahrener Schreiberling

  • »NullAhnung« ist weiblich

Beiträge: 332

Registrierungsdatum: 28.04.2003

12

16.11.2003, 20:07

Zitat

Original von NullAhnung
c) SELECT Name, Elternteil
FROM ELTERN E1
WHERE (SELECT *
FROM ELTERN E2
WHERE E1.Elternteil=E2.Elternteil)




WEnn das da richtig sein sollte, wie forme ich das jetzt in eine Relationenalgebra um?

dfex

Junior Schreiberling

  • »dfex« ist männlich

Beiträge: 248

Registrierungsdatum: 11.12.2001

13

16.11.2003, 20:19

Zitat

Original von NullAhnung
WEnn das da richtig sein sollte, wie forme ich das jetzt in eine Relationenalgebra um?

leider ist die abfrage nicht ganz so einfach. bei mir funktioniert deine abfrage nicht.

MAX

Senior Schreiberling

  • »MAX« ist männlich

Beiträge: 822

Registrierungsdatum: 11.12.2001

Wohnort: Hannover

14

16.11.2003, 20:25

2c

ich habe die aufgabe ähnlich gelöst, aber mit einem kleinen unterschied und zwar:
select e1.name, e2.name from eltern e1, eltern e2 where e1.name <> e2.name and e1.elternteil = e2.elternteil;

wie man sieht, ist hier noch ein zusatz mit e1.name <> e2.name, sonst würde die abfrage einen einfachen cross join liefern, so quasi gekreuzt mit sich selbst und ausgegeben. das ist, denke ich, unerwünscht. bitte um meinungen.
mfg
MAX

dfex

Junior Schreiberling

  • »dfex« ist männlich

Beiträge: 248

Registrierungsdatum: 11.12.2001

15

16.11.2003, 23:09

RE: 2c

Zitat

Original von MAX
select e1.name, e2.name from eltern e1, eltern e2 where e1.name <> e2.name and e1.elternteil = e2.elternteil;

deine abfrage liefert falsche ergebnisse, sobald eine person mehr als ein kind hat.