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



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

Design och underhåll av databaser

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

Databaser och Datamodellering Foreläsning IV

WCMS-15, Webbutvecklare CMS

D1. Create Domain TEXT30 char(30) Default INGET VÄRDE! ;

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

Databasutveckling Introduktion till SQL och TSQL

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

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

Övningar i SQL. SQLAccess.doc Ove Lundgren

Grunderna i SQL del 1

Webbprogrammering, grundkurs 725G54

Analytisk relationsdatabasdesign

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

Tabeller och kolumner SQL. Lägga till en ny post. Lägga till en ny post

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

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

Laboration SQL. Kom igång.

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

Databaser och SQL - en kort introduktion

I denna laboration skriver jag inte ut resultatet på de flesta frågorna utan du kör dem själv i din miljö.

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

Structured query language (SQL)

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

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14

Databaser. Vad du ska lära dig: Ordlista

Sample exam questions. Database exam TIG058

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

TENTAMEN DATABASKUNSKAP ITEK12

Starta MySQL Query Browser

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

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

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

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

Relationsmodellen och syntetisk databasdesign

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.

Karlstads Universitet, Datavetenskap 1

Structured Query Language (SQL)

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

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

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP

Föreläsning 3 Transformation från konceptuell datamodell till relationsschema ( Syntetisk databasdesign ) Vad är ett databashanteringssystem?

Laborationer - databaser, EDAA20 Programmering och databaser

Prova på-laboration i SQL

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

Föreläsning 3 Dagens föreläsning går igenom

Tentamen. Databasmetodik Lördag 27 september 2014 kl

VAD GÖR DU / VEM ÄR DU?

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

Skapa exempeldatabasen

3. Dynamiska webbplatser, 20 Yhp (4 v)

NORMALISERING. Mahmud Al Hakim

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

Föreläsning 5 Dagens föreläsning går igenom

Current selection does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available.

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

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

Lösningsförslag, tentamen i Databaser

Vyer, Prepared Statements, Triggers

Transaktioner. 1. Transaktioner 2. Samtidighet ( concurrency ) och lås. 3. Deadlock. Kap. 17. Informatik B: Databashantering med SQL Server

VAD GÖR DU / VEM ÄR DU?

1. SQL DML (Data Manipulation Language) 2. Lägga till data. 4. Uppdatera data 5. Aktivera default value 6. Hantera datum 7.

Skapa en databas. Skapa en tabell. Gör man antingen genom kommandot

Databasteknik för D1, SDU1 m fl

Databaser. Jan Erik Moström, Department of Computing Science, Umeå University - jem@cs.umu.se

Frågespråk och SQL. nikos dimitrakas rum 2423

Reducering till relationsscheman

ÖVNING 10 2NF Hästnamn, KursId, StartDatum, SlutDatum KursId NY! 3NF Hästnamn, Art, NY! NY! NY! NY! KursId, StartDatum, SlutDatum KursId NY!

Idag. 1. Från modell till databasstruktur. 2. Prata med databaser (frågepsråket SQL)

Från verklighet via modell till databas. Idag. Testa reglerna på varuhusmodellen. Från verklighet via modell till databas

Informa5onsmodellering

Databaser - Design och programmering

1. Treskiktsarkitektur 2. Applika1onsprogramvara 3. Teknisk programvara. Kapitel 6 sid

Tentamen DATABASTEKNIK - 1DL116

732G16: Databaser - Design och programmering

Tentamen för DD1370 Databasteknik och informationssystem

SQL, nästlade delfrågor Nästlade delfrågor. En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga.

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

Kompendium till databaser och informationssystem 10p för SY2 2000

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]

Databasspråket SQL - online.

Innehåll MySQL Intro. Ex på ett index Index typer ISAM Balanserat träd Pk och Fk i MySQL Eget index För o nackdelar med index

Vad är SQL? Introduktion till SQL

Konceptuella datamodeller

Tentamen för DD1370 Databasteknik och informationssystem

Idag. Hur skapar vi och underhåller en databas? Index? Vad är det och varför behövs de? Behöver jag bry mig om index?

MySQL - testmiljöer på minuter. Thomas Johansson IT-avdelningen

Informationssystem och Databasteknik

Databasteknik för D1, SDU1 m fl

Databasspråket SQL - online.

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

1. SQL DDL (Data Definition Language) 2. Skapa tabell

Databasspråket SQL - online.

Databasspråket SQL - online.

Genomgång av tentamen. Databasteknik ITHS 4/3 2016

Transkript:

Databasföreläsning

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik) Tabeller Personer Databas Nummer Namn Födelseår 1 Tina 1950 2 Siv 1965 3 Olle 1980

Platt databas: all information i en tabell Relationsdatabas: flera tabeller som är länkade till varandra Objektdatabaser: information representerad i objekt (objektorienterad programmering )

Relationsdatabas Om samma information dyker upp på flera ställen Effektivare lagring Snabbare sökning Logisk gruppering av data

(fort. Relationsdatabas) Grundregel: Varje tabell ska beskriva en typ av sak Varje rad i tabellen ska innehålla data om en enda sådan sak Data vi lagrat för varje sak ska finnas på en enda rad

(fort. Relationsdatabas) Länkningen: Primärnyckel: ett unikt värde Främmande nyckel/sekundär nyckel/ referens attribut

Primärnyckel Sekundär nyckel Plats Län Personer Namn Epost Bor 1 Tina tina@epost.se 1 2 Siv siv@emost.se 2 3 Olle olle@epost.se 1 1 Västerbotten 2 Halland 3 Södermanland

(fort. Relationsdatabas) Att tänka på med innehållet i en relationsdatabas: Enkla och atomära värden: ett värde / ruta Null-värde: avsaknad av värde

Exempel på relationsdatabaser: Microsoft Access Oracle MySQL (PHP) Microsoft SQL server

ER-modellen/-schema

ER-modellen ER = Entity Relationship (= saker och samband) Entitestyper typer av saker Sambandstyper 1:1 N:1 N:M Attribut: egenskaper

Förnamn Efternamn Person Födelseår Epost

Förnamn Efternamn Län Person n 1 Bor Plats Födelseår Epost

Förnamn Efternamn Län Hobby n Har m Person n 1 Bor Plats Aktivitet Födelseår Epost

Översättning ER-modell relationsdatabas

STEG 1 Entitetstyper -> en tabell Attribut -> kolumner Entitestypens nyckel -> primärnyckel (helst löpnr) STEG 2 1:N sambandstyper blir en sekundärnyckel i många -tabellen STEG 3 1:1-sambandstyper blir en sekundärnyckel i den ena av tabellerna (ibland an man slå ihop tabellerna) STEG 4 N:M-sambandstyp blir en egen tabell.

Förnamn Efternamn Län Hobby n Har m Person n 1 Bor Plats Aktivitet Födelseår Epost

Förnamn Efternamn Län Hobby n Har m Person n 1 Bor Plats Aktivitet Födelseår Epost Tbl_Hobby Ho_ Ho_Aktivitet 1 Scouting 2 Stickning 3 Cykling Tbl_Plats Pl_ Pl_Lan 1 Västerbotten 2 Halland 3 Södermanland Tbl_Person Pe_ Pe_Fornamn Pe_Efternamn Pe_Fodelsear Pe_Epost Pe_Bor 1 Tina Olofsson 1950 tina@epost.se 1 2 Siv Kvist 1965 siv@epost.se 3 3 Olle Svensson 1980 olle@epost.se 2

Förnamn Efternamn Län Hobby n Har m Person n 1 Bor Plats Aktivitet Födelseår Epost Tbl_Hobby Ho_ Ho_Aktivitet 1 Scouting 2 Stickning 3 Cykling Tbl_Plats Pl_ Pl_Lan 1 Västerbotten 2 Halland 3 Södermanland Tbl_Person Pe_ Pe_Fornamn Pe_Efternamn Pe_Fodelsear Pe_Epost Pe_Bor 1 Tina Olofsson 1950 tina@epost.se 1 2 Siv Kvist 1965 siv@epost.se 3 3 Olle Svensson 1980 olle@epost.se 2

Förnamn Efternamn Län Hobby n Har m Person n 1 Bor Plats Aktivitet Födelseår Epost Tbl_Hobby Ho_ Ho_Aktivitet 1 Scouting 2 Stickning 3 Cykling Tbl_Person Tbl_HarHobby Tbl_Plats HH_Hobby HH_Person Pl_ Pl_Lan 1 1 1 Västerbotten 2 1 2 Halland 3 2 3 Södermanland 2 3 1 3 Pe_ Pe_Fornamn Pe_Efternamn Pe_Fodelsear Pe_Epost Pe_Bor 1 Tina Olofsson 1950 tina@epost.se 1 2 Siv Kvist 1965 siv@epost.se 3 3 Olle Svensson 1980 olle@epost.se 2

SQL (Structured Query Language) Ett effektivt frågespråk för att skapa hämta lägga till ta bort uppdatera CREATE SELECT INSERT DELETE UPDATE information i en relationsdatabas.

Syntax: CREATE TABLE tabellnamn (kolumnnamn); SELECT urvalslista FROM tabellnamn [WHERE sökvillkor] [ORDER BY sorteringsvillkor [ASC / DESC]]]; INSERT [INTO tabellnamn] [(kolumnlista)] VALUE (DEFAULT / NULL/ värde); UPDATE tabellnamn SET kolumnnamn =(DEFAULT / NULL / värde) [WHERE villkor]; DELETE FROM tabellnamn [WHERE vilkor];

Skapa en tabell med SQL: CREATE TABLE tabellnamn (kolumnlista); CREATE TABLE Tbl_Plats (Pl_ INTEGER NOT NULL, Pl_Lan CHAR(20) NOT NULL);

Hämta namnen på personerna som är med i databasen: SELECT urvalslista FROM tabellnamn [WHERE sökvillkor] [ORDER BY sorteringsvillkor [ASC / DESC]]]; SELECT Tbl_Person.Pe_Fornamn,Tbl_Person.Pe_Efternamn FROM Tbl_Person ORDER BY Tbl_Person.Pe_Efternamn ASC; Urvalslista: lista över kolumnerna Ex. Tbl_Person.Pe_Fornamn, Tbl_Person.Pe_Efternamn, Tbl_Person.Pe_Fodelsear, Tbl_Person.Pe_Epost ASC: bokstavsordning DESC: omvändbokstavsordning

Hämta all information om Siv i databasen Person: SELECT urvalslista FROM tabellnamn [WHERE sökvillkor] [ORDER BY sorteringsvillkor [ASC / DESC]]]; SELECT * FROM Tbl_Person WHERE Tbl_Person.Pe_Fornamn= Siv ; Wildcard: * eller %

Lägga till ett nytt län i Plats-tabellen: INSERT [INTO tabellnamn] [(kolumnlista)] VALUE (DEFAULT / NULL/ värde); INSERT INTO Tbl_Plats Tbl_Plats.Pl_Lan VALUE ( Gotland );

Uppdatera att Siv bytt efternamn: UPDATE tabellnamn SET kolumnnamn =(DEFAULT / NULL / värde) [WHERE villkor]; UPDATE Tbl_Person SET Tbl_Person.Pe_Efternamn= Andersson WHERE Tbl_Person.Pe_Fornamn= Siv ;

Ta bort Olle från Databasen (han har kanske har slutat med sina hobbys): DELETE FROM tabellnamn [WHERE vilkor]; DELETE FROM Tbl_Person WHERE Tbl_Person.Pe_Fornamn= Olle ;

Integritetsvillkor i relationsdatabaser: Nyckelvillkor Referensintegritetsvillkor

Integritetsvillkor i relationsdatabaser: Nyckelvillkor, nämligen att primärnyckeln (och eventuella andra kandidatnycklar) måste ha unika värden, dvs att det inte får finnas två rader i en tabell som har samma värde på primärnyckeln. Referensintegritetsvillkor, nämligen att om det står i tabellen Person att en viss person bor på en plats med id 3, så ska det också finnas en plats med id 3, i tabellen Plats. Tbl_Person Pe_ Pe_Fornamn Pe_Efternamn Pe_Fodelsear Pe_Epost Pe_Bor 1 Tina Olofsson 1950 tina@epost.se 1 2 Siv Kvist 1965 siv@epost.se 3 3 Olle Svensson 1980 olle@epost.se 2 Tbl_Plats Pl_ Pl_Lan 1 Västerbotten 2 Halland 3 Södermanland

varje person måste ha ett id (nyckelvillkor) två personer får inte ha samma id (nyckelvillkor) varje plats måste ha ett id(nyckelvillkor) två platser får inte ha samma id (nyckelvillkor) om det står att en person bor på en plats med ett viss id, så måste det också finnas en sån plats(referensintegritetsvillkor). Tbl_Person Tbl_Plats Pe_ Pe_Fornamn Pe_Efternamn Pe_Fodelsear Pe_Epost Pe_Bor Pl_ Pl_Lan 1 Tina Olofsson 1950 tina@epost.se 1 2 Siv Kvist 1965 siv@epost.se 3 3 Olle Svensson 1980 olle@epost.se 2 1 Västerbotten 2 Halland 3 Södermanland

Skapa refernsintegritet när vi skapar tabell med SQL: CREATE TABLE Tbl_Person (Pe_ integer not null, Pe_Fornamn varchar(10), Pe_Bor integer, primary key (Pe_), foreign key (Pe_Bor) references Tbl_Plats(Pl_));

Referensintegritet Regler för hur poster kan tas bort och läggas till Ser till att man inte tar bort relaterade data så att relationen påverkas. Om två tabeller är hopkopplade med referensattribut så ska värdet som refereras till alltid existera.

Skapa villkor på referensintegriteten så man styr vad som händer då man tar bort eller uppdaterar något i databasen.

1. foreign key (Pe_Bor) references Tbl_Plats(Pl_) on delete set null Om man tar bort ett län som det bor personer i så sätts Pe_Bor för dessa personer till Null. Dvs personerna bor inte i något län (De kanske har flyttat utomlands?). 2. ( foreign key (Pe_Bor) references Tbl_Plats(Pl_) on delete cascade Om man tar bort ett län där det bor personer i så kommer även de personer som bor i det länet att tas bort i Tbl_Person tabellen. 3. ( foreign key (Pe_Bor) references Tbl_Plats(Pl_) on delete set default Om man tar bort ett län där det bor personer i så kommer dessa personer att få kolumnens defaultvärde. 4. ( foreign key (Pe_Bor) references Tbl_Plats(Pl_) on update cascade Om man ändrar namnet på ett län där det finns personer som bor så ändras Pe_Bor för alla de personerna i Tbl_Person tabellen.