DB undervisning 01-01
|
|
|
- Ingelise Kronborg
- 10 år siden
- Visninger:
Transkript
1 Databaser... 2 Tabeller... 2 Redundans... 3 Første regel... 4 Anden regel... 4 Tredje regel... 5 Relationer... 5 Opskrift... 6 SQL sætninger til at oprette tabeller... 7 SQL sætninger til at indsætte data... 8 Indsæt dato... 9 Access... 9 SQL sætninger til at oprette relationer SQL sætninger til at trække data ud af tabeller Masker Sortere Jokertegn Udtræk fra flere tabeller Join Sammenlignings operatorer Top 5 nyheder Sub select (Select inden i Select) Side 1 af 14
2 Databaser Der findes rigtig mange databaser på markedet, men i Internet sammenhæng er det mest disse tre du ser: MSAccess Microsoft Det er en nem måde at komme i gang på, der er nogle rigtig gode værktøjer som alle er visuelle. Access følger med når man køber Office pakken. Kører i Windows MSSql server Microsoft Det er storebroderen som er en rigtig database. Den skal købes særskilt. Kører i Windows. Den kan hentes gratis i en light udgave hos Microsoft. mysql MySql AB Det er en gratis database som efterhånden har samme muligheder som en betalt database. Kører på flere platforme bl. a. Linux og Windows. Tabeller I databaser ligger data organiseret i tabeller, lige som du ser dem i et regneark: Kolonner hedder felter i en database og en enkelt række kaldes for en post (record), som du kan se er det medlemstabellen der er vist og den indeholder 3 medlemmer. Alle medlemmer har et medlemsnummer som er unikt. Der er ikke og må ikke være to medlemmer med det samme nummer, på den måde kan man bruge medlemsnummeret som en nøgle (primary key) til at finde frem til et medlem. Her ser du den samme tabel i Access: Læg mærke til at der er et nøgle symbol ud for Medlemnr, det er fordi det er nøglen i denne tabel. Læg også mærke til at feltet er af typen tekst, selv om det indeholder et tal. Side 2 af 14
3 Alt hvad der ikke skal regnes på, eller er en dato/tid, kan lige så godt være tekst. Sådan ser tabellen ud når man åbner den: Sådan ser det ud i mysql Redundans Redundans betyder unødig gentagen information og et af målene med at lægge data ind i en database, er at undgå redundans. Hvis du er tilfreds med at have en liste over medlemmer som den du ser foroven, er der ingen grund til at bruge en database, et regneark eller en tekstfil er fuldt tilstrækkelige. Denne måde at opbevare data på kaldes for flad fil (flat file). Men hvis vi også ønsker at registrere hvilke hold de enkelte medlemmer er tilmeldt, begynder det at blive lidt grimt. MedlemNr Fornavn Efternavn Adresse Postnr Bynavn Hold Bent Fabrik Fabriksvej Roskilde Fodbold Ejner Baunehøj Baunehøj Frederikssund Fodbold Erik Fort Fortvej Roskilde Håndbold Ejner Baunehøj Baunehøj Frederikssund Håndbold Bent Fabrik Fabriksvej Roskilde Håndbold Bent Fabrik Fabriksvej Roskilde Svømning Erik Fort Fortvej Roskilde Svømning For hvert hold et medlem er tilmeldt, er du nødt til at skrive en ekstra linie, det betyder også at det er umuligt med dette system, at oprette et nyt hold hvis der ikke er en tilmelding og at et hold vil forsvinde, når der ikke længere er nogen tilmeldte. Side 3 af 14
4 Men det bliver meget værre, for vi skal jo også holde styr på, at medlemmerne betaler kontingent for hver måned. Det bliver en linie ekstra pr. medlem pr. hold pr. måned Regnestykket kunne være 500 medlemmer der i gennemsnit er tilmeldt 3 hold. På et år bliver det 500 x 3 x 12 = 1800 linier. Medlemstabellen vil så fylde 1800 poster i stedet for 500. Det er rigtig meget at holde styr på. Løsningen er at lave en database og få lagt data ud i de tabeller hvor de hører hjemme, dette kaldes for datamodellering. Hold hører f. eks hjemme i sin egen tabel: HoldID Holdnavn Traeningsdag Pris Stednavn 1 Fodbold junior mandag 300 Klubhuset 2 Håndbold tirsdag 310 Sportshallen 3 Svømning onsdag 330 Svømmehallen 4 Tennis torsdag 320 Sportshallen 5 Fodbold senior fredag 350 Klubhuset Figur 1 Alle tabeller SKAL have en nøgle, det er praktisk at kalde den det samme som tabellen, efterfulgt af ID. Her der brugt en talværdi genereret af en automatisk tæller, både Access og mysql har den slags indbygget, så det kan overlades helt til databasen. Data skal være så opsplittede som muligt, det var derfor at der i medlemstabellen er to felter (Fornavn og Efternavn) i stedet for et felt (Navn). Det er nemt at samle felter, men det kan være umuligt at opsplitte dem, derfor er det smart at opsplitte dem fra start. Feltnavne må ikke indeholde andet end bogstaver og tal. De danske tegn (æøå) regnes ikke for bogstaver, så de må ikke bruges. Første regel Alle tabeller skal have en nøgle (primær nøgle) Anden regel Alle felter skal være afhængige af denne nøgle og kun denne nøgle Hvis du kigger på Figur 1 Sted kolonnen kan du se at dette ikke er tilfældet her. Sportshallen peger på 2 og 4 som primærnøgle. Her er der altså redundans, løsningen er at oprette en selvstændig tabel for steder og tage primærnøglen herfra og lægge ind i Hold tabellen. HoldID Holdnavn Traeningsdag Pris StedID 1 Fodbold junior mandag Håndbold tirsdag Svømning onsdag Tennis torsdag Fodbold senior fredag Figur 2 StedID Sted 1 Klubhuset 2 Sportshallen 3 Svømmehallen Ud for den post der hedder Håndbold, vil databasen finde en fremmednøgle (StedID) der har værdien 2 og som peger på stedtabellen. Databasen vil så slå op i stedtabellen ud Side 4 af 14
5 for 2 og læse at navnet er Sportshallen. Alt dette er noget databasen klarer automatisk, hvis først tabellerne er blevet sat op på den rigtige måde. Tredje regel Hvis du møder redundante data skal du lægge dem ud i en ny tabel og så skal du hægte tabellerne sammen igen med en pegepind (relation) Læg mærke til at tabellerne i figur 2 nu kun indeholder lige nøjagtig de data som de skal. Informationer om Hold ligger i Holdtabellen og informationer om Steder ligger i Stedtabellen. Relationer Der findes tre typer: En til en (1 n 1) Det er en ret sjælden relation så den bliver ikke gennemgået En til mange ( 1 n M) Det er den mest almindelige Mange til mange (M n M) Det forekommer også hyppigt. For at finde ud af hvilken relation du står overfor, skal du kigge på hvordan tingene hænger sammen: Hold og sted: Et hold opholder sig et sted og kun et sted. Et sted kan have nul, et eller flere hold. Dette er en en til mange relation med sted på 1 siden. Det er primærnøglen fra sted tabellen, der skal optræde som fremmednøgle i holdtabellen. I sted tabellen vil primærnøglen (StedID), forekomme 1 gang og kun en gang. I hold tabellen vil fremmednøglen (StedID), kunne forekomme flere gange, der kan godt være flere forskellige hold på samme sted. Medlem og hold: Et medlem kan være tilmeldt nul, et eller flere hold. Et hold kan bestå af nul, et eller flere medlemmer. Der er altså en mange til mange relation imellem medlem og hold Dette klares ved at lave en samletabel som indeholder to fremmednøgler; nemlig en primærnøgle fra hver af de to tabeller: Medlemnr Navn Bent Fabrik Medlemnr HoldID HoldID Holdnavn 1 Fodbold junior 2 Håndbold 3 Svømning Ud fra denne tabel kan du læse at medlem (Bent Fabrik) går på hold 1, 2 og 3 (Fodbold junior, Håndbold og Svømning) Alt dette er noget databasen tager sig af, brugerne ser aldrig nøglerne og du skal kun kende dem for at vide hvordan systemet fungerer. Side 5 af 14
6 Opskrift 1. Find ud af hvilke data din database skal indeholde 2. Tegn en skitse 3. Opret tabellerne og læg lidt data i. 4. Undersøg om der er redundante data. 5. Omstrukturer evt. tabellerne 6. Lav forespørgsler for at trække data ud 1. Skriv alt ned hvad du vil kunne trække ud, opsplit så meget som muligt Om medlemmer: Navn (Fornavn, Efternavn) Adresse1 Adresse2 (hvis det hele ikke kan stå i et felt) Postnr Bynavn Telefon Mobil Fødseldag (Hvis du vil sige tillykke) osv alt hvad der har med medlemmet at gøre Om hold: Holdnavn Sport (Fodbold, Håndbold osv) Træningsdag Fra klokken til klokken Sted Pris pr. måned osv alt hvad der har med holdet at gøre Om kampe Om stævner Om arrangementer osv alt hvad du gerne vil kunne se Side 6 af 14
7 2.Tegn en skitse Tegn en skitse hvor du laver en firkant for hver ting og som det første skriver navnet på den primære nøgle. PK betyder primary key (primær nøgle) FK betyder foreign key (fremmed nøgle). I den tredje kolonne kan du skrive hvilken type feltet skal være. Der findes en standard der siger at tabelnavne altid starter med tbl, så man kan se at det er en tabel. tblmedlem Medlemnr PK Tekst Fornavn Tekst Efternavn Tekst osv 3. Opret tabeller I både Access og mysql findes der udmærkede grafiske værktøjer til at oprette tabeller, men tabeller kan også oprettes med SQL sætninger, fordelen ved at gøre det på denne måde er at det kan gøres i alle databaser og hvis man sletter en tabel, kan den hurtigt oprettes igen med en SQL sætning, der ligger gemt som en tekst fil. Holdtabellen kan se sådan ud: Access mysql HoldID PK Autonummer Autonummer Holdnavn Tekst(45) VARCHAR(45) Traeningsdag Tekst(45) VARCHAR(45) FraTid DatoTid Time TilTid DatoTid Time Pris Tal (Reelt) Real StedID FK Tal (Langt heltal) Integer Felttyper Du kan se at der er forskellige navne på felttyper i Access og mysql. I dette tilfælde er de ens selv om de har forskellige navne. SQL sætninger til at oprette tabeller I Access ser SQL udtrykket sådan ud: CREATE TABLE tblhold ( HoldID AUTOINCREMENT NOT NULL, HoldNavn CHAR (45) NOT NULL, Traeningsdag CHAR (45) NOT NULL, FraTid TIME, TilTid TIME, Pris REAL, StedID INTEGER NOT NULL, PRIMARY KEY(HoldID)); Side 7 af 14
8 I mysql skrives det sådan: CREATE TABLE tblhold ( HoldID INTEGER NOT NULL AUTO_INCREMENT, HoldNavn VARCHAR(45) NOT NULL, Traeningsdag VARCHAR(45) NOT NULL, FraTid TIME, TilTid TIME, Pris REAL, StedID INTEGER NOT NULL, PRIMARY KEY(HoldID)) Engine = InnoDB; Der er ikke den store forskel på, hvad der skal skrives i de to databaser. Lav en tabel Tabelnavn(Feltnavn Type, Feltnavn Type,..osv.., Primær nøgle (Feltnavn)); NOT NULL betyder at feltet skal være udfyldt. SQL sætninger til at indsætte data I Access kan du skrive INSERT INTO tblhold ( HoldNavn, Traeningsdag, FraTid, TilTid, Pris, StedID ) VALUES ("Fodbold","mandag","10:00","12:00",130.00,1); Access kan kun håndtere indsætning af en post ad gangen. I mysql derimod kan du skrive en længere sætning INSERT INTO tblhold ( HoldNavn, Traeningsdag, FraTid, TilTid, Pris, StedID ) VALUES ("Fodbold juniorer","mandag","10:00","12:00",130.00,1), ("Håndbold","tirsdag","16:00","18:00",120.00,1), ("Tennis","onsdag","14:00","15:00",110.00,1); Det var tre poster der blev lagt ind på en gang. Indsæt i Tabelnavn (Feltnavn, Feltnavn, osv) Værdierne ( Tekstværdi, Tekstværdi, Tid, Tid,Tal,Tal); Tekst skal være omkranset af citationstegn (gåseøjne). Læg mærke til at det er et punktum der er decimal adskiller. SQL sætninger er med engelsk sprogbrug (syntaks). Side 8 af 14
9 Indsæt dato Access I Access er datoformatet mm-dd-yyyy og skal være omkranset af nummertegn (#) INSERT INTO tblarrangement ( ArrFraDato ) VALUES (#1/16/2006#); Her bliver den 16 januar 2006 indsat i tabellen tblarrangement i feltet ArrFraDato INSERT INTO tblarrangement ( ArrFraDato ) VALUES (Date()); Her er det dags dato der bliver indsat. mysql I mysql er datoformatet yyyy-mm-dd og skal være omkranset af citationstegn ( ) Insert Into tblarrangement (ArrFraDato) values (' '); Her bliver den 16 januar 2006 indsat i tabellen tblarrangement i feltet ArrFraDato Insert Into tblarrangement (ArrFraDato) values (curdate()); Her er det dags dato der bliver indsat. 4. Undersøg om der er redundante data Medlemstabellen ser sådan ud: MedlemNr Fornavn Efternavn Adresse Postnr Bynavn Bent Fabrik Fabriksvej Roskilde Ejner Baunehøj Baunehøj Frederikssund Erik Fort Fortvej Roskilde By navn er ikke afhængig af primær nøglen, det er afhængig af hvad der står som postnummer, så det skal ud i sin egen tabel; 5. Omstrukturer evt. tabellerne tblpostnr Postnr Bynavn 4000 Roskilde 3600 Frederikssund tblmedlem MedlemNr Fornavn Efternavn Adresse Postnr Bent Fabrik Fabriksvej Ejner Baunehøj Baunehøj Erik Fort Fortvej Side 9 af 14
10 tblpostnr handler kun om det der har med postnumre at gøre og tblmedlem handler kun om det der har med medlemmer at gøre. Der findes ikke mere redundante data i tabellerne. SQL sætninger til at oprette relationer De pegepinde der er tegnet mellem tabellerne hedder relationer og de sikrer at tabellerne hænger sammen igen og at data er konsistente. Det betyder at der f.eks ikke i medlemstabellen kan skrives et postnummer der ikke eksisterer og at et postnummer ikke kan slettes, så længe det er i brug i medlemstabellen eller stedtabellen. I Access kan man få et billede frem der viser tabellerne og deres relationer. I dette tilfælde mangler der nogle felter, men alle primær og fremmed nøgler er taget med: De felter som er fede og hvor der står et 1 ud for er primærnøglerne, de kan kun forekomme en gang. I medlemstabellen kan feltet tblmedlem.medlemnr kun have værdien en gang. De steder hvor der er et liggende 8 tal er fremmed nøglerne, her kan den samme værdi forekomme mange gange. tblmedlem_hold.medlemid vil have værdien for hvert hold medlemmet er tilmeldt. I Access er det langt det hurtigste at bruge den grafiske brugerflade til at lave relationerne med. I mysql kan du skrive: ALTER TABLE tblsted ADD CONSTRAINT FK_tblsted_1 FOREIGN KEY FK_tblsted_1 (Postnr) REFERENCES tblpostnr (Postnr) ON DELETE RESTRICT ON UPDATE RESTRICT; Ændre tabel Tabelnavn Tilføj Constraint Constraintnavn Constrainttype Constraintnavn (Feltnavn) Peger på Tabelnavn (Feltnavn) Ved sletning begræns Ved opdatering begræns Side 10 af 14
11 Efter som tabellen eksisterer skal der bruges ALTER for at ændre tabellen, så skal relationen have et navn og pege på et felt i en anden tabel. ON DELETE RESTRICT og ON UPDATE RESTRICT betyder at man ikke får lov til at slette et postnummer, eller ændre på et postnummer, hvis det er i brug i medlemstabellen eller stedtabellen. I Access kan du skrive: ALTER TABLE tblsted ADD CONSTRAINT FK_tblsted_1 FOREIGN KEY (Postnr) REFERENCES tblpostnr (Postnr); 6. Træk data ud fra tabeller SQL sætninger til at trække data ud af tabeller Hvis du vil prøve at trække data ud af tabellerne, skal alle tabeller være oprettet og der skal være indsat lidt data i hver tabel. For at komme der til, kan du hente de nødvendige filer på hjemmesiden. Hvis du vil trække alle data ud af medlemstabellen kan du skrive SELECT * FROM tblmedlem; Så får du alle felter - for stjernen betyder alle - og alle rækker Hvis det kun er bestemte felter du vil se, kan du skrive SELECT Fornavn, Efternavn FROM tblmedlem; så er det kun de to felter der bliver vist i resultatet. Hvis du vil have fornavn og efternavn til at komme ud i et kan du samle dem. Access: SELECT Fornavn & " " & Efternavn AS Medlemnavn, Adresse1, Adresse2, Postnr FROM tblmedlem; mysql: SELECT CONCAT(Fornavn, ' ', Efternavn) as Medlemnavn, Adresse1, Adresse2, Postnr FROM tblmedlem; Teknikken hedder concatenere, læg mærke til at feltet får et andet navn fordi der står AS Medlemnavn. Hvis det ikke er alle rækker du vil se skal der en begrænsning på: SELECT Fornavn, Efternavn, Adresse1, Adresse2, Postnr FROM tblmedlem WHERE Fornavn Like "t%"; Side 11 af 14
12 Udvælg Feltnavn, Feltnavn, osv Fra Tabelnavn Hvor Feltnavn Ligner maske; Masker Når du bruger LIKE kan du bruge masker. Her er det "t%" det betyder alle rækker hvor fornavn starter med t, hvis du skriver %t% betyder der alle der indeholder et t og hvis du skriver %t betyder det alle der slutter på t. Det er atter en god grund til at have felterne i databasen som tekstfelter. Sortere Hvis du vil have sorteret medlemslisten efter efternavn skal du skrive: SELECT Fornavn, Efternavn, Adresse, Postnr FROM tblmedlem ORDER BY Efternavn; Hvis du vil sortere først efter efternavn og derefter fornavn skal du skrive sådan: SELECT Fornavn, Efternavn, Adresse, Postnr FROM tblmedlem ORDER BY Efternavn, Fornavn; Sorteringsrækkefølgen der den rækkefølge du angiver i ORDER BY. Jokertegn % er et jokertegn der gælder for et ukendt antal tegn. Medlemsnr er et tekstfelt og de betyder at du kan søge med masker. WHERE Medlemnr Like "12%"; så får du alle medlemmer hvis nummer starter med 12, hvis medlemsnummeret var et tal og ikke tekst, ville du være tvunget til at lave en nøjagtig søgning: WHERE Medlemnr = ; Udtræk fra flere tabeller Hvis du vil lave et udtræk fra medlemstabellen, hvor der også er et bynavn med, er du nødt til at trække data fra to tabeller. Dette gøres ved at skrive hvilke felter i de to tabeller, der har relation til hinanden. SELECT tblmedlem.medlemnr, tblmedlem.fornavn, tblmedlem.efternavn, tblmedlem.adresse1, tblmedlem.adresse2, tblmedlem.postnr, tblpostnr.bynavn FROM tblmedlem, tblpostnr WHERE tblpostnr.postnr = tblmedlem.postnr; Side 12 af 14
13 Det der binder tabellerne sammen er feltet Postnr, som findes i begge tabeller: WHERE tblpostnr.postnr = tblmedlem.postnr; Når du sætter to tabeller sammen, vil der findes felter med samme navn i begge tabeller, så derfor er det nødvendigt at skrive det på formen tabelnavn.feltnavn. Yderligere skal navnene på tabellerne med: FROM tblmedlem, tblpostnr Hvis du skal begrænse søgningen, skal du udvide WHERE delen: WHERE tblpostnr.postnr = tblmedlem.postnr AND tblmedlem.postnr > 3000; Det giver alle medlemmer som bor et sted, hvor postnummeret er større end Join Det samme kan opnås ved at bruge en INNER JOIN SELECT tblmedlem.medlemnr, tblmedlem.fornavn, tblmedlem.efternavn, tblmedlem.adresse1, tblmedlem.adresse2, tblmedlem.postnr, tblpostnr.bynavn FROM tblpostnr INNER JOIN tblmedlem ON tblpost.postnr = tblmedlem.postnr; Sammenlignings operatorer LIKE Lige som. Kan bruges på tekst sammen med joker tegn > Større end. Kan bruges på tekst, tal og datoer < Mindre end. Kan bruges på tekst, tal og datoer <> Forskellig fra. Kan bruges på tekst, tal og datoer BETWEEN.. AND Imellem. Kan bruges på tekst, tal og datoer = Lig med. Kan bruges på tekst, tal og datoer >= Større end eller lig med. Kan bruges på tekst, tal og datoer <= Mindre end eller lig med. Kan bruges på tekst, tal og datoer IN Findes i en samling Side 13 af 14
14 Top 5 nyheder Hvis du vil vise de 5 seneste nyheder, skal du sortere dem i faldene orden efter dato og sætte en yderligere begrænsning på: Access SELECT TOP 5 Overskrift, Broedtekst, OprettetAf FROM tblnyhed ORDER BY OprettetDato DESC; mysql SELECT Overskrift, Broedtekst, OprettetAf FROM tblnyhed ORDER BY OprettetDato DESC LIMIT 5; Sub select (Select inden i Select) Ideen i en sub select er at have en indre Select, der leverer data til where delen af af en ydre select. SELECT Fornavn, Efternavn FROM tblmedlem WHERE MedlemID IN (SELECT tblkontingent.medlemid FROM tblkontingent WHERE tblkontingent.skyldbeloeb > tblkontingent.betaltbeloeb); Den indre select sætning finder alle der skylder et beløb: SELECT tblkontingent.medlemid FROM tblkontingent WHERE tblkontingent.skyldbeloeb > tblkontingent.betaltbeloeb disse (nul, et eller flere) MedlemID er bliver så brugt i den ydre Select, ved hjælp af operatoren IN. Side 14 af 14
De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML
SQL kap 6-7 + 17-20 DDL og DML 1 De vigtigste SQL-sætninger Data Definition Language (DDL) create table: opretter en ny tabel create unique index: tilføjer et index til en tabel drop table : sletter en
1. Opret følgende flade database, find selv passende datatyper. 2. Opret begrænsningerne på datatyperne, du ser fx fornavn maks 25 tegn
Opgave 1. Opret følgende flade database, find selv passende datatyper. 2. Opret begrænsningerne på datatyperne, du ser fx fornavn maks 25 tegn 3. Medlemsnr skal være større end 1000 4. Der skal oprettes
Begrænsninger i SQL. Databaser, efterår 2002. Troels Andreasen
Databaser, efterår 2002 Begrænsninger i SQL Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk
Views etc. Databaser
Views etc. Databaser Views Med Views kan vi gemme nogle af de lange select sætninger. I vores eksempel fra tidligere er det f.eks. forbundet med en del besvær at finde telefon nr og bilmærker for en sælger
Karens lille vejledning til Access
Karens lille vejledning til Access Indhold Hvad er Access? 1 Lave en database 2 Design af tabellen 2 Felttyper 2 Indtastning af data 3 Udtræk fra tabellen 3 Forespørgsel 3 Muligheder med forespørgsel 3
Introduktion til SQL queries
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til SQL queries Denne artikel beskriver nogle forskellige muligheder i SQL queries. Eksemplerne skulle gerne være standard SQL og virke i
Data lagring. 2. iteration (implement backend)
Data lagring 2. iteration (implement backend) Emner Grundlæggende database begreber. Data definitionskommandoer ER-diagrammer og cardinalitet/relationer mellem tabeller Redundant data og Normalisering
Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database
Kursusbeskrivelse Oprettelse af en Access-database Som eksempel på en Access-database oprettes en simpelt system til administration af kurser. Access-databasen skal indeholde: et instruktørkartotek et
1. Basal select med (stjerne)
1. Basal select med (stjerne) 1. List alle øltyper. a. select * from oltyper 2. List alle bryggerier a. select * from bryggeri 3. List alle Danmarks postnumre samt tilhørende by, landsdel og antal indbyggere
Hvad er en relationsdatabase? Odense, den 19. januar Version 1.0
Hvad er en relationsdatabase? Odense, den 19 januar 2004 Version 10 Program for 6 kursusdag: Databaser 0900-0945 Hvad er en relationsdatabase? -1045 Opgave om normalisering 1100-1145 Eksempel på database
Trin 1 INSERT INTO Debitor (DebitorNr, KundeKategori, KreditMax, SidstRykket, Sælger ) VALUES (20121, 10, 40000, NULL, "Bjarne Larsen");
SQL-programmering Alle opgaverne er baseret på ACCESS-databasen REGNSKAB Løsningsforslag til SQL-opgavesættet Følgende løsninger til opgaverne i forbindelse med Regnskabsdatabasen er vejledende. Fund af
Introduktion til programmering
Introduktion til programmering Databaser Uge 38 L. Ingemann: SQL databaser på nettet, kap 2-4. Kompendium L. Ingemann: SQL databaser på nettet, kap 6-20, Kompendium Sidste gang Databaser Relationelle databaser
En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin
En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin Trin 1: Lav en Domain model Opgave beskrivelse - Scandic hotel kæde Lav en domain model af Hotel-kæden.
Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...
Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... 9 Nogle HTML tags... 9 Databaser og PHP Når vi snakker
PHP 3 UGERS FORLØB PHP, MYSQL & SQL
PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at
Database design for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Database design for begyndere Denne artikel beskriver hvordan man kommer fra ide til database design. Den stopper inden normal former. Den forudsætter
Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:
Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra
Skriftlig eksamen i kurset. Informationssystemer
6. semester sundhedsteknologi Skriftlig eksamen i kurset Informationssystemer Der er 3 timer til at besvare opgaven. Alle hjælpemidler er tilladte. Skriv kort og præcist. Referer gerne til kursuslitteraturen.
Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach ([email protected]) 2002
Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach ([email protected]) 2002 På datalogi har vi en databaseserver, som de studerende på datalogi kan benytte til projekter og som også benyttes i forbindelse
PHP Snippets. De små korte. Skrevet af Daniel Pedersen
PHP Snippets De små korte Skrevet af Daniel Pedersen Indhold PHP Snippets De små korte er en samling af små og praktiske kode eksempler med kort forklaring, som med formål at kunne benyttes til opsalgsværk
Databaseadgang fra Java
Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,
Vigtigste funktionstaster Microsoft Dynamics C5 2014 / NAV 2013
Vigtigste funktionstaster Microsoft Dynamics C5 2014 / NAV 2013 Her har du de vigtigste funktionstaster, som både gælder for Microsoft Dynamics C5 2014 og NAV 2013. Filtrering af søgekriterier Du kan anvende
Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.
Mysqli Webintegrator Når vi arbejder med server-side scripting ( i vort tilfælde PHP), har vi ofte behov for at kunne tilgå data, som vi opbevarer i en database. Det kan f.eks. dreje sig om nyhederne i
Database optimering - Indeks
Database optimering - Indeks Alle kender til dette irritations moment, hvor programmet man sidder og arbejder med, bare ikke er hurtigt nok. Selvom det kun drejer sig om få sekunder man sidder og venter,
Relationel Algebra og SQL
Relationel Algebra og SQL Indholdsfortegnelse Relationel Algebra og SQL...1 Indholdsfortegnelse...1 De oprindelige mængdeoperationer...2 1. UNION (foreningsmængde)...2 2. INTERSECTION (fællesmængde)...2
Anne Randorff Højen
Anne Randorff Højen [email protected] Forelæsning og opgaver: Introduktion til SQL pause Forlæsning og Opgaver: SQL 2. del pause Introduktion til PhPMyAdmin Opgaver SQL Der modelleres ud fra reelle relationer
Anvisning i aflevering af bitemporale data
UDKAST udgivet juni 2019 Anvisning i aflevering af bitemporale data Baggrund Aflevering af data fra it-systemer til et offentligt arkiv er baseret på aflevering af en arkiveringsversion i en relationel
En Kort Introduktion til Oracle
En Kort Introduktion til Oracle Henrik Bulskov 12. februar 2001 [email protected] 1 Start SQL*Plus... 1 1.1 TELNET... 1 1.2 WINDOWS SQL PLUS... 2 2 Kør et SQL-script... 3 3 Hjælp i SQL*Plus... 3 4 Editering
3. semester, 2. projekt: Database
3. semester, 2. projekt: Database MulA - Gruppe 1 7. september 2015-20. september 2015 Vejledere - IRF / TUJE FAKTAARK PROJEKTTITEL Database URL http://moodings.com Mette Line Tarp Jørgensen Email [email protected]
Manglende konsistens i datamodellen og upræcise SQLsætninger er årsagen til, at mange IT-systemer fejler.
Manglende konsistens i datamodellen og upræcise SQLsætninger er årsagen til, at mange IT-systemer fejler. Af Seniorkonsulent Carsten Saastamoinen-Jakobsen Skal datamodellen blot være på 3NF (normalform)?
Eksamen, DSDS, efterår 2007
Eksamen, DSDS, efterår 2007 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech og Martin Elsman IT Universitetet i København 7. januar 2008 Alle hjælpemidler er tilladte, dog ikke
Eksamen, DSDS, efterår 2008
Eksamen, DSDS, efterår 2008 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 6. januar 2009 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.
Opgaver til modul 5 Access 97
Opgaver til modul 5 Access 97 Det følgende indeholder en stribe opgaver, der alle kan løses ved hjælp af Microsoft Access 97 samt Access 6.0 og 7.0. Alle opgaverne svarer i indhold og sværhedsgrad til
SQL for MySQL-begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk SQL for MySQL-begyndere I denne artikel vil jeg prøve at beskrive MySQL på begynderniveau. SQL står for Structured Query Language, og er et sprog til
Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE
Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE Fact sheet Indholdsfortegnelse Fact Sheet Gantt kort Valgt af virksomhed Brainstorm Attribut tabel ER-diagram Skitse MySQLWorkbench
Database for udviklere. Jan Lund Madsen PBS10107
Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated
Databaser Obligatorisk opgave 1
University of Southern Denmark Department of Mathematics and Computer Science Databaser Obligatorisk opgave 1 Afleveres senest: Lørdag d. 23. marts kl 23.59 Introduction Denne obligatoriske opgave indeholder
Gæstebog med validering opbygget med MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Gæstebog med validering opbygget med MySQL Dette er en simpel gæstebog, som kan hjælpe folk med at lave en velfungerende gæstebog uden alt for meget arbejde.
Jayne Alice Jensen [email protected] [Link til portfolio]
DATABASE Projekt: Projekt 1, 3. semester Website: http://kostecki.dk/cph/projektdb/ Dato: 08/09/14-21/09/14 Skole: Copenhagen Business Academy Klasse: Multimediedesigner - Mulb Gruppe: MULB1 Undervisere:
Databasesystemer. IT Universitetet i København 8. juni 2006
Databasesystemer IT Universitetet i København 8. juni 2006 Eksamenssættet består af 5 opgaver med 16 spørgsmål, fordelt på 7 sider (inklusiv denne side), samt et svarark, hvorpå visse spørgsmål skal besvares.
Kursus/workshop: SQL
Kursus/workshop: SQL En workshop - med fokus på workshop. En workshop arrangeret af PROSA Palle Nygaard Hansen Frank Jensen Indledning Gennemgang af alle basale SQL-sætninger Forløb for alle 3 aftener:
Dataanalyse og databaser
Dataanalyse og databaser En database er lang række data, der er blevet struktureret således, at der er relationer mellem tabellerne og det er muligt at indsætte og udtrække den ønskede information fra
Indholdsfortegnelse for kapitel 3
Indholdsfortegnelse for kapitel 3 Kapitel 3 Design............................................................ 2 Database........................................................... 3 ER-diagram.................................................
SQL-opgaver 5 løsning
SQL-opgaver 5 løsning Diagrammet herunder viser, hvordan kildetabellerne gerne skal se ud efter at have løst de tidligere opgaver. Scriptet opgave_5.txt indeholder også disse tabelstrukturer og alle data,
Jørgen Koch. Access. Opgavehæfte
Jørgen Koch Access 2002 2002 for alle Opgavehæfte Access 2002 for alle 1. udgave 2002 Copyright 2002 IDG Danmark A/S Forfatter: Jørgen Koch Forlagsredaktion: Frantz Pedersen DTP: Jørgen Koch Skriv til
Projekt 1 Database. Cphbusiness Lyngby Multimediedesigner, 3. semester mul-a12e, gruppe 1
Projekt 1 Database Cphbusiness Lyngby Multimediedesigner, 3. semester mul-a12e, gruppe 1 CREATE TABLE IF NOT EXISTS `3sempro1`.`cu `customer_id` INT(5) NOT NULL AUTO_INCR `name` VARCHAR(45) NULL DEFAULT
Pivottabeller, diagrammer og databehandling. Underviser: Nina Kirkegaard Schou Mobil
Pivottabeller, diagrammer og databehandling Underviser: Nina Kirkegaard Schou Mobil 21 48 65 16 E-mail: [email protected] Emner: Excel Pivottabeller/diagrammer og databehandling Brugerfladen Import af data
Word-9: Brevfletning i Word 2003
Word-9: Brevfletning i Word 2003 Nogle gange har man brug for at sende det samme brev til en større gruppe personer, firmaer el.lign. Men man vil gerne have, at det ser lidt personligt ud, så derfor er
E-MAIL MICROSOFT OUTLOOK 2010
E-MAIL MICROSOFT OUTLOOK 2010 Erik Thorsager, Esbjerg. 3. udgave: Outlook Side 1 Microsoft Outlook 2010 Hvordan skriver og sender jeg en e-mail? Det engelske ord mail betyder post. E står for elektronisk.
Tagwall med Php & MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Tagwall med Php & MySQL Her laver vi en tagwall i Php & MySQL... jeg forklarer dog ikke så meget, men jeg håber du kan få det til at blive til en tagwall
Database programmerings tips
Denne guide er oprindeligt udgivet på Eksperten.dk Database programmerings tips Denne artikel vil introducere nogle problem stillinger med flere samtidige brugere, som man skal tænke på, når man udvikler
Hjælp til MV-ID Administration
Hjælp til MV-ID Administration - til brugere af MV-Login Mikro Værkstedet A/S Dokumentversion: 20131002A 1 Indholdsfortegnelse Forord... 3 Kapitel 1. Aktivér MV-Login administratorkontoen... 4 Kapitel
Vejledning til Tælleplansmodul
Vejledning til Tælleplansmodul Hvad er en tælleplan, og hvad bruger man den til? En tælleplan er basalt set en samling af snit, som man vil tælle på i et givet år. Tælleplaner kan være organiseret forskelligt
Opgave 1. Opret de 4 tabeller i FTSFrontend programmet. Indsæt mindst 3 forskellige tabelværdier i kunder, målerstatus, byer og regning..
Side 1 af 11 Dato: 07-09-2003 Opgaver i oprettelse af kunder og info i database med java. Opgave 1. Opret de 4 tabeller i FTSFrontend programmet. Indsæt mindst 3 forskellige tabelværdier i kunder, målerstatus,
Identifikation af planer der ikke findes i PlansystemDK vha. datasættet... 9
Vejledning i brug af Tingbogsudtrækket Version 1.0 af 1. juli 2009 Indhold Indledning... 1 Planer i Tingbogen... 2 Planer i PlansystemDK... 3 Sammenhæng mellem Tingbogen og PlansystemDK... 3 Datastruktur...
Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125
Tietgenskolen - Nørrehus Data warehouse Database for udviklere Thor Harloff Lynggaard DM08125 Juni 2010 Indhold Beskrivelse... 3 Data warehouse... 3 Generelt... 3 Sammenligning... 3 Gode sider ved DW...
Vejledning til Klubadministratorer
Vejledning til Klubadministratorer til vedligeholdelse af klub- og medlemsinformationer Følgende vejledning er udarbejdet til med henblik på at informere klubadministratorer om de selvbetjeningsmuligheder
Rette bunkefejl i Legacy
Rette bunkefejl i Legacy - med programmet Microsoft Access Indhold Programmet Microsoft Access... 1 Oprette korte stednavne... 3 Den tunge måde at rette på... 3 Den lettere måde... 4 Slette stednavne...
Klik på denne knap for at komme til FaktaNet live! Forside. Siden der bl.a viser hvor mange nye/opdaterede projekter brugeren har.
FaktaNet live! Hjælp Knap menu. Klik på denne knap for at komme til FaktaNet live! Forside. Siden der bl.a viser hvor mange nye/opdaterede projekter brugeren har. Klik her for at åbne FaktaNet live! Søgemodul.
Samspillet mellem databaser og kort styres af GeoCAD programmet GeoDB.
GeoCad modul GeoDB I GeoCAD er det muligt at koble relationsdatabase til GeoEDIT. Her igennem er det muligt at lagre forskellige oplysninger i databasen og koble disse oplysninger til objekter i kortet.
Eksempel på en database: studenter, kurser, eksamener
Udvidet Programmering 1999 Forelæsning 20, fredag 12. november 1999 Relationsdatabaser: relationer, tupler, attributter Forespørgselssproget SQL Databasesystemet PostgreSQL Tilgang til relationsdatabaser
(fig.1. Eksempel på en almindelig entity)
Formål Formålet med denne opgave var, at designe et database system for et fiktivt universitet, ved hjælp af ER-model, for derefter at oversætte det til SQL tabeller. Og dernæst lave en assertion så der
ViKoSys. Virksomheds Kontakt System
ViKoSys Virksomheds Kontakt System 1 Hvad er det? Virksomheds Kontakt System er udviklet som et hjælpeværkstøj til iværksættere og andre virksomheder som gerne vil have et værktøj hvor de kan finde og
E-MAIL WINDOWS LIVE MAIL
E-MAIL WINDOWS LIVE MAIL Erik Thorsager, Esbjerg. 3. udgave: Live Mail Side 1 Windows Live Mail Hvordan skriver og sender jeg en e-mail? Det engelske ord mail betyder post. E står for elektronisk. E-mail
Database. lv/
Database 1 Database Design Begreber 1 Database: En fælles samling af logiske relaterede data (informationer) DBMS (database management system) Et SW system der gør det muligt at definer, oprette og vedligeholde
Introduktion til programmering
Introduktion til programmering Databaser Uge 37 Computer Science, kap 9. Hugh Darwen: what a database really is, G. Riccardi: Princples of database systems, kap 2., kompendium. Plan Oprette jer på IMV
Betjeningsvejledning. for. UniRace
Betjeningsvejledning for UniRace 2007 Et konkurrence indtastningsprogram. Indholdsfortegnelse Indholdsfortegnelse... 2 Figur fortegnelse... 3 Indledning... 4 Race info... 4 Indtastning af deltagere...
E-MAIL G-MAIL (GOOGLE)
E-MAIL G-MAIL (GOOGLE) Erik Thorsager, Esbjerg. 3. udgave: G-mail Side 1 G-mail E-mail: Det engelske ord mail betyder post. E står for elektronisk. E-mail betyder altså elektronisk post. Elektronisk post
Brugervejledning. Sådan laves et opslag med avanc. søgning. December 2010
Brugervejledning Sådan laves et opslag med avanc. søgning December 2010 Sådan laves en avanceret søgning Denne vejledning gennemgår eksempler på, hvordan avanceret søgning kan bruges. Når du har startet
Daglig brug af JitBesked 2.0
Daglig brug af JitBesked 2.0 Indholdsfortegnelse Oprettelse af personer (modtagere)...3 Afsendelse af besked...4 Valg af flere modtagere...5 Valg af flere personer der ligger i rækkefølge...5 Valg af flere
DATABASE - MIN MUSIKSAMLING
DATABASE - MIN MUSIKSAMLING I dette forløb skulle vi lære om databaser, som bruger sproget SQL. SQL står for Structured Query Language. Det bruges til at vise og manipulere data, gemt i en database. I
Skriftlig eksamen i. Databaser. Vinter 2002/2003. Vejledende løsninger
Skriftlig eksamen i Databaser Vinter 2002/2003 Vejledende løsninger Dette eksamenssæt består af 5 nummererede sider (incl. denne). Der er 5 opgaver, som ved bedømmelsen tillægges følgende vægte: Opgave
Øvelse 9. Klasser, objekter og sql-tabeller insert code here
Øvelse 9. Klasser, objekter og sql-tabeller Denne opgave handler om hvordan man opbevarer data fra databasekald på en struktureret måde. Den skal samtidig give jer erfaringer med objekter, der kommer til
HåndOffice Foreningsdata
HåndOffice Foreningsdata Indledning...3 Stamdata...3 Spillesteder...4 Foreningshverv...5 Hold...8 Personer...11 Side 2 af 13 Indledning Denne vejledning gennemgår de menuer, der ligger i HåndOffice (HO)
Personnummerregister / CPR Importer
Personnummerregister / CPR Importer 1 Indbakke Forventer biblioteker i sin indbakke indeholdende filer kodet i tegnsættet ISO-8859-1 der overholder følgende navngivningsmønster: D.{6}\.L4311.* Filerne
Databaseteori. 19. Databaser. 20. Kartotek eller database. 21. Database
Databaseteori 19. Databaser Fra længe før EDB alderen har man haft arkiver med viden: lande har haft folkeregistre med oplysninger om landet borgere, firmaer har haft oplysninger om kunder og salg, man
Projekt titel. Projekt navn. Gruppe medlemmer. Klasse/Gruppenummer. Databaseprojekt 1. Ferrari
Projekt titel Databaseprojekt 1 Projekt navn Ferrari Gruppe medlemmer Christian Lund (christiandevries.dk) Alexander Kofod (thisisalex.dk) Mark Halding (haldingweb.dk) Klasse/Gruppenummer MulA - gruppe
SPORTI foreningsløsning. Foreningsadministration for klubber under DI 15. marts 2009 Tirsbæk Slot, Vejle
SPORTI foreningsløsning Foreningsadministration for klubber under DI 15. marts 2009 Tirsbæk Slot, Vejle Agenda 1. Medlemsregistrering 2. Kontingentopkrævninger 3. Tilmelding til stævner, kåringer, kurser
Simon Elgaard Sørensen, 8. december 2010
Automat-guide Simon Elgaard Sørensen, 8. december 2010 Indhold Automat-guide... 1 1 Indledning... 3 2 Automat interfacet... 3 3 Det findes i Automat... 3 3.1 Hovedmenuen... 3 4 Brugerhåndtering... 3 4.1
MsSQL: Basal performance tuning, part 1
Denne guide er oprindeligt udgivet på Eksperten.dk MsSQL: Basal performance tuning, part 1 Hvordan man skriver "God SQL" for bedre performance. Skrevet den 03. Feb 2009 af trer I kategorien Databaser /
Skriftlig opgave. Designtanker i database-nære systemer
Skriftlig opgave til eksamen for faget»databaser«designtanker i database-nære systemer Martin Ancher Holm Juni 2010 1 Intro Denne skriftlige opgave indeholder kort de daglige tanker jeg har omkring design
