Lite frågor gällande relationsalgebra

Permalänk
Medlem

Lite frågor gällande relationsalgebra

Hej!
Jag hoppas jag petat in detta på rätt ställe nu. Det är så att jag sitter och pysslar lite med relationsalgebra. Har knåpat ihop 3 svar men är inte riktigt säker på huruvuda mina lösningar är korrekt. Vore super om någon med lite mer kunskap kunde ta sig en kik och se om det verkar vara rätt.

Relationerna ser ut som följande:

Product(maker, model, type)
PC(model, speed, ram, hd, cd, price)
Laptop(model, speed, ram, hd, screen, price)
Printer(model, color, type, price)

Frågorna tillsammans med mina svar:

Lista modellnummer och pris för alla produkter som tillverkas av B

Svar: πmodel,price((σmaker=’B’(Product) JOIN PC) AND (σmaker=’B’(Product) JOIN Laptop) AND (σmaker=’B’(Product) JOIN Printer))

Vilka tillverkare tillverkar laptops men inte PCs?

Svar: πmaker(Product - type ≠’laptop’(Product))

Vilka datorer har en hastighet på minst 150? Ange modellnummer och tillverkare

Svar: πmodel,maker((σspeed>’150’(PC) JOIN Product) AND (σspeed>’150’(Laptop) JOIN Product))

Tack på förhand

Visa signatur

Acer Aspire 5551G @ Ubuntu 12.04

Permalänk
Medlem

Nu har jag aldrig läst någon relationsalgebra så känner ej till syntaxen (och vad motsvarande sql blir), men jag har en fundering om fråga 2:
Kommer du inte få med tillverkare som gjorde både PCs och laptops med det där? Samma maker borde kunna finnas på flera produkter tänker jag, och det verkar inte som om din lösning tar hänsyn till det?

Visa signatur

AK47s for everyone! - Angry mob
Since NaN /= NaN, I think, we should decipher 'NaN' as 'Not a NaN' - Miguel Mitrofanov
(Varför är människan så benägen att tro på Gud?) Antagligen har det lönat sig och evolutionen har drivit fram sådana hjärnor. - Anon

Permalänk
Medlem

Jo fast det är ju det jag vill?Jag vill ha med alla produkter som maker B har gjort,jag projicerar ju bara ut modellen och priset på respektive produkt. Eller tänker jag helt åt skogen nu?

Visa signatur

Acer Aspire 5551G @ Ubuntu 12.04

Permalänk
Medlem

Jag tolkar frågan som att du inte ska ha med några tillverkare som gjort PCs i svaret. Om det hade räckt med att en tillverkare gjort en laptop oavsett PCs så blir frågan konstig eftersom den nämner PCs men inte Skrivare.
Om du inte håller med och det är en inlämningsuppgift/prov så tycker jag du ska skriva ut (i vanlig text alltså) hur du tolkat frågan när du lämnar in alt. fråga läraren.

Visa signatur

AK47s for everyone! - Angry mob
Since NaN /= NaN, I think, we should decipher 'NaN' as 'Not a NaN' - Miguel Mitrofanov
(Varför är människan så benägen att tro på Gud?) Antagligen har det lönat sig och evolutionen har drivit fram sådana hjärnor. - Anon

Permalänk
Medlem

Såg nu att jag vart lite trött när jag svarade till dig och trodde att du menade den uppgiften jag listat som uppgift 1 (den ligger som uppgift 2 bland mina uppgifter). För att återgå till din fråga, du har rätt nu när jag kollar på det. Jag behöver nog se över det svaret lite mera! Tack så mycket! Hoppas nån mer kan kika in och ge mig lite feedback på de andra 2 svaren.

Visa signatur

Acer Aspire 5551G @ Ubuntu 12.04

Permalänk
Medlem

ok
Jag tror dom andra 2 logist sett är rätt. Dock kan du förenkla dom lite om du vill genom att göra join med Produkt utanför unionerna istället för i varje del innanför.

Visa signatur

AK47s for everyone! - Angry mob
Since NaN /= NaN, I think, we should decipher 'NaN' as 'Not a NaN' - Miguel Mitrofanov
(Varför är människan så benägen att tro på Gud?) Antagligen har det lönat sig och evolutionen har drivit fram sådana hjärnor. - Anon

Permalänk
Medlem

Det är sant,men det är inte så viktigt att svaret är optimerat utan bara att det svarar på frågan. Är väl lika bra att lämna in det, har ju trotts allt 540 visningar och svar från 1 person så det lär väl inte hända så mycket mer i tråden.

Visa signatur

Acer Aspire 5551G @ Ubuntu 12.04