DVA234 Databaser. Dag Nyström, Introduktion till databaser och MS SQL Server

Relevanta dokument
1.Lär känna MS SQL Observera. Tips. Förberedelse

Lär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse

Starta MySQL Query Browser

Föreläsning 2: Översikt över ett databassystem

DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index

Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner

Labb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Databasutveckling Introduktion till SQL och TSQL

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Webservice & ERP-Integration Rapport

För att XCOPY i SQL Server Express ska fungera måste data och logg ligga i samma mapp, vilket naturligtvis inte är så bra.

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

Tentamen för DD1370 Databasteknik och informationssystem

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

SQLs delar. Idag. Att utplåna en databas. Skapa en databas

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

Prova på-laboration i SQL

TER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)

Se kurshemsidan för användbara länkar för att genomföra denna laboration.

Databaser och SQL - en kort introduktion

Databaser - Design och programmering

Det är fullt tillåtet att göra laborationen innan laborationstillfället.

732G16: Databaser - Design och programmering

Databaser och Datamodellering Foreläsning IV

Design och underhåll av databaser

Detta dokument skall ge en kortfattad introduktion till Jasmine installationen vid DSV.

TENTAMEN För kursen. Databasteknik. Ansvarig för tentamen: Anna Palmquist. Förfrågningar: Anslås inom 3 veckor

Övningar i SQL. SQLAccess.doc Ove Lundgren

Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:

Idag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20

Stored procedure i ASP.NET

Introduktion till frågespråket SQL (v0.91)

Inga hjälpmedel är tillåtna

Karlstads Universitet, Datavetenskap 1

Introduktion till MySQL

Instruktion för användande av Citrix MetaFrame

INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner

Laborationer - databaser, EDAA20 Programmering och databaser

SQL. Structured Query Language. Frågespråk för att används för. Kommandon. data åtkomst data manipulation

KAP 18 SQL SERVER AGENT

Grunderna för relationsmodellen!

Instruktion för användande av Citrix MetaFrame

Kapitel 4 Arkivmenyn Innehåll

Instruktion för användande av Citrix MetaFrame

Webprogrammering och 729G28 databaser Webprogrammering och databaser Kursöversikt Webprogrammering Designprocessen Lösningsförslag

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Tentamen för DD1370 Databasteknik och informationssystem

Webprogrammering och databaser. 729G28 Webprogrammering och databaser. Kursöversikt. Praktisk info. Webprogrammering. Ändringar mot förra året

LEX INSTRUKTION REPLIKERING UPPGRADERING

Instruktion för användande av Citrix MetaFrame

729G28 Webprogrammering och databaser. Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminologi

FrontPage Express. Ämne: Datorkunskap (Internet) Handledare: Thomas Granhäll

Structured Query Language (SQL)

Sid 1 (9) Tillämpad fysik och elektronik Karin Fahlquist. Laboration: Databasdesign & SQL

TENTAMEN DATABASKUNSKAP ITEK12

Informationssystem och Databasteknik, 2I-1100 HT2001. Relationsalgebra. Relationsalgebran är sluten: R 1 op R 2 R 3.

Nya webbservern Dvwebb.mah.se

Viktigt! Glöm inte att skriva Tentamenskod på alla blad du lämnar in.

Labb 1. prompt> mysql -h db-und.ida.liu.se -u [liuid] -p Enter password. mysql --host=db-und.ida.liu.se --user=[liuid] --password=[lösen]

3. Dynamiska webbplatser, 20 Yhp (4 v)

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

TENTAMEN. För kursen. Databasteknik. Ansvarig för tentamen: Cecilia Sönströd. Förfrågningar: Anslås inom 3 veckor

Databasspråket SQL - online.

1DV405 - Databasteknik. Kursintroduktion. Så här är kursen planerad.

Structured query language (SQL)

Stored procedure i ASP.NET

Databasutveckling Tabeller. tinyint 1 byte (0-255) Upp till 8 bytes

Övning 1: Skapa virtuell maskin för utveckling.

WCMS-15, Webbutvecklare CMS

Laboration SQL. Kom igång.

Laboration 2, MS SQL. Observera. Tips. Förberedelse. Genomförande

Sample exam questions. Database exam TIG058

Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix

Disposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer

Institutionen för Tillämpad fysik och elektronik Stefan Berglund och Per Kvarnbrink. Laboration: Flerskiktade applikationer

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

L0009B. Moment. Introduktion till geografiska databaser: G:\L0009B\Allmänt\IntroGeoDB.pdf (F)

Mer information om RefWorks, andra referenshanteringsprogram och hur man refererar hittar du på Linköpings universitetsbiblioteks webbsidor.

ÖVERVAKNING AV SQL SERVER

Konfigurera Microsoft Outlook 2007-klient.

STEG 1 Samla referenser till ditt EndNote-bibliotek

Nyhet. SMS funktion i Opus Dental. Sidan 1 av 12

! Webprogrammering. ! Databasteori och praktik. ! Fö, le, la + projekt. ! Examination (tenta, dugga + labb, ! Studera användarna och deras problem

1DV405 - Databasteknik. Kursintroduktion. Så här är kursen planerad.

Du skall naturligtvis visa körexempel med output där det behövs i din rapport!

Innehåll Översikt: Arbeta med databaser... 3 Översikt databaser i SQL Server... 4 Översikt databaser i SQL Server... 5 Hur information lagras i SQL

Databasspråket SQL - online.

Manual. It s learning. Målgruppen: externa utförare inom Vård och Omsorg

OBS! Det är av största vikt att innan konfiguration av modulen, genomfört de inställningar som presenteras med bilagorna till denna manual.

Labb 1. prompt> mysql --host=db-und.ida.liu.se --user=[liuid] -- password=[lösenord] [liuid]

Databashantering och Beslutsstöd

Tentamen för DD1370 Databasteknik och informationssystem

Beskrivning av funktionen säkerhetskopia i Hogia Fastighet SQL

Transkript:

DVA234 Databaser 1(6) Kurs: DVA234 Databaser Version: 4, uppdaterad 2016-03-21 Utvecklad av: Dag Nyström, dag.nystrom@mdh.se Laboration 1: Introduktion till databaser och MS SQL Server I den här laborationen skall ni få bekanta er med Microsoft SQL Server, och hur man skapar en liten databas. Målet med laborationen är att ni ska få arbeta med en databas både grafiskt (menybaserat) och textuellt (SQL). Verktyget ni kommer att arbeta med heter Microsoft SQL Server Management Studio. Detta verktyg ingår i programpaketet Microsoft SQL Server 2008 Professional. Server Management Studio är ett integrerat verktyg för administration av MS SQL Server. I verktyget kan man koppla upp sig mot en server, skapa nya databaser samt modellera och populera databaser. I laborationen kommer ni att skapa en databas för hantering av studenter. Genomförande och redovisning Laborationen utförs i grupper om två och två. Avklarad laboration skall redovisas för laboratorieassistent. Tips på hjälpmedel Läroboken Onlinehjälpen för Server Management Studio MSDN (http://msdn.microsoft.com) Google & Internet TIPS: När ni googlar på SQL så brukar det hjälpa att lägga till sökordet tsql som är förkortningen på Microsoft SQL-dialekt, Transact-SQL, så slipper man alla träffar på andra dialekter.

DVA234 Databaser 2(6) DEL 1: Hitta din databas Starta Server Management Studio och ange det servernamn och loginuppgifter som du fått från din lärare. Koppla upp dig mot servern. I Object Explorer ser du nu vilka databaser som redan finns på servern: Bland databaserna skall det finnas en som är döpt till ditt studentid_db. Notera att det finns en del subfoldrar till databasen. I denna laboration kommer vi framför allt att arbeta i foldern Tables. DEL2: Vår första tabell I denna del skall ni prova på DML-kommandon med SQL. Server management studio arbetar, som Visual Studio, med kodfönster, för att öppna ett kodfönster klickar ni på New Query knappen. Ni får då upp ett tomt fönster där ni kan skriva SQL-kommandon. För att exekvera vad ni skrivit klickar ni på Execute knappen. Den fungerar enligt följande: Är någon del av koden markerad exekveras endast den kod Är ingen del av koden markerad exekveras all kod uppifrån och ner Vill man inte att viss kod skall exekveras kan man kommentera bort den med --, t.ex. -- SELECT * FROM mintabell TIPS: När ni klarat av någon del av uppgiften är det bra att kommentera bort den och fortsätta med nästa uppgift på raden under. På så sätt har ni kvar all kod tills det är dags att redovisa. a) Använd CREATE TABLE för att skapa tabellen Staff med attributen: Attributnamn Pnr Name Salary Datatyp/Nyckel VARCHAR(11) Primärnyckel VARCHAR(100) Int

DVA234 Databaser 3(6) b) Använd INSERT för att lägga till följande personer: Pnr Name Salary 750224-7223 Per Nilsson 19300 671122-5602 Annika Johansson 25300 850721-8545 Jessica Nykvist 18900 c) Verifiera att rätt data kommit in med SELECT * FROM Staff d) Använd UPDATE för att ändra Jessicas lön till 19200 e) Använd en UPDATE sats för att öka allas lön med 10% f) Ta bort Jessica med hjälp av DELETE kommandot g) Använd ALTER TABLE för att lägga till attributet Adress h) Lägg till adresser för Per och Annika i) Ta bort alla personer med en DELETE sats j) Använd DROP för att ta bort tabellen DEL3: Skapa en tabell i designläget I denna del ska vi skapa en tabell med designläget i Server Management Studio. a) Skapa en ny tabell (högerklicka på Tables) med namnet Students som skall lagra följande information: StudentID, FirstName, LastName, Gender, StreetAdress, ZipCode 1, City, Country, TelNo, Birthdate, och StudentType 2 Några saker att fundera över: Vilka datatyper är lämpliga för de olika attributen. TIPS: Det är väl värt att läsa på lite om de olika datatyperna som databasen klarar av. Vilka attribut måste vara obligatoriska, och vilka kan vara frivilliga. Detta kan sättas med flaggan Allow Nulls. Glöm inte att spara tabellen! TIPS: Om ni behöver förändra en tabell i Server Management Studio så att den behöver sparas om, kan ni få felmeddelandet "Saving changes is not permitted. The changes you have made require the following tables to be dropped and recreated...". Detta kan avhjälpas genom att kryssa bort "Prevent saving changes that require table re-creation" som ni hittar under Tools-Options-Designers- Table and Database Designers. Det skulle kunna vara en bra ide att göra detta redan nu. 1 Postnummer 2 Kan vara t.ex. programstudent, fristående student, utbytestudent osv

DVA234 Databaser 4(6) b) Populera tabellen, antingen direkt genom SQL-kommandot INSERT (klicka på New Query) eller i Editläget (högerklicka ). Följande personer skall minst finnas med: Erik Petterson Västerås, Sverige Programstudent Erika Person Stockholm, Sverige Födelsedag 1980-11-23 Mats Karlsson Västerås, Sverige Programstudent Matilda Johansson Köpenhamn, Danmark Utbytesstudent Johan Nyström Västerås, Sverige 021-987987 Födelsedag 1950-01-06 Fristående student Billy Jacobs Stockholm, USA Födelsedag 1956-11-23, Övriga attribut och personer får ni hitta på själva. Exchange-student (notera engelska stavningen här) DEL4: Databasfrågor Nu är det dags att ställa lite olika frågor (queries). Detta görs med SQL i ett query fönster som öppnas genom att klicka på knappen New Query. Notera att frågan/frågorna måste explicit köras med Execute-knappen. Skapa följande frågor för tabellen Students: 1. Visa hela tabellen 2. Visa födelsedatum för Erika Person 3. Visa alla som bor i Västerås 4. Visa förnamn, efternamn och telefonnummer för alla studenter sorterat i bokstavsordning på efternamnet. 5. Visa för och efternamn på alla studenter som är äldre än 40 år. 6. Visa namn och studenttype för alla studenter vars efternamn börjar med Pe 7. Lista alla länder därifrån det finns studenter i Students. (Varje land ska listas 1 gång, dvs inga dubletter) 8. Gör en fråga som returnerar antalet män i en kolumn som ska heta NUMBEROFMALES. OBS! Du ska inte skapa en ny tabell, utan detta skall göras med en select-sats. Resultatet skall se ut som nedan: 9. Flytta Matilda Johansson från Köpenhamn till Odense. (Notera att detta är en uppdateringsfråga) 10. Lista alla utbytesstudenter. (Denna borde returnera Matilda och Billy )

DVA234 Databaser 5(6) Hmm Ställde den sista frågan till det för er? Problem uppstår ibland när attribut fritt kan anges. Detta skall ni nu åtgärda genom att utöka er databasdesign. Från och med nu får ni bara använda SQL queries i denna laboration, dvs inte använda designläget i Server Management Studio. Spara samtliga databasfrågor för redovisningen. Ett tips kan vara att fylla på med nya frågor längst ner i erat query fönster, och kommentera bort de gamla (Kommentera rader med -- ). I de följande uppgifterna kommer det med stor säkerhet bli aktuellt att göra förändringar av tabellen Student. Följande tips kan vara till hjälp för er: Tips 1: Det är inte säkert att den enklaste lösningen är den bästa. Rådgör gärna med er labass innan ni implementerar ändringarna. Tips 2: Ibland kan det vara problem att ändra ett attribut med data i. Istället kan det vara bättre att skapa ett nytt attribut, kopiera (med update) data till det nya attributet och droppa det gamla. Tips 3: När man gör schemaförändringar på en databas som redan innehåller data måste man ofta flytta samt förändra redan befintligt data i databasen. I en liten databas kan man välja att manuellt göra detta med hjälp av enkla updatefrågor, men när databasen växer så kan man behöva skapa mer komplicerade update-frågor som automatiserar processen. I denna lab får ni själva välja hur ni vill göra detta, men om ni väljer den klurigare automatiserade vägen kan correlated queries vara en bra väg framåt. DEL5: Studenttyp Ändra er databas så att Studenttyp endast kan ha följande värden: Programstudent, Fristående Student och Utbytesstudent. I framtiden ska det också vara möjligt att lägga till fler studenttyper (t ex Erasmusstudent). DEL6: Telefonnummer Utöka databasen så att studenter kan ha ett godtyckligt antal telefonnummer. För varje telefonnummer skall även vilken typ av telefonnummer det är lagras. Lämpliga typer av telefonnummer kan vara Hem, Arbete och Mobil. Naturligtvis skall det vara möjligt att lägga till fler typer (t.ex. Fax). Det finns naturligtvis flera olika tänkbara sätt att lösa detta på. Fundera igenom vilken lösning ni anser bäst. Diskutera gärna med labassen innan ni implementerar denna funktionalitet.

DVA234 Databaser 6(6) DEL7: Uppdaterade databasfrågor Era ändringar har kanske gjort att en del av databasfrågorna från DEL4 nu är okörbara. Uppdatera dessa så att de stämmer överrens med er nuvarande design. Notera att studenter med flera telefonnummer kan komma att visas på flera rader samt att studenter utan telefonnummer kan tappas bort. I denna laboration kan ni bortse från det. Om ni vill får ni naturligtvis lösa detta problemet som för extra övning. DEL8: Vy Blev databasfrågorna plötsligt betydligt längre och krångligare? I kursen har vi tidigare belyst frågan om dataoberoende, dvs att man som användare inte skall behöva bekymra sig över interna strukturer i databasen. Troligtvis är det inte så enkelt att bara göra en simpel SELECT-sats för att lista alla studenter och deras data (liknande den i query 1 från DEL4). Ett sätt att skapa dataoberoende är genom att använda vyer. Skapa en vy STUDENTDATA som implementerar detta. Denna vy skall se ut som den ursprungliga tabellen ni skapade i DEL 3. (Återigen kan samma student visas flera gånger eller tappas bort, men ni kan bortse från det.) Ni kan verifiera detta genom att köra frågan: SELECT * FROM STUDENTDATA; Lycka till!