Göm menyn

732G16 Databaser: design och programmering

Här finns instruktioner för hur man kommer igång med databassystemet inför labbkursen, installerar egen databas och arbetar på distans. Observera att SQL-labben behöver förberedas, det lönar sig att ha gjort detta innan labbtillfället.

Komma igång med databasklienten

Alla databashanterare tillhandahåller två grundläggande program, databas-server och databas-klient.

Databasservern sköter själva lagringen av databaser och även loggning och backup. LiU tillhandahåller en databasserver som heter MariaDB och är en relationsdatabasserver. Det finns andra, t.ex. mysql-server, som är tillräckligt lik MariaDB för kursens syften.

Databasklienten hanterar interaktionen med användaren, det finns både grafiskt orienterade klienter och textbaserade, där man ger kommandon och använder frågespråket SQL. Databasklienten mysql finns installerad i både PC- och SU-pul. Hur man startar dem beskrivs nedan. Alla labbpass i denna kurs är schemalagda i PC-pul men utöver schemalagd tid går det bra att, i mån av plats, sitta i både PC- och SU-pul (du arbetar mot samma databas-server på LiU oavsett var du sitter) och att köra via thinlinc(en bit ner på sidan).

En del av databashanterarens uppgifter är att skydda databaserna från otillåten åtkomst. En databashanterare arbetar därför med användarkonton som knyts till unika användare. Du får ett användarkonto på LiUs databas-server när du registrerat dig på kursen (om du använt LiUs MariaDB-server i tidigare kurs får du inget nytt konto utan använder samma nu). Detta konto är separat från ditt centrala LiU-konto men användarnamnet är likadant (ditt LiuID). Detta konto har ett eget lösenord, som antingen skickas ut med epost i samband med att databaskontot skapas, eller begärs ut manuellt på denna sida. Där kan du också få ett nytt lösenord om du glömt det (Om du inte kan komma åt sidan, försök från en datorsal (pul) eller via thinlinc). Om du vill installera en databashanterare på din egen dator följer du instruktionerna för att arbeta på egen dator under Arbeta på distansnedan. Du behöver då själv skapa ett användarkonto och sätta ett lösenord för att inte öppna upp din dator för hacker-attacker.

Starta MySQL klienten

För att starta MySQL-klienten (dvs det program där man skriver SQL-frågor till en databas) beror det på om du använder en dator i PC-pul eller SU-pul för att koppla upp dig mot LiUs databasserver. Använder du ThinLinc, följ instruktionerna för SU-pul. Om du installerat egen databas-server lokalt på din egen dator, följ instruktionerna för "egen PC" respektive "egen Mac eller Linux".

OBS: Se till att ersätta "DittLiuID" med ditt faktiska LiU-ID i nedanstående kommandon.

Om du installerat databassystem på egen PCOm du använder databasystem på egen mac eller LinuxOm du sitter i PC-pul och använder LiUs databassystemOm du sitter i SU-pul eller kör ThinLinc och använder LiUs databassystem

Tryck windowstangenten och S för att få upp sökrutan, sök efter "MariaDB" så hittar du "Command Prompt MariaDB". Starta den. Du ska få upp en svart ruta med en prompt. Starta mysql-klienten med det databas-användarnamn du skapade vid installationen. Skriv:
mysql -u DittDatabasAnvändarNamn -p
Du får då mata in ditt lösenord, det lösenord du satte för den databasanvändaren.

Starta ett terminalfönster. På Mac hittar du Terminal i mappen Appar/Verktyg. På Linux startar du en valfri kommandoradsterminal.
Gå sedan till den mapp/folder du lagt sql-filerna i. Om den heter 732G16 och ligger direkt under din användare blir sökvägen på Mac: /Users/dittAnvändarnamn/732G16. och på Linux: /usr/dittAnvändarnamn/732G16 Gå dit med hjälp av cd-kommandot: cd sökväg. Starta sedan mysql-klienten och ange det databas-användarnamn som du skapade vid installationen:
mysql -u dittDatabasAnvändarNamn -p
Du får då mata in ditt lösenord, det lösenord du satte för den databasanvändaren.

Starta en terminal genom att skriva cmd i startmenyns sökruta och klicka på cmd.exe eller Command Prompt. Då ska en svart ruta (terminalfönster) öppnas. Där skriver du nedanstående två kommandon:

cd "\Program Files\MySQL\MySQL Workbench 8.0 CE\"
mysql -h mariadb.edu.liu.se -u DittLiuID -p

Det första kommandot ser till att man kommer till rätt mapp för det följande kommandot. Det andra kommandot startar klienten.

För lösenordet till ditt databaskonto på LiUs server, se ovan.

Starta en Terminal genom Menyn i skärmens högre kant. Olika terminalprogram är installerade. Då ska en svart ruta (terminalfönster) öppnas där man startar klienten med nedanstående kommando:

mysql -h mariadb.edu.liu.se -u DittLiuID -p

För lösenordet till ditt databaskonto på LiUs server, se ovan.

När man startat klienten måste man tala om vilken databas man vill arbeta med, du har bara tillgång till en och den har samma namn som ditt liu-id. För att göra detta ger man kommandot:

use DittLiuID
Om du kör lokalt på egen installation skriver du istället namnet på den databas du skapade vid installationen efter USE.

I klienten kan man sedan ge kommandon för att läsa in sqlkod från fil (source), lägga in data (insert), titta på data (select) mm. Kommandotolken avslutas med kommandot exit eller ctrl-C. Alla kommandon som hanterar databasen avslutas med semikolon (;). Om man glömmer att göra det får man en ny prompt, en pil ( ->), istället för mysql> och kommandot utförs inte. För att komma ur det läget skriver man semikolon, varpå kommandot utförs.

Att skapa databasen för SQL-föreläsningen och laborationen

Ladda ner och spara kopior av filerna company_schema.sql och company_data.sql. Dessa filer innehåller SQL kod för att skapa tabeller i en databas samt fylla dessa tabeller med data. Förslagsvis sparar du filerna i en mapp som heter 732G16. Om du kör på egen server gör du den mappen på ett passande ställe, om du kör på universitetets datorer lägger du den på Z-disken (PC-pul) eller i din hemkatalog (SU-pul). Om du inte väljer detta namn ersätter du "732G16" i kommandona i nedanstående tabell med den katalog/mapp du valt istället.

Du skapar databasen och fyller den med data genom att starta MySQL klienten (se ovan) och exekvera nedanstående två kommandon, ett i taget (kom ihåg att om du lade filerna någon annan stans än enligt ovan behöver du byta ut sökvägen till filerna. Kom ihåg att när du kör på PC (både i PC-pul och på egen Windowsdator) är din arbetskatalog mysql-katalogen) :

egen PCegen Mac/LinuxPC-pulSU-pul/ThinLinc

source ~/732G16/company_schema.sql

source ~/732G16/company_data.sql

(Obs: tilde-tecknet ~ tolkas automatiskt av klienten som sökvägen för din hemkatalog. Om du lagt filerna i någon annan mapp måste du ersätta sökvägen med din egen.

source company_schema.sql

source company_data.sql

source Z:\732G16\company_schema.sql

source Z:\732G16\company_data.sql

source ~/732G16/company_schema.sql

source ~/732G16/company_data.sql

(Obs: tilde-tecknet ~ tolkas automatiskt av klienten som sökvägen för din hemkatalog.

Du får en massa utskrifter från dessa, skrolla upp och kontrollera att det står Query OK överallt, inte ERROR. Om du får ERROR kan det bero på att det blivit fel i filen vid nedladdningen.

Nu har du skapat en egen databas med ett antal tabeller och fyllt tabellerna med data. Dessa tabeller lagras i den databas-server du kör mot och finns kvar där mellan körningar (du behöver alltså bara göra detta en gång). Observera att på LiUs databas-server har användarna inte rättigheter att skapa nya databaser, vilket betyder att du blir tvungen att lagra flera logiska databaser i samma administrativa databas (den som heter som ditt liuID). På egen databas-server har du fulla rättigheter och kan skapa olika databaser för de olika momenten i kursen.

Förberedelse för SQL-laborationen: Undersök databasen

När du fyllt databasen med tabeller och data mha de två source-anropen ovan så ska du använda kommandona
SHOW TABLES;
SHOW CREATE TABLEtabellnamn;
för att inspektera hur databasen är uppbyggd. Om du tycker det är bökigt kan du också titta i filen company_schema.sql (öppna i ett textredigeringsprogram, t.ex. Atom - inte Word eller liknande ordbehandlare).

Rita upp databasens relationsschema, markera primärnycklar och främmande nycklar (använd samma sätt att rita som visas på föreläsning). Ta med dig resultatet till SQL-laborationen, som blir markant lättare när man kan se tydligt hur tabellerna hänger ihop. Notera att om du provar på att skapa tabeller under föreläsningen om SQL ligger de tabellerna (Works-in och Managers) kvar i din databas men du ska inte ta med dem i detta relationsschema, de anses inte tillhöra orginaldatabasen.

Labba på distans

Det är tillåtet att labba på distans eller på egen dator men handledning ges i labbsalarna på schemalagd tid och bara i begränsad omfattning via epost. Om man vill labba på distans kan man antingen ladda ner ett eget databassystem eller använda LiUs resurser på på distans.

Egen installation av databassystem:

En instruktionsvideo för installation och start av eget databassystem finns på Lisam (Installation av egen databas). Filmen beskriver installation på både Windows, Mac och Linux. Titta på hela filmen för att undvika att öppna upp din dator för hacker-attacker (använd inte root-kontot). När du kör på egen installation behöver du också R/Rstudio på samma dator.

  • Windows: För att installera MariaDB på Windows, ladda ner installeraren här. Följ sedan instruktionerna här. Se också instruktionsvideon på Lisam.
  • Mac: MacOS-X har mysql installerat vid leverans. Det är tillräckligt likt MariaDB för kursens syften: Gå till Systeminställningar (System Preferences), längst ner finns mysql, välj den. Om mysql-servern inte är igång, starta den med knappen (start). Öppna sedan ett terminalfönster och skapa databasanvändare enligt instruktionerna på videon på Lisam.
    Vill man installera MariaDB på Mac, följ instruktionerna här. Var då noga med att stänga av den förinstallerade servern, annars kan det bli konflikt.
    Skapa databasanvändare enligt instruktionsvideon på Lisam.
  • Linux: För Linux, se instruktionsfilmen på Lisam eller använd din distributions pakethanterare.

Använda LiUs databassystem via Thinlinc eller RDP

Thinlinc ger ett fjärrskrivbord som är identisk med det man får på datorerna i SU-pul. RDP låter dig logga in på en fysisk dator i en datorsal på Campus. Det finns datorsalar schemalagda för kursen för den som vill använda detta alternativ. Se LiUs information om fjärrinloggning. När du använder detta alternativ ska du följa instruktionerna för PC-pul respektive SU-pul nedan beroende på vilket pul du loggar in på.


Sidansvarig: Eva Ragnemalm
Senast uppdaterad: 2024-04-19