26
1

PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

1

Page 2: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

Datafiler tillhör alltid en filgrupp. Det måste alltid finnas en PRIMARY group. Det är inget som hindrar att datafiler på olika diskar tillhör samma filgrupp.

PRIMARY gruppen innehåller huvudfilen till databasen , master data file, som default har filändelsen .mdf. Denna filen innehåller förutom användarens dataobjekt (tabeller, procedurer vyer etc.) även ett stort antal systemtabeller som hör till varje databas.

dba (database administrator) kan också fördela databasen på flera datafiler där de nya bör ha filändelsen .ndf.

Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5.

Loggfilen (.ldf) ska inte ligga på samma disk som datafilerna, utan på en egen disk där säkerheten är prioriterad framför högsta hastighet t ex RAID 1

Tabeller som ofta läses samtidigt kan läggas i olika filgrupper på olika diskar för att öka prestanda. De kan då läsas samtidigt.

Filerna läggs default i C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL

Detta kan ändras via inställningar som nås via properties på Servern:

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.

2

Page 3: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

Lägg märke till att data och loggfilerna har både ett logiskt

namn, t ex. MyDB, som används internt och ett fysiskt namn,

tex.C:\Data\MyDBase.mdf, som används externt.

Ursprunglig storlek (initial size) kan anges (minst 3MB).

I Autogrowth anges om filen får växa, och i så fall hur mycket.

Använd …-knappen för att ställa in detta!

Förutom den nödvändiga .mdf – filen och .ldf –filen har här

skapats en extra datafil MyDB_data2.ndf på F: och som lagts i

en egen filgrupp (som i detta fallet är read only)

3

Page 4: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

CREATE DATABASE kommandot är i själva verket betydligt mer

komplicerat. Se Books On Line (BOL) för detaljer – Normalt ska du välja

att titta på det avsnitt som är markerat (Transact SQL).

De avsnitt i syntax-specifikationen som omges med [ ] kan utelämnas,

tecknet | betyder eller.

Tyvärr innehåller många exempel så kallad dynamisk SQL som medger

att man kan bygga upp kommandot med variabler. Exemplen ovan

använder inga variabler.

4

Page 5: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

Lägg märke till att parenteserna för alla grupper och loggfil ser i princip

likadana ut. (Underlättar inskrivning!)

Se "Books On Line" för fullständig syntax och fler exempel! De är inte

dock alltid så enkla eftersom de är givna som dynamisk sql för att

möjliggöra variabler i koden.

5

Page 6: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

Nästan allt går att ändra via Management Studio, men det finns uppgifter

som endast går eller görs bättre med DDL-kommandon.

Administratörer vill gärna skripta databaser och köra skript med

kommandon, vilket kräver viss kunskap om DDL-kommandon.

6

Page 7: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

7

Page 8: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

8

Page 9: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

I DDL kan man även ange datatyper enligt ANSI 92. Tex integer istället för

int.

9

Page 10: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

10

Page 11: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

11

Page 12: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

12

Page 13: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

13

Page 14: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

14

Page 15: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

15

Page 16: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

16

Page 17: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

Tabeller som innehåller data kan också ändras om inte ändringen kommer

i konflikt med redan sparad data.

Man kan inte direkt ändra en kolumn som innehåller en sträng eller float till

ett int.

Foreign key kan inte läggas till / ändras om det inte finns en motsvarande

pk som passar. Man kan då vara tvungen att tillåta null-värden och i

efterskott manuellt mata in passande data.

17

Page 18: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

18

Page 19: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

19

Page 20: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

Alla constraint s (ej NULL/NOT NULL) har ett eget namn som skapas

automatiskt om man inte definierar det själv.

I kolumnen frakt i Orders visas hur man kan välja ett beskrivande namn.

persID i Orders är en främmande nyckel (fk) till tabellen Personal.

Kopplingen fk-pk görs med REFERENCES personal(persID).

Primärnyckeln i Orderrad är sammansatt av orderID och radID. En

sammansatt primärnyckel kan INTE definieras genom att skriva PRIMARY

KEY på dessa båda rader. Det måste göras separat t ex sist i tabellen

med PRIMARY KEY (orderID, radID),

I orderrad har vi också satt Referentiell Integritet med ON DELETE

CASCADE och ON UPDATE NO ACTION.

Vi har alltså sett två sätt att definiera constraints i samband med

tabelldefinitionen . - Antingen direkt i varje rad eller sist efter alla

kolumnerna.

20

Page 21: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

Innan du drar relationerna i ett diagram, måste båda tabellerna finnas i

diagrammet. På samma sätt måste båda tabellerna finnas innan man

refererar till föräldratabellen i FOREIGN key constraint. För att kunna

skripta tabeller i godtycklig ordning måste man därför kunna lägga till

constraint i efterhand. Detta gör man med ALTER TABLE med tillägget

ADD

För att lägga till den sammansatta primärnyckel n id1 och id2 till tabellen

personprojekt blir det så här:

ALTER TABLE Personprojekt

ADD PRIMARY KEY (ID1,ID2);

För koppla ihop tabellerna kund och orders skriver man så här:

ALTER TABLE Orders

ADD CONSTRAINT FK_Kund_Orders -- frivilligt namn

FOREIGN KEY (kundID)

REFERENCES kund(kundID)

Vi får automatiskt NO ACTION på både DELETE och UPDATE

21

Page 22: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

22

Page 23: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

I definitionerna kan vi se att man använt constraints ihop med

kolumndefinitioner, att man ibland använt constraintnamn och ibland inte.

Vi kan också se att man lagt in kommentarer i tabelldefinitionerna.

Här kommer ett exempel till:

CREATE TABLE jobs

(

job_id int PRIMARY KEY IDENTITY CLUSTERED NOT NULL,

job_desc varchar(50) DEFAULT 'New Position‘ NOT NULL,

min_lvl tinyint CHECK (min_lvl >= 10) NOT NULL,

max_lvl tinyint CHECK (max_lvl <= 250) NOT NULL

)

23

Page 24: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

24

Page 25: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

25

Page 26: PRIMARY RAID 10 RAID 5 RAID 1 - Lnu.seorion.lnu.se/pub/education/course/1DV423... · Datafilerna bör ligga på diskar med högsta prestanda t ex RAID 10 eller RAID 5. Loggfilen (.ldf)

Förslag till svar till vissa uppgifter

4. CREATE DATABASE Firman

5. a) ALTER DATABASE

MODIFY FILE (NAME=Firman_data, SIZE=10)

b) DROP DATABASE Firman

6a) int, b) bit c) money el. decimal d) float/real e) char(11) f) varchar(100)

g) varchar(max) h) varbinary(max) i) nvarchar(20) k) tinyint

10. I PRIMARY filegroup

11.Man kan skapa en beräknad kolumn som inte sparas utan beräknas på

av SQL Server

13. ALTER TABLE Produkt

ADD antal int default (0) check (between 0 and 99) NOT NULL

15 Ia) Går bra Ib) Går inte om den har produkter Ic) Går inte om det

finns Produkt med detta KatID

IIa) Går bra IIb) Går bra! Relaterade produkter raderas också IIc) Går

bra! KatID i relaterade Produkter ändras också.

26