Notater til Avancerede Databaser. Vidar Jon Bauge 2007

Størrelse: px
Starte visningen fra side:

Download "Notater til Avancerede Databaser. Vidar Jon Bauge 2007"

Transkript

1 Notater til Avancerede Databaser Vidar Jon Bauge 2007 Datamatikeruddannelsen forår 2007 Side 1 af 65

2 Indholdsfortegnelse Datamodellering med ER-diagrammer...5 Entiteter...6 Attributter...6 Entitetstyper og Entitets sæt...6 Nøgler...7 Domæner, eller værdisæt...7 Begrebsmæssig databasedesign...7 Relationer...7 Relations typer og relations sæt...7 En relations grad...7 Rollenavne og rekursive relationer...7 Relationer som attributter...8 Begrænsninger for relationer...8 Kardinalitet i binære relationer...8 Deltagelse og ekistensafhægighed...8 Strukturelle begrænsninger...8 Attributter til relationer...9 Constraints & høne/æg problemet...10 Integritet...10 Primære nøgler og fremmednøgler...10 Constraints...10 Oprettelse af constraints...10 Typer af Constraints - integritet og navngivning...11 Navngivning...12 Sletning og ændring af Constraints...12 Få vist constraints i Oracle...13 Høne & æg problemet...13 Opret tabeller i Oracle...14 Normalisering...15 Afhængighed...15 Anomalier...15 Normalformer Normalform Normalform Normalform...16 Afhængighedsdiagram...16 Normalisering af tabeller...17 Data visning, opdatering og sletning (DML)...19 INSERT...19 Operatorer der konverterer dato/tid...19 Afrunding...19 NULL værdier...19 Indsættelse ved hjælp af variabler...19 UPDATE...20 DELETE...20 Datamatikeruddannelsen forår 2007 Side 2 af 65

3 SELECT...20 Funktioner:...21 Funktioner og Grupperinger...22 Funktioner på enkle rækker...22 Funktioner på karakterer...22 Funktioner på tal...22 Funktioner på dato...23 Funktioner der konverterer data...23 Indlejring...23 Formater...23 Funktioner på grupper og aggregeringer...25 Joins...26 Hvorfor man bruger joins...26 Det kartesiske produkt...26 Forskellige former for joins...26 Equijoin...27 NonEquijoin...27 Outer join...27 Self join...28 Sub-queries...29 Single row subqueries...29 Oprette tabeller ved hjælp af subqueries...30 INSERT ved hjælp af subqueries...30 Insert til flere tabeller...30 UPDATE ved hjælp af subqueries...32 DELETE ved hjælp af subqueries...32 Multiple row subqueries...32 JDBC - forbindelse fra et java program til Oracle SQL...33 Stored procedures i Java...35 Pakken java.sql...35 Prepared Statements (Precompiled Statements)...35 CallableStatement...36 Sequences...37 PL/SQL syntaks...38 Reserverede ord og variabelnavne...38 PL/SQL's blokstruktur...38 Data typer...39 PL/SQL kontrol strukturer og Embedded SQL...42 Selection Structure...42 IF..THEN strukturer...42 CASE strukturer...44 Looping strukturer...45 Basic loop...45 WHILE loop...45 FOR loop...45 SQL kommandoer i PL/SQL blokke...46 SELECT kommandoer...46 INSERT kommandoer...46 UPDATE kommandoer...46 DELETE kommandoer...47 Datamatikeruddannelsen forår 2007 Side 3 af 65

4 PL/SQL Cursors og Exceptions...48 Cursors...48 Eksplicit og Implicit Cursor...48 Operationer på en eksplicit cursor...48 Attributter til eksplicit cursor...49 For løkker i cursors...50 Cursor der anvender FOR løkker med subqueries...50 Låsning, opdatering og sletning af rækker i cursors...51 Cursor med parametre...51 Ref cursor type...51 Exceptions...52 Typer af Exceptions...52 Fange fejl kode og meddelelse...54 Raise_application_error procedure...54 PL/SQL Composite data typer...55 Records...55 Nested record...55 Tables...56 Varrays...58 PL/SQL blokke...59 Procedurer...59 Funktioner...60 Packages samling af objekter og procedurer...61 Package header...61 Package body...62 Triggers...63 INSTEAD OF trigger...64 Triggers og sequences...64 Data dictionnary views...65 Datamatikeruddannelsen forår 2007 Side 4 af 65

5 Datamodellering med ER-diagrammer Begrebsmæssig modellering er en vigtig fase i databasedesign. Modellerne præsenteres i ERdiagrammer, der viser en begrebsmæssig model på højt niveau. ER diagrammet viser datamodellen i form af entiteter, relationer og attributer. 1. Kravspecifikation og analyse. Indsamling og specificering af kravene til databasen. Dette kan f.eks ske gennem interviews af databasens brugere. Output: Krav til dataene, en oversigt over applikationens funktionelle krav, der beskriver hvilke transaktioner der skal anvendes på databasen i form af hentning og ændring af data 2. Begrebsmæssig skema Denne fase kaldes begrebsmæssig design, og resulterer i et begrebsmæssige skema. Dette giver en detaljeret beskrivelse af brugerens krav og detaljerede beskrivelser af Entiteter, Relationer og Begrænsninger. Det begrebsmæssige skema indeholder ingen informationer om databasens implementering. Dette gør den egnet til overordnede præsentetationer for ikke ituddannede personer. Dette skema kan senere anvendes som en reference for at kontrollere om implementeringen overholder kravene. 3. Logisk design mapning af datamodellen. Denne fase indebærere mapning af modellen til en database i en konkret DBMS. Output: Et databaseskema i DBMS'ens implementering af datamodellen. 4. Fysisk design. Her specificeres relationerne fysisk i databasen, interne lagringsstrukturer, indekseringer, stier og organisering af filer i databasen defineres. Datamatikeruddannelsen forår 2007 Side 5 af 65

6 Entiteter Det grundlæggende objekt der præsenteres i ER diagrammer, er entiteter og deres attributter. En entitet repræsenterer en ting i den virkelige verden, der har en uafhængig eksistens, enten i form af fysisk eller begrebsmæssig eksistens. En entitet med fysisk eksistens kan være en speciel person, bil, bygning, vare etc. En entitet med begrebsmæssig eksistens kan f.eks. være et kursus, et job, et firma etc. Alle entiteter har attributter, der beskriver dem. Attributter for en person kan være navn, adresse etc. Attributter Simpel eller atomar Attributter der indeholder én oplysning, og som derfor ikke kan deles op. Sammenlagt eller Composite En attribut der indeholder flere oplysninger, og som derfor kan deles op. Et eksempel på dette er attributten 'Postadresse' med indholdet 4100 Store Lilleby, der kan deles op i attributtene 'Postnummer' med indholdet 4100 og 'Postdistrikt' med indholdet Store Lilleby. Single og Multi valued De fleste attributter kan kun have en værdi i en speciel entitet. Sådanne attributter er single value. Nogle attributter kan imidlertid have flere værdier i den samme entitet, f.eks en tofarvet bil, vil have flere værdier i attributten 'Farve'. En multi value attribut kan have begrænsninger for hvor mange, eller få, værdier de må have. En bils farve kan måske have 1-3 værdier, der indikerer at bilen har mindst en, men maksimalt 3 farver. Stored og afledt (Derived) I nogle tilfælde er attributter relateret, F.eks 'Fødelsdato' og 'Alder'. Alderen kan beregnes ud fra fødselsdatoen, hvorfor alderen er en afledt attribut. Kompleks Entitetstyper og Entitets sæt En database består af en gruppe entiteter der har lignende egenskaber. En database over medarbejdere ønsker at gemme de samme oplysninger om hver enkelt medarbejder. Entiteterne for de ansatte har de samme attributter, men indeholder forskellige værdier. Alle entiteterne i en database på et givent tidspunkt, kaldes et entitetsæt. Entiteter repræsenteres i ER diagrammet som en firkant med navnet i. Attributtene tegnes son ovaler der er forbundet til entiteten med en linje. Multi value attributter tegnes med en dobbel linje i ovalen. Composite attributter tegnes som en attribut, hvor de foskellige værdier vises Entitet med attributter som ovaler der er forbundet til attributten. Datamatikeruddannelsen forår 2007 Side 6 af 65

7 Nøgler Nøgler er attributter der indeholder en unik værdi for hver enkel entitet, og derfor kan anvendes til at identificere en bestemt entitet. En nøgle kan bestå af en eller flere attributter. En nøgle der består af flere attributter, kaldes en composite key eller sammensat nøgle. Den nøgle man vælger til identifikation af entiterne kaldes primary key, eller primærnøglen. De andre nøgler kaldes candidate keys, eller kanditatnøgler. Domæner, eller værdisæt Alle simple attributter i en entitet kan associeres med et værdisæt, eller domæne. Et eksempel kan være attributten 'Alder', der kan være heltal fra i en database for medarbejdere. Værdisæt defineres typisk ud fra databasens grundlæggende data typer. Der findes datatyper, der repræsenterer heltal, kommatal, dato, booleans etc. Begrebsmæssig databasedesign 1. Analyser og identificer entiteter i problemområdet. 2. Analyser om entiterne og deres relationer afspejler problemområdet. Relationer En relation mellem entiteter, definerer et sæt associationer, eller et relationsæt mellem entiteter af disse entitetstyper. Relationerne i et relationsæt, repræsenterer en mængde instancer af den samme relation, og får derfor en fælles betegnelse. De entiteter der indgår i relationen deltager, eller participates, i instansen af relationen. Relations typer og relations sæt Alle relationer af samme type refereres med relationens navn, dvs en relation Afdeling-Ansat, kan få navnet hyrer. Et relationssæt, betegner alle forekomster af en relation på et bestemt tidspunkt. En relations grad. Graden til en relation, betegner hvor mange entiteter der deltager i relationen. En binær relation omfatter 2 entiteter, altså en relation af anden grad. En relation der omfatter tre entiteter, er ternary. Rollenavne og rekursive relationer Alle entiteter der deltager i en relation, spiller en speciel rolle i denne. Rollenavnet, betegner den rolle entiteten har i relationen. I relationen Personale -ansat i- Afdeling, kan entiteten Personale have rollen Ansat og Afdeling have rollen Arbejdsgiver. Rollenavne er ikke påkrævet i relationer hvor de deltagende entiteter er klart adskilt, så man tydelig kan se deres roller. I nogle relationer er dette imidlertid ikke alltid tydeligt, specielt i rekursive relationer, hvor en relation kun omfatter en entitet. Relationer som attributter. I nogle tilfælde er det praktisk at betragte relationer som attributter. Når en relation skal implementeres i databasens relationer, vil den typisk blive oprettet som en attribut i den entitet Datamatikeruddannelsen forår 2007 Side 7 af 65

8 relationen går til. Det vil sige at hvis man har en relation Personale -ansat i- Afdeling, vil man oprette en attribut, eller kolonne Afdeling i relationen Personale, der peger på primær nøglen i relationen Afdeling. Begrænsninger for relationer. Kardinalitet i binære relationer. Relationer har som regel begrænsninger, der udtrykker hvor mange mulige kombinationer af entiteter der må deltage i det tilsvarende relationsæt. Disse begrænsningerne er bestemt ud fra hvordan mini-verden ser ud. Man kan f.eks have en regel der siger at en medarbejder kun kan være ansat i èn afdeling. Man skelner mellem to typer af begrænsninger: Kardinalitet og deltagelse. Kardinalitet i binære relationer. Kardinaliteten i en binær relation, definerer det maksimale antal af instanser af en relation en entitet kan deltage i. F.eks at en medarbejder kn kan være ansat i èn afdeling. Kardinalitet vises ud for den rombe der repræsenterer kardinaliteten, med symbolene 1, N og M. Deltagelse og ekistensafhægighed. Deltagelse udtrykker at eksistensen af en entitet er afhængig af at den er relateret til en anden entitet. Denne begrænsning udtrykker det mindste antal instanser af relationen en entitet kan deltage i, Derfor kaldes deltagelse også for minimum cardinality constraint. Der er to typer af deltagelse: Total deltagelse (Total participation) Hver entitet i entitetsættet skal have en relation af den pågældende type. Dette kan f.eks gælde relationen Personale ansat-i Afdeling hvilket vil sige at en ansat skal være ansat i en afdeling, og en instans af entiteten Personale kan ikke eksistere hvis den ikke deltager i en relation med en instans af entiteten Afdeling. Delvis deltagelse (Partial participation) Nogle af, eller en del af entitetsættet detager i en relation af den pågældende type.. En ansat skal være ansat i en afdeling, men alle ansatte er ikke leder af en afdeling. Dette vil sige at hvis man har en relation Personale leder Afdeling, taler man om en delvis deltagelse. Kun en del af entitetsættet deltager i denne relation. Strukturelle begrænsninger Kardinalitet i en binær relation. Kardinalitet og afhængighed udgør de strukturelle begrænsninger der findes for relationer. Datamatikeruddannelsen forår 2007 Side 8 af 65

9 Attributter til relationer. Relationer kan have attributter tilsvarende attributter til entiteter. Hvis man f.eks skal registrere hvor mange timer en medarbejder arbejder på et bestemt projekt, kan man sætte attributten arbejdstimer på relatione mellem Personale og Projekt. Attributter til relationer vil blive implementeret på følgende måde: 1:1 relation Til en af de deltagende entiteter. Eksempel: Attribut til en relation. 1 1 Medarbejder leder Afdeling start_dato I dette tilfældet kan attributten start_dato implementeres både i Medarbejder, hvor den begrebsmæssig hører hjemme, eller i Afdeling, siden der bare optræder en entitet i hver ende af relationen. 1:N relation Attributten kan kun overføres til entiteten på relationens N-side. Eksempel: N 1 Medarbejder arbejder-for Afdeling start_dato I dette tilfælde kan attributten kun implementeres i entiteten Medarbejder. M:N relation Her kan placering af attributten bestemmes ud fra kombinationen af deltagende entiteter i relationen. Eksempel: Datamatikeruddannelsen forår 2007 Side 9 af 65

10 Shah side 72-76, s Integritet Constraints & høne/æg problemet Der er 2 grundlæggende regler for integritet, der skal sikre konsistente data: 1. Entitets Integritet Ingen kolonner i en primærnøgle må indeholde felter med værdien NULL. En primærnøgle sikrer entydig identifikation af en bestemt række eller entitet. Hvis en eller flere rækker har NULL værdier i kolonner der er en del af primærnøglen, mangler der informationer til denne identifikation. 2. Referentiel Integritet Værdien i en fremmednøgle kan være NULL. Hvis et felt der er en fremmednøgle indeholder en værdi, skal den samme værdi kunne findes i primærnøglen til den tabel fremmednøglen henviser til. Primære nøgler og fremmednøgler Primærnøgle og fremmednøgle er typer constraints, der sikrer henholdsvis entitets integritet og referentiel integritet. Constraints Oprettelse af constraints Constraints kan oprettes på 2 niveauer i en tabel: 1. Kolonne niveau Referer til en enkel kolonne, og erklæres ved oprettelsen af denne. Alle constraints, undtaget Foreign Key og Composite Primary Key kan oprettes på kolonne niveau. 2. Tabel niveau <Kolonne Navn> datatype [CONSTRAINT constraint navn] Constraint Type; Referer til en eller flere kolonner, og erklæres ikke ved oprettelsen av kolonnerne. Anvendes normalt efter at alle kolonner er oprettet. Alle constraints undtaget Not Null, kan oprettes på tabel niveau. [CONSTRAINT constraint navn] Constraint Type(Kolonne Navne...); Datamatikeruddannelsen forår 2007 Side 10 af 65

11 Typer af Constraints - integritet og navngivning PRIMARY KEY Constraint Sørger for at tabellen overholder entitets integritet. Definerer tabellens primærnøgle, og sætter automatisk en NOT NULL og UNIQUE constraint på primærnøglens kolonner. Hvis en PK består af flere kolonner, skal den defineres på tabel niveau. Kolonne niveau: DeptId NUMBER(2) CONSTRAINT dept_deptid_pk PRIMARY KEY Tabel niveau: CONSTRAINT dept_deptid_pk PRIMARY KEY(DeptId); FOREIGN KEY Constraint Sørger for at tabellen overholder referentiel integritet. Definerer hvilke kolonner der indgår i fremmednøglen, og hvilken tabel der henvises til. I Oracle implementeres fremmednøglen som pointere. For at oprette en fremmednøgle, må tabellen der henvises allerede være oprettet, med den definerede kolonne. Desuden må værdien i en fremmednøgle kunne genfindes i den tabel der henvises til. Ved oprettelse af en frememdnøgle, kan man tilføje en ON DELETE CASCADE clause, der sikrer at en kan slette en fremmednøgle, ved at de tilsvarende rækker i den henviste tabel også slettes. CONSTRAINT student_facultyid_fk FOREIGN KEY (FacultyId) REFENCES Faculty(FacultuId); NOT NULL Constraint Denne constraint sikrer at værdien NULL ikke kan anvendes i en kolonne. En primærnøgle får automatisk denne constraint, der typisk anvendes på en fremmednøgle eller andre kolonner hvor NULL ikke må forekomme. Kolonne niveau: Name VARCHAR2(15) CONSTRAINT Faculty_name_nn NOT NULL; UNIQUE Constraint Denne constraint forlanger at alle værdier i en tabel/kolonne er unik Kolonne niveau: DeptName VARCHAR2(12) CONSTRAINT dept_dname_uk UNIQUE; Tabel niveau: CONSTRAINT dept_dname_uk UNIQUE(DeptName); Datamatikeruddannelsen forår 2007 Side 11 af 65

12 CHECK Constraint Definere værdier der skal indeholdes i en tabel/kolonne. Der kan sættes flere CHECK constraints på en kolonne. Kolonne niveau: DeptId NUMBER(2) CONSTRAINT dept_deptid_cc CHECK((DeptId >= 10) and (DeptId <= 99)); Tabel niveau: CONSTRAINT dept_deptid_cc CHECK((DeptId >= 10) and (DeptId <= 99)); NOT NULL CHECK Constraint En NOT NULL constraint kan erklæres som en CHECK constraint, og kan på denne måden erklæres både på tabel og kolonne niveau. Name VARCHAR2(15) CONSTRAINT Faculty_name_ck CHECK(Name IS NOT NULL); DEFAULT VALUE Constraint (Ikke en constraint!) Dette er for så vidt ikke en constraint. Dette er et direktiv der sætter en default værdi når der oprettes en ny række, med NULL i de felter hvor dette direktiv er anvendt. State CHAR(2) DEFAULT 'NY'; Navngivning Navnekonvention for constraints er som følger: <Tabel navn>_<kolonne navn>_<constraint forkortelse> F.eks Employee_EmployeName_nn Forkortelsene er vist i tabellen til højre. Hvis en constraint ikke navngives når den erklæres, vil Oracle give den et navn efter SYS_Cn formatet, hvor n er et unikt nummer, f.eks: SYS_C Altså ikke brugervenlige navne. Constraint PRIMARY KEY pk FOREIGN KEY NOT NULL UNIQUE CHECK Forkortelse fk nn uk cc eller cc Forkortelse til constraint navne konventionen. Sletning og ændring af Constraints Ved sletning og ændring af constraints, skal man sørge for at entitets- og referentiel integritet overholdes. Ellers vil DBMS afvise ændringen/sletningen. Dette kan opnås ved at anvende clauser som ON UPDATE CASCADE eller ON DELETE NO ACTION ved oprettelse av fremmednøgler. Datamatikeruddannelsen forår 2007 Side 12 af 65

13 Få vist constraints i Oracle SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE FROM USER_CONSTRAINTS WHERE TABLE_NAME = 'Student'; Constraints som ikke er erklæret med et navn, vil blive vist med sit SYS_Cn navn. Dette gælder til NOT NULL constraint, der ofte erklæres ved oprettelse af en kolonne som vist nedenfor. Høne & æg problemet Høne & æg problemet går simpelthen ud på hvad man kan eller skal oprette først. Man kan ikke oprette en fremmednøgle til en tabel der ikke eksisterer. Derfor vælger man ofte at oprette samtlige tabeller først, med primærnøgler og andre constraints. Derefter oprettes alle fremmednøgler i alle tabeller. Datamatikeruddannelsen forår 2007 Side 13 af 65

14 Opret tabeller i Oracle CREATE TABLE FACULTY ( Facultyid NUMBER(3), Name VARCHAR2(15) CONSTRAINT FACULTY_Name_nn NOT NULL, RoomId NUMBER(2), Phone CHAR(3) CONSTRAINT FACULTY_Phone_uk UNIQUE, DeptId NUMBER(3), CONSTRAINT FACULTY_Facultyid_pk PRIMARY KEY (Facultyid) ); --Foreign keys in FACULTY ALTER TABLE FACULTY ADD CONSTRAINT FACULTY_RoomId_fk FOREIGN KEY (RoomId) REFERENCES LOCATION(RoomId) initially deferred deferrable; ALTER TABLE FACULTY ADD CONSTRAINT FACULTY_DeptId_fk FOREIGN KEY (DeptId) REFERENCES DEPARTMENT(DeptId); Datamatikeruddannelsen forår 2007 Side 14 af 65

15 Normalisering Normalisering af en database, har til formål at sikre ens tabeller, eller relationer, i mod dårligt, eller fejlagtigt design. En dårlig designet tabel kan f.eks. indeholde redundans, hvilket vil sige at de samme data optræder mange steder i en tabel, eller i databasen. Dermed skal de samme data opdateres på mange steder, hvilket øger muligheden for fejl. Afhængighed Her er det tale om afhængighed til kolonnerne i primærnøglen. Hvilket vil sige at man er afhængig af kolonnerne i primærnøglen for at entydigt identificere en bestemt række. Der findes 3 typer afhængighed: 1. Total eller fuld afhængighed Nogle af de kolonner der ikke indgår i primærnøglen, er afhængige af alle kolonnerne i primærnøglen. Dvs. at man behøver alle kolonner i primærnøglen til at identificere en række. 2. Partiel eller delvis afhængighed Nogle af de kolonner der ikke indgår i primærnøglen, er afhængige af nogle kolonner i primærnøgle. Dvs. at man ved hjælp af nogle kolonnerne i primærnøglen kan identificere en række. 3. Transitiv afhængighed Nogle af de kolonner der ikke indgår i primærnøglen, er afhængige af andre kolonner der ikke indgår i primærnøglen. Dvs at man ved hjælp af kolonner der ikke indgår i primærnøglen kan identificere en række. Anomalier Update Anomali Problemer i databasen der kan opstå ved opdateringer af rækker (data). F.eks hvis man ved ændringer i en varoplysning skal ændre den samme oplysning for hver faktura der ligger i databasen med denne bestemte vare. Insertion Anomali Problemer i databasen der kan opstå ved indsættelse af nye rækker (data). Hvis man, f.eks lægger in en ny vare, bliver nødt til at oprette en faktura der fakturerer en sådan vare. Delete Anomali Problemer i databasen der kan opstå når man sletter rækker (data). Hvis man f.eks ved sletning af en faktura kommer til at fjerne en bestemt vare fra databasen. Datamatikeruddannelsen forår 2007 Side 15 af 65

16 Normalformer 1. Normalform En tabel er på 1. normalform når: 1. Der er defineret en primærnøgle. Denne kan bestå af en eller flere kolonner. 2. Alle kolonner der ikke indgår i primærnøglen, er funktionelt afhængige af kolonnerne i primærnøglen. 3. Tabellen indeholder ingen kolonner der indeholder mere end én værdi. I nedenstående eksempel har 'Varebetegnelse' og 'Antal' mere end en værdi. FakturaNr KundeN r KundeNavn VareNr Varebetegnelse Pris Antal KlikService Aps Runde knapper 0, Metal knapper 0, BukseSmeden A/S Bukseben Lynlåse Nål & Tråd Inc Synåle 0, Normalform En tabel er på 2. normalform når: 1. Den er på 1. normalform 2. Der er ingen partielle afhængigheder. 3. Normalform En tabel er på 3. normalform når: 3. Den er på 2. normalform 4. Der er ingen transitive afhængigheder. Afhængighedsdiagram Strikkepinde 1, Afhængighedsdiagrammet viser tabellers indbyrdes afhængigheder. Primærnøglen er udhævet med fed skrift. Afhængigheder vises med pile. Datamatikeruddannelsen forår 2007 Side 16 af 65

17 Normalisering af tabeller. Tabeller på 1. normalform 2. normalform: Fjernet Partielle afhængigheder Tabeller på 2. normalform Datamatikeruddannelsen forår 2007 Side 17 af 65

18 3. Normalform: Fjernet transitive afhængigheder. Tabeller på 3. normalform Datamatikeruddannelsen forår 2007 Side 18 af 65

19 INSERT Syntaks: Data visning, opdatering og sletning (DML) INSERT INTO <Tabel Navn> [(Kolonne Navne...)] VALUES (Værdi1,Værdi2...); [WHERE Betingelse AND OR NOT BETWEEN...AND Betingelse]; F.eks. INSERT INTO COURSE (courseid, title, credits, prereq) VALUES ('EN100', 'Basic English', 0, 'GR4'); Operatorer der konverterer dato/tid Afrunding TO_DATE F.eks TO_DATE('06/05/2007','MM/DD/YYYY)' TO_CHAR F.eks TO_CHAR(HireDate, 'DD-MM-YYYY HH:MM:SS P.M.') NUMBER F.eks. 56,23656 kan formatteres med NUMBER(6,2) vil give 56,24 NULL værdier 1. Kan indsættes implicit: INSERT INTO COURSE (courseid, title) VALUES ('EN100', 'Basic English') De kolonner der er udeladt her, vil få NULL værdier 2. Kan indsættes eksplicit: INSERT INTO COURSE (courseid, title, credits, prereq) VALUES ('EN100', 'Basic English', 0, NULL); Indsættelse ved hjælp af variabler INSERT INTO COURSE (courseid, title, credits, prereq) VALUES ('&courseid, '&title', 0, 'GR4'); &tegnet foran variablene vil give en prompt, hvor man kan skrive ind værdier for de aktuelle felter. SET DEFINE ON og SET DEFINE! gør at! bliver anvendt i stedet for &, så man kan anvende & til data der skal sættes ind i databasen. Med ACCEPT kommandoen kan man definere egne prompts til at skrive ind data: Syntax: ACCEPT <Variabelnavn> PROMPT 'Melding..'; ACCEPT courseid PROMPT 'Skriv kursusnummer >:'; ACCEPT title PROMPT 'Skriv kursets navn >:'; INSERT INTO COURSE (courseid, title, credits, prereq) VALUES ('&courseid, '&title', 0, 'GR4'); Datamatikeruddannelsen forår 2007 Side 19 af 65

20 UPDATE Syntax UPDATE TabelNavn SET Kolonne1=NyVærdi1, Kolonne2=NyVærdi2... [WHERE Betingelse AND OR NOT BETWEEN...AND Betingelse]; Hvis WHERE clausen udelades, opdateres samtlige rækker i tabellen. UPDATE COURSE SET title = 'Basic English' WHERE courseid = 'EN100'; DELETE Syntax Hvis man prøvet at slætte en række, hvis primærnøgle findes i en anden tabels primærnøgle, bliver sletningen afbrudt med fejlmeddelelsen Integrity constraint violated child record found DELETE [FROM] TabelNavn [WHERE Betingelse AND OR NOT BETWEEN...AND Betingelse]; F.eks DELETE FROM COURSE WHERE courseid = 'EN100'; Operand Funktion = Lig med <> eller!= Ikke lig med > Større end >= Større eller lig med < Mindre end >= Mindre eller lig med Sammenligningsoperatorer SELECT Syntax SELECT Kolonnenavn1, Kolonnenavn2... (eller *) FROM TabelNavn [WHERE Betingelse AND OR NOT BETWEEN...AND Betingelse] [ORDER BY KolonneNavn [ASC DESC]]; [GROUP BY KolonneNavn [ASC DESC]]; [HAVING Udtryk (f.eks COUNT(*) = 12)]; Substitutions variabler kan anvendes i stedet for et kolonnenavn som argument til SELECT. Så vil brugeren blive spurgt om hvilken kolonne der skal hentes data fra GROUP BY kan ikke anvendes sammen med SELECT med en enkel række funktion. HAVING clause anvendes til at indskrænke resultatet af en gruppe funktion. SELECT courseid, title, &columnname FROM COURSE; DEFINE columnname = prereq (CHAR) UNDEFINE columnname Datamatikeruddannelsen forår 2007 Side 20 af 65

21 Funktioner: DISTINCT Viser kun en enkel forekomst, hvis der er flere der er ens. COLUMN ALIAS Viser kolonnen med et egendefinerett navn. SELECT courseid AS 'Course No.' COLUMN Gør det muligt at formattere indholdet i en kolonne, f.eks afrunde et tal SELECT courseid AS 'Course No.' FORMAT A8 Giver plads til 8 karakterer i visningen CONCATENATION Kæder sammen indholdet fra to kolonner, så de vises som en kolonne SELECT Lname Fname FROM Employee; Aritmetiske operationer SELECT Lname, Fname, Salary + Bonus FROM Employee; Viser de totale indtægter for hver eneste ansatte. Wild Cards % (Procent) Repræsenterer ingen eller flere karakterer SELECT courseid, coursename FROM COURSE WHERE coursename LIKE 'A%' Viser alle kurser der starter på A _ (Underscore) Repræsenterer én, hvilken som helst karakter. CASE CASE strukturen kan anvendes i alle SQL statements. Syntax: CASE WHEN Betingelse1 Udtryk1 WHEN Betingelse2 Udtryk2... ELSE Betingelse3 END F.eks UPDATE Ansat SET Salary = CASE WHEN Ansienitet > 20 THEN Løn * 1,25 WHEN Ansienitet > 10 THEN Løn * 1,10 ELSE Løn * 1,05 END Datamatikeruddannelsen forår 2007 Side 21 af 65

22 Funktioner og Grupperinger Der findes 2 typer funktioner 1. Funktioner på enkle rækker Arbejder på enkle rækker, og returnerer et resultat pr række 2. Funktioner på grupper og aggregeringer Arbejder på data i en gruppe af rækker, og resulterer i er enkelt resultat. Funktioner på enkle rækker Funktioner på karakterer Funktion UPPER (Kolonne udtryk) LOWER (Kolonne udtryk) INITCAP (Kolonne udtryk) CONCAT (Kolonne Udtryk, Kolonne Udtryk) SUBSTR(Kolonne udtryk, x, y) Anvendelse Konverter til store bogstaver. Konverter til små bogstaver. Sætter de ønskede karakterer til små eller store, f.eks 1 bogstav i hvert ord Sætter sammen 1. værdi med 2. værdi Trækker en streng ud fra kolonne. Begynder ved x og laver en substreng hvis længde er y SUBSTR(Kolonne udtryk, z) Deler en streng i 2 fra karakter z. INSTR (Kolonne udtryk, c) LTRIM (Kolonne udtryk, c) RTRIM (Kolonne udtryk, c) TRIM (c FROM Kolonne udtryk) TRIM (Kolonne) LENGTH (Kolonne udtryk) LPAD (Kolonne udtryk, n, 'str') RPAD (Kolonne udtryk, n, 'str') REPLACE (Kolonne udtryk, c, r) Funktioner på tal Funktion ROUND (Kolonne udtryk[n]) TRUNC (Kolonne udtryk[n]) Returnerer positionen til den ønskede karakter Fjerner karakterer i begyndelsen af strengen. Fjerner karakterer i slutningen af strengen. Fjerner karakterer i både begyndelse og slutningen af strengen Fjerner SPACES fra strengen. Returnerer længden Fylder ud i begyndelsen af strengen. Fylder ud i slutningen af strengen. Erstatter substring c med r, hvis den findes Anvendelse Afrunder til n decimaler efter kommaet POWER (n, p) Ophæver p i n'te - p(n p ) ABS(n) MOD(x, y) Forkorter kolonnen eller udtrykket til n decimaler Returnerer absolut værdien til n Returnerer det tilbageværende heltal af x/y SIGN (værdi) Returnerer 1 hvis positiv, -1 hvis negativ eller 0 hvis 0 FLOOR (værdi) Returnerer det højeste heltal der er større end eller lig med Datamatikeruddannelsen forår 2007 Side 22 af 65

23 CEIL (værdi) værdi Returnerer det højeste heltal der er mindre end eller lig med værdi Funktioner på dato Aritmetik på datoer: Operation Date + number Date - number Date + number/24 Date1 - Date2 Resultat Lægger number dage til datoen Trækker number dage fra datoen Lægger number timer til datoen Returnerer antal dage mellem Date1 og Date2 Funktion MONTHS_BETWEEN (date1, date2) ADD_MONTHS (date, m) NEXT_DAY (date, 'day') LAST_DAY (date) ROUND (date [, 'format'] TRUNC (date [, 'format'] EXTRACT(YEAR MONTH DAY FROM date) NEXT_TIME (date, existing timezone, new timezone) Anvendelse Returnerer antal måneder mellem 2 datoer Lægger m måneder til datoen date Returnerer den næste ugedag day fra datoen date Returnerer den sidste dag i måneden Afrunder til den nærmeste day, month eller year Forkorter datoen date til den nærmeste day, month eller year Returnerer day, month eller year fra datoen date Returnerer datoen i angivne tidzone, som EST eller PST Funktioner der konverterer data Funktion TO_CHAR (number date [, format]) TO_NUMBER (char [, format]) TO_DATE (char [, format]) Anvendelse Konverterer et tal eller en dato til varchar2, baseret på det angivne format Konverterer et sæt karakterer med en gyldig kommasekvens til et number, baseret på det angivne format Konverterer et sæt karakterer til en date, baseret på det angivne format. Default format er DD-MM-YYYY Indlejring Funktioner der arbejder på enkle rækker kan indlejres i hinanden. I indlejrede funktioner, bliver den inderste udført først: SELECT NEXT_DAY (ADD_MONTHS(TRUNC(TO_DATE('12/12/98', 'MM/DD/YYYY'), 'MONTH'), 3), 'WEDNESDAY') + 7 AS 'Days Date' FROM Column; Datamatikeruddannelsen forår 2007 Side 23 af 65

Begrænsninger i SQL. Databaser, efterår 2002. Troels Andreasen

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

Læs mere

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

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

Læs mere

En Kort Introduktion til Oracle

En Kort Introduktion til Oracle En Kort Introduktion til Oracle Henrik Bulskov 12. februar 2001 bulskov@ruc.dk 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

Læs mere

Introduktion til SQL queries

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

Læs mere

DB undervisning 01-01

DB undervisning 01-01 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...

Læs mere

Databaseadgang fra Java

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,

Læs mere

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002 Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002 På datalogi har vi en databaseserver, som de studerende på datalogi kan benytte til projekter og som også benyttes i forbindelse

Læs mere

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

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

Læs mere

Views etc. Databaser

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

Læs mere

Skriftlig eksamen i kurset. Informationssystemer

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.

Læs mere

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 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.

Læs mere

Eksempel på en database: studenter, kurser, eksamener

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

Læs mere

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5

Side 1. Databaser og SQL. Dagens gang. Databasebegreber. Introduktion til SQL Kap 1-5 Databaser og SQL Introduktion til SQL Kap 1-5 1 Dagens gang Databaser Database begreber Mapning af klasser til relationel model Normalisering Opgaver til næste gang 2 Databasebegreber A database is a:

Læs mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

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

Læs mere

Data lagring. 2. iteration (implement backend)

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

Læs mere

Eksamen, DSDS, efterår 2008

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.

Læs mere

1. Basal select med (stjerne)

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

Læs mere

Eksamen, DSDS, efterår 2007

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

Læs mere

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Ø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

Læs mere

Rigtig SQL Programmering

Rigtig SQL Programmering Rigtig SQL Programmering 1 SQL i Rigtige Programmer Indtil nu har vi brugt SQL direkte i kommandolinje promt/gui program, hvor vi kan lave forespørgsler til databasen I virkeligheden: Programmer kontakter

Læs mere

Introduktion til programmering

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

Læs mere

Skriftlig opgave. Designtanker i database-nære systemer

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

Læs mere

Datamodeller. 1. Elementerne. Vi betragter E/R-diagrammet, som et diagram over entiteter og relationer Tegneregler: Entitet

Datamodeller. 1. Elementerne. Vi betragter E/R-diagrammet, som et diagram over entiteter og relationer Tegneregler: Entitet Datamodeller I forlængelse af noten om normalisering, følges der her op med redskabet E/R-diagrammer til opstilling af en datamodel, opfat således dette som en alternativ metode mere end endnu et redskab

Læs mere

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002 Databaser, efterår 2002 Databasesystemer Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

Database-sproget SQL. SELECT A1,, Ar FROM R1,, Rk WHERE B med. SQL ~ SEQUEL ~ Structered English QUEry Language SQL-forespørgsel, generel form

Database-sproget SQL. SELECT A1,, Ar FROM R1,, Rk WHERE B med. SQL ~ SEQUEL ~ Structered English QUEry Language SQL-forespørgsel, generel form Database-sproget SQL SQL ~ SEQUEL ~ Structered English QUEry Language SQL-forespørgsel, generel form SELECT A1,, Ar FROM R1,, Rk WHERE B med attributter A1,, Ar relationer R1,, Rk betingelse B (logisk

Læs mere

Anvisning i aflevering af bitemporale data

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

Læs mere

Import af rekursivt (parent-child) hierarki i Palo

Import af rekursivt (parent-child) hierarki i Palo Import af rekursivt (parent-child) hierarki i Palo Dette dokument beskriver hvordan et simpelt rekursivt (parent-child) hierarki kan importeres ind i Palo på forskellige måder via SQL og samtidig bibeholde

Læs mere

Databasesystemer. IT Universitetet i København 16. januar 2006

Databasesystemer. IT Universitetet i København 16. januar 2006 Databasesystemer IT Universitetet i København 16. januar 2006 Eksamenssættet består af 5 opgaver med 16 spørgsmål, fordelt på 6 sider (inklusiv denne side), samt et svarark, hvor visse spørgsmål skal besvares.

Læs mere

Database. lv/

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

Læs mere

Eksamen, DSDS, forår 2009

Eksamen, DSDS, forår 2009 Eksamen, DSDS, forår 2009 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 3. juni 2009 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.

Læs mere

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.

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

Læs mere

Sidste forelæsning. Jacob Aae Mikkelsen. 28. april 2013 IMADA. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28.

Sidste forelæsning. Jacob Aae Mikkelsen. 28. april 2013 IMADA. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. Sidste forelæsning Jacob Aae Mikkelsen IMADA 28. april 2013 Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april 2013 1 / 36 Outline 1 Brugere og Sikkerhed Jacob Aae Mikkelsen (IMADA) Sidste forelæsning

Læs mere

Databasesystemer. IT Universitetet i København 7. juni 2005

Databasesystemer. IT Universitetet i København 7. juni 2005 Databasesystemer IT Universitetet i København 7. juni 2005 Eksamenssættet består af 5 opgaver med 13 spørgsmål, fordelt på 6 sider (inklusiv denne side). Vægten af hver opgave er angivet. Du har 4 timer

Læs mere

Opgave 1 Basal select med (stjerne)

Opgave 1 Basal select med (stjerne) Opgave 1 Basal select med (stjerne) 1. List alle øltyper. 2. List alle bryggerier 3. List alle Danmarks postnumre samt tilhørende by, landsdel og antal indbyggere 4. BONUS: List alle ølmærker med alt deres

Læs mere

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Denne guide er oprindeligt udgivet på Eksperten.dk Prepared Statements Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Skrevet den 18. Feb 2010

Læs mere

Databasesystemer. IT Universitetet i København 8. juni 2006

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.

Læs mere

Database programmerings tips

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

Læs mere

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:... 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

Læs mere

Skriftlig eksamen i. Databaser. Vinter 2002/2003. Vejledende løsninger

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

Læs mere

Anne Randorff Højen

Anne Randorff Højen Anne Randorff Højen arra@hst.aau.dk 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

Læs mere

Database-sproget SQL. SELECT A1,, Ar FROM R1,, Rk WHERE B med. SQL ~ SEQUEL ~ Structered English QUEry Language SQL-forespørgsel, generel form

Database-sproget SQL. SELECT A1,, Ar FROM R1,, Rk WHERE B med. SQL ~ SEQUEL ~ Structered English QUEry Language SQL-forespørgsel, generel form Database-sproget SQL SQL ~ SEQUEL ~ Structered English QUEry Language SQL-forespørgsel, generel form SELECT A1,, Ar FROM R1,, Rk WHERE B med attributter A1,, Ar relationer R1,, Rk betingelse B (logisk

Læs mere

Dokumentering af umbraco artikeleksport:

Dokumentering af umbraco artikeleksport: Dokumentering af umbraco artikeleksport: Lav en artikel side 2-3. Installationsguide side 3-5. Opsættelse af databasen og web.config side 5-8. Umbraco: templates side 8. Umbraco: borger.dk tab side 8.

Læs mere

Afleveringsopgave. Efterår 2001

Afleveringsopgave. Efterår 2001 Datalogi Database-kurset Efterår 2001 Afleveringsopgave Baseret på opgavetekst forfattet af Troels Andreasen, forår 2001 Let redigeret af Henning Christiansen, oktober 2001 Aflevering Opgaven afleveres

Læs mere

Introduktion til SQL

Introduktion til SQL Introduktion til SQL Introduktion til SQL 1. udgave, 1. oplag 2013 Copyright 2013 Libris Media A/S Forfatter: Bobby Henningsen Forlagsredaktion: Peter Wiwe og Louise Peulicke Larsen Omslag: Louise Peulicke

Læs mere

Kursus/workshop: SQL

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:

Læs mere

Efterår 2002 Note 10. Temaopgave

Efterår 2002 Note 10. Temaopgave Datalogi Database-kurset Efterår 2002 Note 10 Temaopgave Formålet med temaopgaven er at I skal arbejde med vigtige dele af kursusstoffet indenfor et specifikt problemområde/tema. Temaopgaven omfatter 4

Læs mere

Database kursus Forår 2013

Database kursus Forår 2013 Database kursus Forår 2013 Jacob Aae Mikkelsen Database design og programmering/databaser fra Organisationsorienteret softwareudvikling 1 Praktisk info Lærebog Database Systems: The Complete Book Skema

Læs mere

Python programmering. Per Tøfting. MacFest

Python programmering. Per Tøfting. MacFest Python programmering MacFest 2005 Per Tøfting http://pertoefting.dk/macfest/ Indhold Måder at afvikle Python program på Variabler Data typer Tal Sekvenser Strenge Tupler Lister Dictionaries Kontrolstrukturer

Læs mere

Søren Løbner (lobner) ddb Databaser 2007 10 10

Søren Løbner (lobner) ddb Databaser 2007 10 10 ddb Excercise Week 4 Fra relationships til relations Nu når vi har fået vores skemaer på plads, kan SQL udtrykkene til konstruktion af relationerne laves Det foregår ved at vi tager en 1 til 1 oversættelse

Læs mere

MsSQL: Basal performance tuning, part 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 /

Læs mere

Oracle PL/SQL. Overview of PL/SQL

Oracle PL/SQL. Overview of PL/SQL Oracle PL/SQL John Ortiz Overview of PL/SQL Oracle's Procedural Language extension to SQL. Support many programming language features. If-then-else, loops, subroutines. Program units written in PL/SQL

Læs mere

Kursusbeskrivelse. Forarbejde. Oprettelse af en Access-database

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

Læs mere

Introduktion til programmering

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

Læs mere

Database design for begyndere

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

Læs mere

ER-modellen. Databaser, efterår Troels Andreasen. Efterår 2002

ER-modellen. Databaser, efterår Troels Andreasen. Efterår 2002 Databaser, efterår 2002 ER-modellen Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

Conceptual, logic, physical

Conceptual, logic, physical Conceptual, logic, physical Conceptual er et billede af virkeligheden. Entity names og attributter relaterer til den faktiske verden. Physical er i SQL databasen, her skriver vi de navne på tabeller og

Læs mere

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract

Sproget Six. Til brug i rapportopgaven på kurset Oversættere. Vinter 2006. Abstract Sproget Six Til brug i rapportopgaven på kurset Oversættere Vinter 2006 Abstract Six er baseret på det sprog, der vises i figur 6.2 og 6.4 i Basics of Compiler Design. Den herværende tekst beskriver basissproget

Læs mere

MapBasic brugergruppe. Geografiske objekter. Peter Horsbøll Møller Senior Systems Engineer April 2013

MapBasic brugergruppe. Geografiske objekter. Peter Horsbøll Møller Senior Systems Engineer April 2013 MapBasic brugergruppe Geografiske objekter Slå mute fra hvis I vil sige eller spørge om noget Peter Horsbøll Møller Senior Systems Engineer April 2013 Program MapBasic IDE som udviklingsværktøj Geografiske

Læs mere

SQL Server 2016 Data Adgang

SQL Server 2016 Data Adgang SQL Server 2016 Data Adgang MSBIP, 5. OKTOBER, 2015 Agenda SQL Server 2016 CTP 2.3 Pragmatisk Data Adgangskontrol Row Level Security Dynamic Masking Kombination af begge Alternativet Hvem er jeg Selvstændig

Læs mere

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

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

Læs mere

DML, Foresprgsler Relationel algebra + noget mere! af skemaer (overlap m. DDL)

DML, Foresprgsler Relationel algebra + noget mere! af skemaer (overlap m. DDL) SQL Stuctured Query Language, spiller roller som DDL, denere relationsskemaer m.v. DML, Foresprgsler Relationel algebra + noget mere! Opdatering af relationer af skemaer (overlap m. DDL) Hvem bruger SQL

Læs mere

XML Difftool brugervejledning

XML Difftool brugervejledning XML Difftool brugervejledning UNI C maj 2007 XML Difftool brugervejledning UNI C Maj 2007 Af UNI C Indhold 1 Kort om XML Difftool og Import... 1 1.1 XML Difftool... 1 1.2 Opbygning af XML import fil...

Læs mere

applikation----x----odbc driver manager----foobar ODBC driver----foobar database

applikation----x----odbc driver manager----foobar ODBC driver----foobar database Denne guide er oprindeligt udgivet på Eksperten.dk ODBC i C/C++ Denne artikel beskriver hvordan man bruger ODBC i C/C++. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab

Læs mere

Objektorientering og databaser

Objektorientering og databaser Databaser, efterår 2002 Objektorientering og databaser Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674

Læs mere

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. 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)?

Læs mere

3. semester, 2. projekt: Database

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 cph-mj420@cphbusiness.dk

Læs mere

Workshop Persistence

Workshop Persistence Workshop Persistence University College Nordjylland Datamatikeruddannelsen Klasse: dmaa0216 Titel: Workshop Persistence Versionskontrol-sti: https://github.com/mrurb/workshop-persistans/invitations versionsnummer:

Læs mere

Software Projekt NoSQL vs RMDB

Software Projekt NoSQL vs RMDB Software Projekt NoSQL vs RMDB Skrevet af Carsten Sørensen, Hans Jørgen Frandsen, Peter Haislund Department of Computer Science, University of Aarhus Aabogade 34, 8200 Arhus N, Denmark 201200089, 19960442,

Læs mere

Ratingsystem i PHP og MySQL

Ratingsystem i PHP og MySQL Denne guide er oprindeligt udgivet på Eksperten.dk Ratingsystem i PHP og MySQL Lær at lave et system til at vise rating/bedømmelse på artikler og nyheder. Skrevet den 03. Feb 2009 af virtual1ty I kategorien

Læs mere

Fra ER-Diagram til Relationel model i 7 step

Fra ER-Diagram til Relationel model i 7 step Fra ER-Diagram til Relationel model i 7 step STEP 1: For regular entity type E in ER schema, create a relation R that includes all the simple attributes, and component attributes of composite attributes.

Læs mere

Database for udviklere. Jan Lund Madsen PBS10107

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

Læs mere

Forelæsning Uge 2 Torsdag

Forelæsning Uge 2 Torsdag Forelæsning Uge 2 Torsdag Java syntax og style guide Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Brug

Læs mere

Begrynder til at lave log ind system

Begrynder til at lave log ind system Denne guide er oprindeligt udgivet på Eksperten.dk Begrynder til at lave log ind system Hej Vil jeg gerne lave en lille programmering forklare til hvordan du laver din helt egen lille start på at log ind

Læs mere

Samspillet mellem databaser og kort styres af GeoCAD programmet GeoDB.

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.

Læs mere

ER-modellen. Databaser, efterår 2002. Troels Andreasen. Efterår 2002

ER-modellen. Databaser, efterår 2002. Troels Andreasen. Efterår 2002 Databaser, efterår 2002 ER-modellen Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

Skriftlig eksamen i Databaser, Vinter 2001/2002. Pa opfordring har jeg udarbejdet mulige lsninger pa eksamensopgaverne, men

Skriftlig eksamen i Databaser, Vinter 2001/2002. Pa opfordring har jeg udarbejdet mulige lsninger pa eksamensopgaverne, men Roskilde Universitetscenter Skriftlig eksamen i Databaser, Vinter 2001/2002 Opgaver med lsninger Pa opfordring har jeg udarbejdet mulige lsninger pa eksamensopgaverne, men har ikke haft tid til at polere

Læs mere

Reeksamen, DSDS, forår 2008

Reeksamen, DSDS, forår 2008 Reeksamen, DSDS, forår 2008 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 22. august 2008 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.

Læs mere

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Denne guide er oprindeligt udgivet på Eksperten.dk MySQL C API Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab

Læs mere

Funktions opdatering 4.5.01 ASPECT4 QueryManager (B=fejl, S=support/Info, T=Opgave, W=Releaseønske)

Funktions opdatering 4.5.01 ASPECT4 QueryManager (B=fejl, S=support/Info, T=Opgave, W=Releaseønske) ASPEC4 QueryManager (B=fejl, S=support/Info, =Opgave, =Releaseønske) 00001289 Dags dato som standardværdi Standardværdierne for datofelter i en rekvisition kan sættes til dynamiske datoer, således at rekvisitionsfeltet

Læs mere

Håndbog Til CPR services. Bilag 8 GCTP-standard m.m. CPR-kontoret

Håndbog Til CPR services. Bilag 8 GCTP-standard m.m. CPR-kontoret Håndbog Til CPR services Bilag 8 GCTP-standard m.m. CPR-kontoret Datavej 20, Postboks 269, 3460 Birkerød E-post: cpr@cpr.dk. Telefax 45 82 51 10. Hjemmeside: www.cpr.dk Side 2 af 14 Indholdsfortegnelse

Læs mere

SQL for MySQL-begyndere

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

Læs mere

Få sin querystring til at fungere. (Nybegyndere)

Få sin querystring til at fungere. (Nybegyndere) Denne guide er oprindeligt udgivet på Eksperten.dk Få sin querystring til at fungere. (Nybegyndere) Artikelen henvender sig til nybegyndere der har problemer med at få sin querystring til at fungere (Access/ASP).

Læs mere

Kapitel 4 Løkker i C#

Kapitel 4 Løkker i C# Kapitel 4 Løkker i C# Løkker en vigtig del af alle programmeringssprog, og C# er ikke andeles. En løkke er en måde at udføre en del af koden gentagne gange. Ideen er at du fortsætter med at udføre en opgave

Læs mere

Indholdsfortegnelse for kapitel 3

Indholdsfortegnelse for kapitel 3 Indholdsfortegnelse for kapitel 3 Kapitel 3 Design............................................................ 2 Database........................................................... 3 ER-diagram.................................................

Læs mere

Hent filoplysninger fra billeder og filer

Hent filoplysninger fra billeder og filer Hent filoplysninger fra billeder og filer I denne vejledning bliver det gennemgået, hvordan man via Power Forespørgsel kan hente filoplysninger fra en mappe ind i Excel. Der skal opbygges følgende elementer:

Læs mere

Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Makrosikkerhed (Sikkerhedsindstillinger)...13

Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Makrosikkerhed (Sikkerhedsindstillinger)...13 1 Indholdsfortegnelse Forord...8 Makroer samt aktivere Udvikler-fanen...10 Hvad er en makro... 10 Hvad kan du bruge en makro til... 10 Hvad en makro er (Visual Basic for Applications)... 11 Det hele sker

Læs mere

Relationel Algebra...1. Indholdsfortegnelse...1. Operationer på den relationelle model...2

Relationel Algebra...1. Indholdsfortegnelse...1. Operationer på den relationelle model...2 Relationel Algebra Indholdsfortegnelse Relationel Algebra...1 Indholdsfortegnelse...1 Operationer på den relationelle model...2 Mængdeoperationerne...2 Union...2 Difference...2 Intersection...3 Hvilke

Læs mere

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk Denne guide er oprindeligt udgivet på Eksperten.dk Database tips Denne artikel vil give nogle forskellige små praktiske råd om ting man skal tænke på når man arbejder med databaser og applikationer som

Læs mere

LØKKER METODER C S HISTORIE. Grundlæggende programmering Lektion 4

LØKKER METODER C S HISTORIE. Grundlæggende programmering Lektion 4 LØKKER METODER C S HISTORIE Grundlæggende programmering Lektion 4 1 LEKTIER UML struktur diagrammer om biler 2 OPERATORER Syntaks til at udføre forskellige beregninger og handlinger Booleans og hvorfor

Læs mere

Eksamen, DSDS, forår 2008

Eksamen, DSDS, forår 2008 Eksamen, DSDS, forår 2008 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 3. juni 2008 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.

Læs mere

SWC eksamens-spørgsmål. Oversigt

SWC eksamens-spørgsmål. Oversigt SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition

Læs mere

DATABASE Projekt 1-3. semester

DATABASE Projekt 1-3. semester DATABASE Projekt 1-3. semester Gruppe 2- CLmul-a12e Projekt URL http://www.lucasperch.dk/projekter/database.pdf Gruppe 2 Lucas Perch-Nielsen cph-lp14@cphbusiness.dk http://lucasperch.dk/skole.php Niclas

Læs mere

Projekt database. 3 Semester - Mul a Projekt 1. Yaser Osman cph-mo102@cphbusiness.dk. Dan Eskildsen cph-de32@cphbusiness.dk

Projekt database. 3 Semester - Mul a Projekt 1. Yaser Osman cph-mo102@cphbusiness.dk. Dan Eskildsen cph-de32@cphbusiness.dk Projekt database 3 Semester - Mul a Projekt 1 Yaser Osman cph-mo102@cphbusiness.dk Dan Eskildsen cph-de32@cphbusiness.dk Ammar Al-Basri cph-aa140@cphbusiness.dk Emre Kandemir cph-ek68@cphbusiness.dk Lotte

Læs mere

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 4: Mere om E-R modellering. 24. februar 2005. Forelæser: Rasmus Pagh

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 4: Mere om E-R modellering. 24. februar 2005. Forelæser: Rasmus Pagh Databasesystemer, forår 2005 IT Universitetet i København Forelæsning 4: Mere om E-R modellering 24. februar 2005 Forelæser: Rasmus Pagh Forelæsningen i dag Fortsættelse af E-R model: Attributtyper, identifiers,

Læs mere

Databasesystemer. IT Universitetet i København 8. juni 2006

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å 10 sider (inklusiv denne side), samt et svarark, hvorpå visse spørgsmål skal besvares.

Læs mere

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 3: E-R modellering. 17. februar 2005. Forelæser: Rasmus Pagh

Databasesystemer, forår 2005 IT Universitetet i København. Forelæsning 3: E-R modellering. 17. februar 2005. Forelæser: Rasmus Pagh Databasesystemer, forår 2005 IT Universitetet i København Forelæsning 3: E-R modellering 17. februar 2005 Forelæser: Rasmus Pagh Forelæsningen i dag Datamodellering hvad, hvornår, hvorfor og hvordan? Business

Læs mere

Klasser og objekter. (Afsnit i manualen)

Klasser og objekter. (Afsnit i manualen) Klasser og objekter (Afsnit 4 + 5 i manualen) Grundbegreber Klasser og objekter beskrivelse oprettelse Attributter og metoder tilstand opførsel Indkapsling afskærmning datarepræsentationsuafhængighed Klasser

Læs mere

Projekt Database, Gruppe 4A. Projekt 1, 3. Semester D A T A B A S E. Klasse MulA13 Gruppenummer: A4

Projekt Database, Gruppe 4A. Projekt 1, 3. Semester D A T A B A S E. Klasse MulA13 Gruppenummer: A4 Projekt Database, Gruppe 4A 0 Projekt 1, 3. Semester D A T A B A S E Klasse MulA13 Gruppenummer: A4 Projekt Database, Gruppe 4A 1 Fakta-ark Klasse MulA13, Gruppenummer: A4 Gruppemedlemmer: Amalie Ardahl

Læs mere

DATABASE - MIN MUSIKSAMLING

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

Læs mere

Modul 2 Database projekt Multimediedesign 3. semester Gruppe 3 IRF/TUJE

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

Læs mere