Gå till innehåll
Just nu i M3-nätverket

skapa databas


TryckVågen

Rekommendera Poster

Jag ska försöka förklara mig kort, har utbildat mig inom IT infrastruktur och bara använt SQL att ansluta till och gjort några övningar i SQL. Nu har jag fått ett jobbtillfälle men de vill också att jag kan hantera databaser någorlunda.

En uppgift jag fått är att skapa en databas för hyrbilar:

Problemlösning:

  • Vi vill ha en databas för en hyrbilsfirma.

  • Firman har ett ~20 bilar av olika märken och modeller.

  • De olika modellerna har olika förbrukning

  • De olika modellerna har olika drivmedel

  • De olika drivmedlen kostar olika mycket varje månad.

  • Varje bil kostar firman X kronor per månad och Y kronor per mil.

  • Varje bil drar in X kronor per uthyrningsdygn och Y kronor per mil.

  • Efter varje uthyrning registreras mätarställningen på bilen. (Viktigt med ganska många mätarställningar, >500st totalt för alla bilar.)

Skapa databasen och fyll den med information
Vilka bilar tjänar firman mest på ?
Lista bilar efter hur populära de är vid korta sträckor respektive långa sträckor
Ta ut totalkostnad för en viss bränsletyp över en period
Ta ut totalkostnad per mil, både totalt och per bil
Ta fram vilken bil som gått längst
Vilken bil kostar minst?

DÅ till frågan, TROR ni att det är möjligt för mig att lära mig skapa en sådan databas till 10 januari och hur avancerat är det egentligen?

Länk till kommentar
Dela på andra webbplatser

Det här beror helt på vilka förutsättningar du har. Är du van vid att programmera i något språk alls? Om du är van att tänka som programmerare (oberoende om det är java, C, bash-script, python, swift, apple-script eller något annat) så kan du ganska enkelt plugga in den SQL du behöver, och lösa uppgiften. Om du å andra sidan aldrig har programmerat så är det ganska mycket nytt tänkande du ska få till för att lösa uppgiften.

 

Som uppgiften är beskriven kan man nog göra många olika lösningar i SQL. Jag tror att det är meningen. Jag tror att de med uppgiften vill se hur du tänker och hur du skulle angripa problemet. De är nog nöjda även om lösningen är en helt annan än den de tänkte på, om du bara kan förklara hur du tänkte och varför du lade upp lösningen som du gjorde.

 

Några länkar du kan ha nytta av:

http://postgresapp.com

http://www.w3schools.com/sql/

https://www.ntu.edu.sg/home/ehchua/programming/sql/Relational_Database_Design.html

Länk till kommentar
Dela på andra webbplatser

Det här beror helt på vilka förutsättningar du har. Är du van vid att programmera i något språk alls? Om du är van att tänka som programmerare (oberoende om det är java, C, bash-script, python, swift, apple-script eller något annat) så kan du ganska enkelt plugga in den SQL du behöver, och lösa uppgiften. Om du å andra sidan aldrig har programmerat så är det ganska mycket nytt tänkande du ska få till för att lösa uppgiften.

 

Som uppgiften är beskriven kan man nog göra många olika lösningar i SQL. Jag tror att det är meningen. Jag tror att de med uppgiften vill se hur du tänker och hur du skulle angripa problemet. De är nog nöjda även om lösningen är en helt annan än den de tänkte på, om du bara kan förklara hur du tänkte och varför du lade upp lösningen som du gjorde.

 

Några länkar du kan ha nytta av:

http://postgresapp.com

http://www.w3schools.com/sql/

https://www.ntu.edu.sg/home/ehchua/programming/sql/Relational_Database_Design.html

 

Inte van att programmera något alls, har endel script med mig men inte mer än så. Ska jag börja med att skapa tabellerna i t.ex PhpMyAdmin? Är det en bra start?

Länk till kommentar
Dela på andra webbplatser

 

Inte van att programmera något alls, har endel script med mig men inte mer än så. Ska jag börja med att skapa tabellerna i t.ex PhpMyAdmin? Är det en bra start?

Skulle säga att du ska börja med att släppa datorn och istället rita upp relationerna.

Länk till kommentar
Dela på andra webbplatser

Skulle säga att du ska börja med att släppa datorn och istället rita upp relationerna.

 

Precis.

Vilka tabeller ska du ha, vilka kolumner ska de innehålla och hur är de relaterade till varandra.

 

Sedan låter det inte som om du ska skriva något program alls, utan de SQL-frågor som ger svaren till deluppgifterna. Därmed faller hela problematiken om programspråk etc.

 

Så svaret på din fråga: Jodå, det är helt klart görbart till den 10 januari.

Länk till kommentar
Dela på andra webbplatser

Tack för svaren!

Försöker installera MySql på macen nu, man ska kolla så att checksumman stämmer osv, det gör den. Men det går inte att installera, står att den är manipulerad eller liknande, kommer inte vidare hur som. Någon som känner igen det? Hittar ingenting någonstans

Länk till kommentar
Dela på andra webbplatser

Tack för svaren!

Försöker installera MySql på macen nu, man ska kolla så att checksumman stämmer osv, det gör den. Men det går inte att installera, står att den är manipulerad eller liknande, kommer inte vidare hur som. Någon som känner igen det? Hittar ingenting någonstans

 

Den digitala signaturen är ogiltig

Länk till kommentar
Dela på andra webbplatser

2016-12-21 12-50-48.pdfJag förstår att det kanske inte är så här enkelt ni menar, men vet inte riktigt vart jag ska börja.

 

 

 

 

Länk till kommentar
Dela på andra webbplatser

 

Därmed faller hela problematiken om programspråk etc.

 

 

 

Min orsak till att nämna programmeringsspråk är att det är betydligt enklare att skriva SQL-statements om man är van vid att tänka som en programmerare. Om man är van vid att programmera i vilket språk som helst, så är det lättare att fatta vad man gör med SQL.

 

Om inte arbetsgivaren sagt något om vilken SQL-miljö som ska användas, så skulle jag rekommendera PostgreSQL. (Se t.ex. länk som jag postade tidigare.) PostgreSQL har den mest kompletta implementationen av standard SQL. MySql är litet speciellt så jag skulle inte rekommendera det som första val.

 

Vad som är görbart beror på förutsättningarna...

En person som är duktig på SQL gör den här uppgiften på en eller två timmar.

Du måste själv avgöra hur mycket tid du tror du behöver för att lära dig en databasdesignkunskap och den SQL-kunskap som behövs. Ingen av oss andra kan veta vilka förutsättningar du har för att lära dig.

 

Mitt råd är att undvika PhpMyAdmin och liknande. Rita tabeller, kolumner och relationer på papper. Sedan skriver du det som SQL-statements.

Länk till kommentar
Dela på andra webbplatser

attachicon.gif2016-12-21 12-50-48.pdfJag förstår att det kanske inte är så här enkelt ni menar, men vet inte riktigt vart jag ska börja.

 

Titta på länken jag postade tidigare:

https://www.ntu.edu.sg/home/ehchua/programming/sql/Relational_Database_Design.html

 

Texten beskriver vad man ska tänka på vid databasdesign (på enkel nivå). De illustrationer som finns där är samma sorts skisser som jag rekommenderar att du gör på papper.

Länk till kommentar
Dela på andra webbplatser

attachicon.gif2016-12-21 12-50-48.pdfJag förstår att det kanske inte är så här enkelt ni menar, men vet inte riktigt vart jag ska börja.

 

 

 

 

 

En viss bil har en modellbeteckning OCH är tillverkad av en tillverkare, som för övrigt tillverkar bilar med just den modellbeteckningen. Så en (dubbelriktad) pil mellan bil och modell?

Länk till kommentar
Dela på andra webbplatser

Hur skulle ni säga att jag ska gå vidare? Förstår ju nu hur jag bygger databasen och fyller den med data osv, ska jag börja göra det för att kunna besvara frågorna som ställs?

Länk till kommentar
Dela på andra webbplatser

Det är ju lämpligt att fylla databasen med testdata, ja. Borde väl räcka med en handfull bilmodeller eller kanske 10 stycken. Sedan ska du ju ha runt 20 bilar av dessa modeller.

Länk till kommentar
Dela på andra webbplatser

Det är ju lämpligt att fylla databasen med testdata, ja. Borde väl räcka med en handfull bilmodeller eller kanske 10 stycken. Sedan ska du ju ha runt 20 bilar av dessa modeller.

 

Vad kan jag tänkas behöva för data:

 

CREATE TABLE bilartest

(
id INT PRIMARY key,
märke char(30),
modell CHAR(30),
drivmedel INT,
förbrukning INT
färg char(20)
);
Länk till kommentar
Dela på andra webbplatser

post-46807-0-20149200-1482924190_thumb.jpg

 

Vad mer kan behövas för tabell? Vart ska jag lägga mätarställning?

Länk till kommentar
Dela på andra webbplatser

attachicon.gif2016-12-28 12-03-36.jpg

 

Vad mer kan behövas för tabell? Vart ska jag lägga mätarställning?

En tabell för varje fysisk bil. Kan innehålla regnr, mätarställning och modell. Modell innehåller då tillverkare och drivmedel.

Länk till kommentar
Dela på andra webbplatser

En tabell för varje fysisk bil. Kan innehålla regnr, mätarställning och modell. Modell innehåller då tillverkare och drivmedel.

 

Du menar väl en tabell med namnet fysisk_bil, som har kolumner för regnr, mätarställning, modell_id.

 

Att ha en separat tabell för varje fysisk bil är nog ingen bra idé ;):D

Länk till kommentar
Dela på andra webbplatser

 

Du menar väl en tabell med namnet fysisk_bil, som har kolumner för regnr, mätarställning, modell_id.

 

Att ha en separat tabell för varje fysisk bil är nog ingen bra idé ;):D

Som det kan bli. :blushing:

Naturligtvis menar jag som du skriver: En tabell med en rad för varje fysisk bil.

Länk till kommentar
Dela på andra webbplatser

En tabell för varje fysisk bil. Kan innehålla regnr, mätarställning och modell. Modell innehåller då tillverkare och drivmedel.

 

 

 

Du menar väl en tabell med namnet fysisk_bil, som har kolumner för regnr, mätarställning, modell_id.

 

Att ha en separat tabell för varje fysisk bil är nog ingen bra idé ;):D

 

 

Något liknande?

 

https://docs.google.com/spreadsheets/d/1XUTH62zE3pRjyE6Yd0dhFK2GR6MXQEGAMph-dCTKlqM/edit?usp=sharing

Länk till kommentar
Dela på andra webbplatser

 

Vart tog tabellerna för tillverkare respektive modell vägen?

 

 

Menar du att jag ska ha en tabell för tillverkare + tabell för modell? Jag tänker ju att det räcker med en tabell för alla fysiska bilar och kompletterar dessa med data från andra tabeller?

Länk till kommentar
Dela på andra webbplatser

 

 

Menar du att jag ska ha en tabell för tillverkare + tabell för modell? Jag tänker ju att det räcker med en tabell för alla fysiska bilar och kompletterar dessa med data från andra tabeller?

 

Det är en smaksak.

 

Du hade ju ritat separata tabeller innan och nu var de borta. :)

Länk till kommentar
Dela på andra webbplatser

 

Det är en smaksak.

 

Du hade ju ritat separata tabeller innan och nu var de borta. :)

Det är lite svårt å få ihop det i början vilka tabeller som man ska ha de olika data i för att sen få ihop dem med joins.

 

Men jag ser ju denna databasen som att det finns ett antal bilar och de ska inte köpas in fler eller så, då kanske man skulle haft ett table för bara tillverkare osv också

Länk till kommentar
Dela på andra webbplatser

Man får ju göra ett avvägande mellan att ha ett fåtal tabeller med många kolumner i mot att ha flera tabeller med färre kolumner. I det förstnämnda fallet så får du mycket likadan info ifall du har många bilar av samma modell. Det sistnämnda fallet skalar upp bättre mot tusentals bilar.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.



×
×
  • Skapa nytt...