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

Størrelse: px
Starte visningen fra side:

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

Transkript

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

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

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

4 Outline 1 Brugere og Sikkerhed 2 Kort evaluering 3 Normalformer Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

5 Outline 1 Brugere og Sikkerhed 2 Kort evaluering 3 Normalformer 4 SQL Opgaver Fly og piloter Topsælgere 1 ud af 10 Schedulering Gennemsnitlig dage imellem salg Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

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

7 Brugere Der er to niveauer af sikkerhed i databaser 1 Kan brugeren få adgang til at logge ind på systemet? 2 Har brugeren tilladelse til at læse/skrive etc. i den aktuelle database? Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

8 Brugere Der er to niveauer af sikkerhed i databaser 1 Kan brugeren få adgang til at logge ind på systemet? 2 Har brugeren tilladelse til at læse/skrive etc. i den aktuelle database? Adgang til systemet: pg hba.conf I filen pg hba.conf defineres hvordan en bruger authentikeres på systemet, alt efter hvorfra han kontakter systemet: Lokalt fra samme maskine, via netværk etc. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

9 pg hba.conf Format til authentikering local database user auth-method host database user address auth-method host database user IP-address IP-mask auth-method... Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

10 pg hba.conf Format til authentikering local database user auth-method host database user address auth-method host database user IP-address IP-mask auth-method... local Vil sige at der forbindes fra samme maskine (via unix-sockets) Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

11 pg hba.conf Format til authentikering local database user auth-method host database user address auth-method host database user IP-address IP-mask auth-method... local Vil sige at der forbindes fra samme maskine (via unix-sockets) host Forbindelse via TCP/IP. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

12 pg hba.conf Format til authentikering local database user auth-method host database user address auth-method host database user IP-address IP-mask auth-method... local Vil sige at der forbindes fra samme maskine (via unix-sockets) host Forbindelse via TCP/IP. database Den/de databaser brugeren kan forbinde til. all angives hvis det er alle, flere kan angives kommasepareret. sameuser angiver at brugeren må forbinde til databasen med samme navn som brugeren. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

13 pg hba.conf Format til authentikering local database user auth-method host database user address auth-method host database user IP-address IP-mask auth-method... local Vil sige at der forbindes fra samme maskine (via unix-sockets) host Forbindelse via TCP/IP. database Den/de databaser brugeren kan forbinde til. all angives hvis det er alle, flere kan angives kommasepareret. sameuser angiver at brugeren må forbinde til databasen med samme navn som brugeren. user Brugernavn til adgang (all kan også anvendes) Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

14 pg hba.conf Format til authentikering local database user auth-method host database user address auth-method host database user IP-address IP-mask auth-method... local Vil sige at der forbindes fra samme maskine (via unix-sockets) host Forbindelse via TCP/IP. database Den/de databaser brugeren kan forbinde til. all angives hvis det er alle, flere kan angives kommasepareret. sameuser angiver at brugeren må forbinde til databasen med samme navn som brugeren. user Brugernavn til adgang (all kan også anvendes) address host navn, IP range, eller en af all, samehost, samenet. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

15 pg hba.conf Format til authentikering local database user auth-method host database user address auth-method host database user IP-address IP-mask auth-method... local Vil sige at der forbindes fra samme maskine (via unix-sockets) host Forbindelse via TCP/IP. database Den/de databaser brugeren kan forbinde til. all angives hvis det er alle, flere kan angives kommasepareret. sameuser angiver at brugeren må forbinde til databasen med samme navn som brugeren. user Brugernavn til adgang (all kan også anvendes) address host navn, IP range, eller en af all, samehost, samenet. auth-method Metode til authentikering: trust, reject, md5, password, peer, etc. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

16 Database Roles For at kunne logge ind, skal man have en bruger, med rettighed LOGIN. Rettigheder styres typisk ved hjælp af ROLES, der kan tildeles flere brugere. En bruger og en role er ret ens. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

17 Database Roles For at kunne logge ind, skal man have en bruger, med rettighed LOGIN. Rettigheder styres typisk ved hjælp af ROLES, der kan tildeles flere brugere. En bruger og en role er ret ens. CREATE ROLE name [parametre]; DROP ROLE name; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

18 Database Roles For at kunne logge ind, skal man have en bruger, med rettighed LOGIN. Rettigheder styres typisk ved hjælp af ROLES, der kan tildeles flere brugere. En bruger og en role er ret ens. CREATE ROLE name [parametre]; DROP ROLE name; Fra kommandolinien (ikke i psql) createuser name dropuser name Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

19 Database Roles For at kunne logge ind, skal man have en bruger, med rettighed LOGIN. Rettigheder styres typisk ved hjælp af ROLES, der kan tildeles flere brugere. En bruger og en role er ret ens. CREATE ROLE name [parametre]; DROP ROLE name; Fra kommandolinien (ikke i psql) createuser name dropuser name du i psql viser eksisterende roles Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

20 Database Roles Nedenstående er ækvivalente Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

21 Database Roles Nedenstående er ækvivalente CREATE ROLE name LOGIN; CREATE USER name; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

22 Database Roles Nedenstående er ækvivalente CREATE ROLE name LOGIN; CREATE USER name; Andre typer af roller SUPERUSER CREATEDB CREATEROLE PASSWORD Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

23 GRANT/REVOKE Rettigheder tildeles/fjernes med henholdsvis GRANT og REVOKE. De forskellige rettigheder samles typisk i rollerne Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

24 GRANT/REVOKE Rettigheder tildeles/fjernes med henholdsvis GRANT og REVOKE. De forskellige rettigheder samles typisk i rollerne GRANT group role TO role1,... ; REVOKE group role FROM role1,... ; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

25 GRANT/REVOKE De forskellige rettigheder SELECT INSERT UPDATE DELETE TRUNCATE REFERENCES TRIGGER ALL PRIVILEGES Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

26 GRANT/REVOKE De forskellige rettigheder SELECT INSERT UPDATE DELETE TRUNCATE REFERENCES TRIGGER ALL PRIVILEGES GRANT ALL PRIVILEGES ON mydatabase TO jacob; GRANT SELECT TO adam ; GRANT SELECT,INSERT,UPDATE,DELETE,REFERENCES TO pia ; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

27 Sikkerhed Hvis ikke en bruger eksplicit har fået lov, kan han ikke læse/tilgå data. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

28 Sikkerhed Hvis ikke en bruger eksplicit har fået lov, kan han ikke læse/tilgå data. VIEW s kan være nyttige til at styre hvad en bruger må læse, ved at filtrere uønskede kolonner fra. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

29 Sikkerhed Hvis ikke en bruger eksplicit har fået lov, kan han ikke læse/tilgå data. VIEW s kan være nyttige til at styre hvad en bruger må læse, ved at filtrere uønskede kolonner fra. Bemærk at der er public Schema som default (namespace), hvilket åbner op for huller. (Kan nemt fjernes, og anbefales fjernet for portabilitet, da det ikke er en del af SQL standarden.) Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

30 Sikkerhed Hvis ikke en bruger eksplicit har fået lov, kan han ikke læse/tilgå data. VIEW s kan være nyttige til at styre hvad en bruger må læse, ved at filtrere uønskede kolonner fra. Bemærk at der er public Schema som default (namespace), hvilket åbner op for huller. (Kan nemt fjernes, og anbefales fjernet for portabilitet, da det ikke er en del af SQL standarden.) Schema definerer også rækkefølgen DBMS leder efter tabeller. Så det er muligt at have flere tabeller med samme navne i forskellige databaser. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

31 Kort evaluering Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

32 Kort evaluering Noter for dig selv følgende (5 min.) 1 Find 3 gode ting ved databasekurset, der ikke skal laves om. 2 Find 3 ting der kunne gøre databasekurset bedre, hvis det havde været anderledes. 3 Er kurset let/svært i forhold til andre kurser? Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

33 Kort evaluering Noter for dig selv følgende (5 min.) 1 Find 3 gode ting ved databasekurset, der ikke skal laves om. 2 Find 3 ting der kunne gøre databasekurset bedre, hvis det havde været anderledes. 3 Er kurset let/svært i forhold til andre kurser? Dan grupper med 4 personer i hver Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

34 Kort evaluering Noter for dig selv følgende (5 min.) 1 Find 3 gode ting ved databasekurset, der ikke skal laves om. 2 Find 3 ting der kunne gøre databasekurset bedre, hvis det havde været anderledes. 3 Er kurset let/svært i forhold til andre kurser? Dan grupper med 4 personer i hver Brug 10 min. i grupperne Diskuter ovenstående i gruppen, og bliv enige om de 3-4 vigtigste punkter i de første to spørgsmål, og en fælles vurdering af det sidste spørgsmål. Svarene skal afleveres på papir eller på mail (jamik@imada.sdu.dk) når øvelsen er slut. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

35 Opgave med normalformer Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

36 Opgave med normalformer Betragt følgende relation SalgsId Sælger Nummerplade Model Afdeling 42 Bent Hansen TX Opel Bolbro 53 Jørgen Post KT Mazda Dalum 87 Bent Hansen HW Mazda Bolbro 99 Karl Jensen ML Toyota Bolbro Med Functional dependencies SalgsId Sælger Nummerplade Model Afdeling Sælger Afdeling Nummerplade Model Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

37 Opgave med normalformer Betragt følgende relation SalgsId Sælger Nummerplade Model Afdeling 42 Bent Hansen TX Opel Bolbro 53 Jørgen Post KT Mazda Dalum 87 Bent Hansen HW Mazda Bolbro 99 Karl Jensen ML Toyota Bolbro Med Functional dependencies SalgsId Sælger Nummerplade Model Afdeling Sælger Afdeling Nummerplade Model Dekomposer til BCNF Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

38 Opgave med normalformer Betragt følgende relation SalgsId Sælger Nummerplade Model Afdeling 42 Bent Hansen TX Opel Bolbro 53 Jørgen Post KT Mazda Dalum 87 Bent Hansen HW Mazda Bolbro 99 Karl Jensen ML Toyota Bolbro Med Functional dependencies SalgsId Sælger Nummerplade Model Afdeling Sælger Afdeling Nummerplade Model Dekomposer til BCNF Angiv instancer af de dekomposerede relationer, der når de joines giver ovenstående instans. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

39 Opgave med normalformer Betragt følgende relation SalgsId Sælger Nummerplade Model Afdeling 42 Bent Hansen TX Opel Bolbro 53 Jørgen Post KT Mazda Dalum 87 Bent Hansen HW Mazda Bolbro 99 Karl Jensen ML Toyota Bolbro Med Functional dependencies SalgsId Sælger Nummerplade Model Afdeling Sælger Afdeling Nummerplade Model Dekomposer til BCNF Angiv instancer af de dekomposerede relationer, der når de joines giver ovenstående instans. Giv et eksempel på en update anomaly der er blevet elimineret Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

40 Opgave med normalformer Den originale SalgsId Sælger Nummerplade Model Afdeling 42 Bent Hansen TX Opel Bolbro 53 Jørgen Post KT Mazda Dalum 87 Bent Hansen HW Mazda Bolbro 99 Karl Jensen ML Toyota Bolbro De dekomposerede relationer SalgsId Sælger Nummerplade 42 Bent Hansen TX Jørgen Post KT Bent Hansen HW Karl Jensen ML Sælger Bent Hansen Jørgen Post Karl Jensen Afdeling Bolbro Dalum Bolbro Nummerplade TX KT HW ML Model Opel Mazda Mazda Toyota Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

41 Opgave med normalformer Den originale SalgsId Sælger Nummerplade Model Afdeling 42 Bent Hansen TX Opel Bolbro 53 Jørgen Post KT Mazda Dalum 87 Bent Hansen HW Mazda Bolbro 99 Karl Jensen ML Toyota Bolbro Update anomaly der ikke kan ske: SalgsId Sælger Nummerplade Model Afdeling 42 Bent Hansen TX Opel Bolbro 53 Jørgen Post KT Mazda Dalum 87 Bent Hansen HW Mazda Dalum 99 Karl Jensen ML Toyota Bolbro Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

42 SQL Opgaver Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

43 Fly og piloter CREATE TABLE Fly ( id INTEGER PRIMARY KEY, model VARCHAR(20) ); CREATE TABLE Tilladelse ( pilotid INTEGER, fly INTEGER, PRIMARY KEY (pilotid,fly), FOREIGN KEY (fly) REFERENCES Fly(id) ); Hvem kan flyve alle de forskellige fly? Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

44 Fly og piloter INSERT INTO Fly VALUES (1, Boing 404 ),(2, Dash 8 ),(3, Airbus ); INSERT INTO Tilladelse VALUES (1,1), (1,2), (1,3), (2,1),(2,3),(3,2); Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

45 Fly og piloter INSERT INTO Fly VALUES (1, Boing 404 ),(2, Dash 8 ),(3, Airbus ); INSERT INTO Tilladelse VALUES (1,1), (1,2), (1,3), (2,1),(2,3),(3,2); SELECT T.pilotid FROM Tilladelse T INNER JOIN Fly F ON T.fly = F.id GROUP BY T.pilotid HAVING COUNT(T.fly) = (SELECT COUNT(*) FROM Fly); Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

46 Topsælgere CREATE TABLE Sælgerdata ( distrikt INTEGER NOT NULL, sælger VARCHAR(20) NOT NULL, salgsid INTEGER NOT NULL, beløb DECIMAL(5,2) ); Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

47 Topsælgere CREATE TABLE Sælgerdata ( distrikt INTEGER NOT NULL, sælger VARCHAR(20) NOT NULL, salgsid INTEGER NOT NULL, beløb DECIMAL(5,2) ); De tre største salg i hvert distrikt? Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

48 Topsælgere CREATE TABLE Sælgerdata ( distrikt INTEGER NOT NULL, sælger VARCHAR(20) NOT NULL, salgsid INTEGER NOT NULL, beløb DECIMAL(5,2) ); De tre største salg i hvert distrikt? De tre største sælgere i hvert distrikt? Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

49 Topsælgere INSERT INTO Sælgerdata VALUES (1, Curly, 5, 3.00),(1, Harpo, 11, 4.00), (1, Larry, 1, 50.00),(1, Larry, 2, 50.00), (1, Larry, 3, 50.00),(1, Moe, 4, 5.00), (2, Dick, 8, 5.00),(2, Fred, 7, 5.00), (2, Harry, 6, 5.00),(2, Tom, 7, 5.00), (3, Irving, 10, 5.00),(3, Melvin, 9, 7.00), (4, Jenny, 15, 20.00),(4, Jessie, 16, 10.00), (4, Mary, 12, 50.00),(4, Oprah, 14, 30.00), (4, Sally, 13, 40.00); Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

50 Topsælgere De tre største salg i hvert distrikt? Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

51 Topsælgere De tre største salg i hvert distrikt? SELECT * FROM Sælgerdata S1 WHERE beløb >= ( SELECT MIN(beløb) FROM Sælgerdata S2 WHERE S1.distrikt = S2.distrikt AND S1.beløb <= S2.beløb HAVING COUNT(*) <= 3) ORDER BY distrikt, sælger, salgsid, beløb; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

52 Topsælgere De tre største sælgere i hvert distrikt? Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

53 Topsælgere De tre største sælgere i hvert distrikt? SELECT DISTINCT distrikt, sælger FROM Sælgerdata S1 WHERE beløb <= ( SELECT MAX(S2.beløb) FROM Sælgerdata S2 WHERE S1.distrikt = S2.distrikt AND S1.beløb <= S2.beløb HAVING COUNT(DISTINCT beløb) <= 3) ORDER BY distrikt, sælger; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

54 1 ud af 10 Rækker med kun 1 ikke-nul værdi? Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

55 1 ud af 10 Rækker med kun 1 ikke-nul værdi? CREATE TABLE BadDesign ( key INTEGER NOT NULL PRIMARY KEY, v1 INTEGER NOT NULL, v2 INTEGER NOT NULL, v3 INTEGER NOT NULL, v4 INTEGER NOT NULL, v5 INTEGER NOT NULL, v6 INTEGER NOT NULL, v7 INTEGER NOT NULL, v8 INTEGER NOT NULL, v9 INTEGER NOT NULL, v10 INTEGER NOT NULL ); Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

56 1 ud af 10 Hint Funktionen sign(x) returnerer -1,0 eller 1, alt efter om x er negativ, nul eller positiv. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

57 1 ud af 10 Hint Funktionen sign(x) returnerer -1,0 eller 1, alt efter om x er negativ, nul eller positiv. INSERT INTO BadDesign VALUES (1,0,0,0,0,0,1,2,0,0,0), (2,0,0,1,0,0,1,2,0,0,0), (3,0,0,1,0,0,1,2,0,0,0), (4,0,1,0,0,0,1,0,0,0,0), (5,0,0,4,0,0,1,0,0,0,0), (6,0,0,0,0,0,0,0,1,0,0), (7,0,0,0,0,0,0,0,0,0,0); Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

58 1 ud af 10 SELECT key FROM BadDesign WHERE sign(v1) + sign(v2) + sign(v3) + sign(v4) + sign(v5) + sign(v6) + sign(v7) + sign(v8) + sign(v9) + sign(v10) = 1; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

59 1 ud af 10 SELECT key FROM BadDesign WHERE sign(v1) + sign(v2) + sign(v3) + sign(v4) + sign(v5) + sign(v6) + sign(v7) + sign(v8) + sign(v9) + sign(v10) = 1; Design problem Det er tydeligvis et forsøg på at modellere et array i en række i databasen! Det kan (og bør) gøres pænere. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

60 1 ud af 10 SELECT key FROM BadDesign WHERE sign(v1) + sign(v2) + sign(v3) + sign(v4) + sign(v5) + sign(v6) + sign(v7) + sign(v8) + sign(v9) + sign(v10) = 1; Design problem Det er tydeligvis et forsøg på at modellere et array i en række i databasen! Det kan (og bør) gøres pænere. CREATE TABLE BetterDesign ( key INTEGER NOT NULL, i INTEGER NOT NULL CHECK(i BETWEEN 1 AND 10), v INTEGER NOT NULL, PRIMARY KEY (key,i) ); Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

61 1 ud af 10 INSERT INTO BetterDesign VALUES (1,5,1),(1,6,2), (2,3,1),(2,6,1),(2,7,2), (3,3,1),(3,6,1),(3,7,2), (4,2,1),(4,6,1), (5,3,4),(5,6,1), (6,8,1); Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

62 1 ud af 10 INSERT INTO BetterDesign VALUES (1,5,1),(1,6,2), (2,3,1),(2,6,1),(2,7,2), (3,3,1),(3,6,1),(3,7,2), (4,2,1),(4,6,1), (5,3,4),(5,6,1), (6,8,1); SELECT key FROM BetterDesign WHERE v <> 0 GROUP BY key HAVING COUNT(*) = 1; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

63 1 ud af 10 CREATE VIEW RewriteDesign AS SELECT key, 1, v1 AS v FROM BadDesign UNION SELECT key, 2, v2 AS v FROM BadDesign UNION... SELECT key, 9, v9 AS v FROM BadDesign UNION SELECT key, 10, v10 AS v FROM BadDesign; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

64 1 ud af 10 CREATE VIEW RewriteDesign AS SELECT key, 1, v1 AS v FROM BadDesign UNION SELECT key, 2, v2 AS v FROM BadDesign UNION... SELECT key, 9, v9 AS v FROM BadDesign UNION SELECT key, 10, v10 AS v FROM BadDesign; SELECT key FROM RewriteDesign WHERE v <> 0 GROUP BY key HAVING COUNT(*) = 1; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

65 Schedulering Ordre som samlet række, for en angivet kode? Status: 1=processeres, 2=færdig, 3=bekræftet Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

66 Schedulering Ordre som samlet række, for en angivet kode? Status: 1=processeres, 2=færdig, 3=bekræftet CREATE TABLE Schedulering ( shop CHAR(3) NOT NULL, ordre CHAR(10) NOT NULL, status SMALLINT NOT NULL CHECK( status IN (1,2,3)), kode CHAR(2) NOT NULL, dato DATE ); Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

67 Schedulering Ordre som samlet række, for en angivet kode? Status: 1=processeres, 2=færdig, 3=bekræftet CREATE TABLE Schedulering ( shop CHAR(3) NOT NULL, ordre CHAR(10) NOT NULL, status SMALLINT NOT NULL CHECK( status IN (1,2,3)), kode CHAR(2) NOT NULL, dato DATE ); Ønsker en oversigt over hver ordre, på formen ordre, dato for processeres, dato for færdig og dato for bekræftet, dvs: (ordre, processeres, færdig, bekræftet) med typerne (CHAR(10), DATE, DATE, DATE) Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

68 Schedulering INSERT INTO Schedulering VALUES ( 002, , 1, 01, ), ( 002, , 2, 01, ), ( 002, , 3, 01, ), ( 002, , 1, 01, ), ( 002, , 2, 01, ), ( 002, , 3, 01, NULL); Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

69 Schedulering INSERT INTO Schedulering VALUES ( 002, , 1, 01, ), ( 002, , 2, 01, ), ( 002, , 3, 01, ), ( 002, , 1, 01, ), ( 002, , 2, 01, ), ( 002, , 3, 01, NULL); Ønsket output: ordre processeres færdig bekræftet Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

70 Schedulering - Løsning 1 Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

71 Schedulering - Løsning 1 SELECT DISTINCT S.ordre, ( SELECT dato FROM Schedulering S1 WHERE S1.status = 1 AND S.ordre = S1.ordre ) AS processeres,( SELECT dato FROM Schedulering S2 WHERE S2.status = 2 AND S.ordre = S2.ordre ) AS færdig,( SELECT dato FROM Schedulering S3 WHERE S3.status = 3 AND S.ordre = S3.ordre ) AS bekræftet FROM Schedulering S WHERE kode = 01 ; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

72 Schedulering - Løsning 2 Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

73 Schedulering - Løsning 2 SELECT DISTINCT S1.ordre, S2.dato AS processeres, S3.dato AS færdig, S4.dato AS bekræftet FROM Schedulering S1 INNER JOIN Schedulering S2 ON S1.ordre = S2.ordre INNER JOIN Schedulering S3 ON S2.ordre = S3.ordre INNER JOIN Schedulering S4 ON S3.ordre = S4.ordre WHERE S1.kode = 01 AND S2.status = 1 AND S3.status = 2 AND S4.status = 3; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

74 Schedulering - Løsning 3 Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

75 Schedulering - Løsning 3 CREATE VIEW Arbejde (ordre, processeres, færdig, bekræftet) AS SELECT S1.ordre, S1.dato, NULL:: DATE, NULL:: DATE FROM Schedulering S1 WHERE S1.status = 1 UNION SELECT S2.ordre, NULL,S2.dato, NULL FROM Schedulering S2 WHERE S2.status = 2 UNION SELECT S3.ordre, NULL, NULL, S3.dato FROM Schedulering S3 WHERE S3.status = 3; SELECT ordre, MAX(processeres), MAX(færdig), MAX(bekræftet) FROM Arbejde GROUP BY ordre; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

76 Gennemsnitlig dage imellem salg Hvor mange dage går der i gennemsnit mellem en sælgers salg? Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

77 Gennemsnitlig dage imellem salg Hvor mange dage går der i gennemsnit mellem en sælgers salg? CREATE TABLE Salg ( sælger VARCHAR(10) NOT NULL, salgsdato DATE NOT NULL, PRIMARY KEY (sælger, salgsdato) ); Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

78 Gennemsnitlig dage imellem salg INSERT INTO Salg VALUES ( Fred, ), ( Mary, ), ( Bill, ), ( Fred, ), ( Bill, ), ( Bill, ), ( Bill, ), ( Bill, ), ( Bill, ), ( Bill, ), ( Fred, ), ( Mary, ); Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

79 Løsning 1 (med AVG) Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

80 Løsning 1 (med AVG) CREATE VIEW Salgspar (sælger, efterfølgende, salgsdato) AS SELECT S1.sælger, S1.salgsdato, ( SELECT MAX(S2.salgsdato) FROM Salg S2 WHERE S2.salgsdato < S1.salgsdato AND S2.sælger = S1.sælger) FROM Salg S1; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

81 Løsning 1 (med AVG) CREATE VIEW Salgspar (sælger, efterfølgende, salgsdato) AS SELECT S1.sælger, S1.salgsdato, ( SELECT MAX(S2.salgsdato) FROM Salg S2 WHERE S2.salgsdato < S1.salgsdato AND S2.sælger = S1.sælger) FROM Salg S1; CREATE VIEW DageImellem (sælger, mellemrum) AS SELECT sælger, (efterfølgende salgsdato) FROM Salgspar; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

82 Løsning 1 (med AVG) CREATE VIEW Salgspar (sælger, efterfølgende, salgsdato) AS SELECT S1.sælger, S1.salgsdato, ( SELECT MAX(S2.salgsdato) FROM Salg S2 WHERE S2.salgsdato < S1.salgsdato AND S2.sælger = S1.sælger) FROM Salg S1; CREATE VIEW DageImellem (sælger, mellemrum) AS SELECT sælger, (efterfølgende salgsdato) FROM Salgspar; SELECT sælger, AVG(mellemrum) FROM DageImellem GROUP BY sælger; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

83 Løsning 2 Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

84 Løsning 2 SELECT sælger, (MAX(salgsdato) MIN(salgsdato)) / (COUNT(*) 1) FROM Salg GROUP BY sælger HAVING COUNT(*) > 1; Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

85 Tak for denne gang Spørgsmål? Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april / 36

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

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

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

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

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

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

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

Databaser Obligatorisk opgave 1

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

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

Databaser Obligatorisk opgave 2 Vejledende løsning

Databaser Obligatorisk opgave 2 Vejledende løsning University of Southern Denmark Department of Mathematics and Computer Science Databaser Obligatorisk opgave 2 Vejledende løsning Afleveres senest: Søndag d. 5. maj kl 23.59 Spilleregler Denne obligatoriske

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

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

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

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

DOCUMENTATION FULLY DRESSED USE-CASE. 29. oktober 2012 [ TEMA PERSISTENS DOKUMENTATION] Use-case: Process Order

DOCUMENTATION FULLY DRESSED USE-CASE. 29. oktober 2012 [ TEMA PERSISTENS DOKUMENTATION] Use-case: Process Order DOCUMENTATION FULLY DRESSED USE-CASE Use-case: Process Order Omfang og niveau: Dette omhandler en ordre der går gennem systemet Primær aktør: Sælger Pre betingelser: At der ikke er registret kunder Post

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

Obligatorisk opgave 2. SQL, relationel algebra og relationel kalkyle

Obligatorisk opgave 2. SQL, relationel algebra og relationel kalkyle DM26 Obligatorisk opgave 2 SQL, relationel algebra og relationel kalkyle Jacob Christiansen 130282 moffe42 Thomas Duerlund 040980 duerlund Side 1 af 9 Opgave 1: Formål: Ud fra en database omhandlende en

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

(fig.1. Eksempel på en almindelig entity)

(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

Læs mere

Projekt 1 Database. Cphbusiness Lyngby Multimediedesigner, 3. semester mul-a12e, gruppe 1

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

Læs mere

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Der findes en tilsvarende artikel med

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

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

Jayne Alice Jensen cph-jj208@cphbusiness.dk [Link til portfolio]

Jayne Alice Jensen cph-jj208@cphbusiness.dk [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:

Læs mere

Opsætning af Oracle Designer 10g repositorie

Opsætning af Oracle Designer 10g repositorie Opsætning af Oracle Designer 10g repositorie Dette dokument beskriver hvordan man opsætter det repositorie, som Oracle Designer gemmer sine data i. Udgangspunktet er at man har installeret Oracle Database

Læs mere

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til VB.NET og ADO.NET. Der findes en tilsvarende artikel

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

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

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

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

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online. Denne guide er oprindeligt udgivet på Eksperten.dk Hvem er online? Online script, som tager højde for at der kan være flere personer, som har den samme IP-adresse. Scriptet viser hvor lang tid brugeren

Læs mere

Trin 1 INSERT INTO Debitor (DebitorNr, KundeKategori, KreditMax, SidstRykket, Sælger ) VALUES (20121, 10, 40000, NULL, "Bjarne Larsen");

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

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

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

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

Relationel Algebra og SQL

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

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

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

Ø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

3. SEMESTER 2. PROJECT MULB Gruppe 1. 20. september 2015

3. SEMESTER 2. PROJECT MULB Gruppe 1. 20. september 2015 PROJECT DATABASE 3. SEMESTER 2. PROJECT MULB Gruppe 1. 20. september 2015 Ved at underskrive dette dokument bekræfter vi, at det indsendte materiale alt sammen er vores eget materiale og arbejde. Andreas

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

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

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

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

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

Databasesystemer fra forskellige synsvinkler

Databasesystemer fra forskellige synsvinkler Databasesystemer fra forskellige synsvinkler Kim Skak Larsen kslarsen@imada.sdu.dk IMADA DM534 Introduktion til datalogi, 8/10 2015 p.1/60 Oversigt Introduktion Del 1: en designers synsvinkel Del 2: en

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

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

Projekt 1 - Database. Cphbusiness Lyngby Multimediedesigner, 3. semester. MulB13e, gruppe 4

Projekt 1 - Database. Cphbusiness Lyngby Multimediedesigner, 3. semester. MulB13e, gruppe 4 Cphbusiness Lyngby Multimediedesigner, 3. semester MulB13e, gruppe 4 September 2014 http://www.designduck.dk/cph/trorodvin create table costumers ( cno INT(4) Primary key AUTO_INCREMENT, cname VARCHAR(30)

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

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

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

1. Indholdsfortegnelse

1. Indholdsfortegnelse 1. Indholdsfortegnelse 1. Indholdsfortegnelse 1. Indholdsfortegnelse... 1 2. Indledning... 3 3. Analyse... 4 3.1. Databasedesign... 5 3.1.1. Hvilke data... 5 3.1.2. Standard spørgsmål... 7 3.1.3. Primærnøgler...

Læs mere

SQL Server 2008 Spatiale eksempler. Plan & Miljø, GIS

SQL Server 2008 Spatiale eksempler. Plan & Miljø, GIS SQL Server 2008 Spatiale eksempler Plan & Miljø, GIS Stråtækte bygninger SQL script udtræk og geokodning af stråtækte bygninger fra BBR. Geokodede bygninger er en forudsætning. NB! Frederikssund Kommune

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

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

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

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

Projekt titel. Projekt navn. Gruppe medlemmer. Klasse/Gruppenummer. Databaseprojekt 1. Ferrari

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

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

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen. Copenhagen Business Academy Multimediedesigner 3. semester - 1. projekt, september 2014 Gruppe 1 - MulA Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen. Study: Multimedia Design Project:

Læs mere

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1 IBM Network Station Manager esuite 1.5 / NSM Integration IBM Network Computer Division tdc - 02/08/99 lotusnsm.prz Page 1 New esuite Settings in NSM The Lotus esuite Workplace administration option is

Læs mere

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen.

! Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen. Copenhagen Business Academy Multimediedesigner 3. semester - 1. projekt, september 2014 Gruppe 1 - MulA Kia Dahlen. Kamilla Klein, Pia Jensen og Maria Korshøj Andersen. Study: Multimedia Design Project:

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

Air Crash Booking System

Air Crash Booking System Air Crash Booking System Eksamensopgave i Databaser (ddb), E06 Vejleder: Louis Salvail Afleveret 27. oktober 2006 af: Jens Gram Pedersen, 20041039, mail@jensgram.dk 28 nummererede sider I N D H O L D S

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

Løs labyrinten ved at tegne en streg mellem de to mørke felter.

Løs labyrinten ved at tegne en streg mellem de to mørke felter. Navn: Klasse: Materiale ID: MAZ.156.1.1.da Navn: Klasse: Materiale ID: MAZ.156.2.1.da Navn: Klasse: Materiale ID: MAZ.156.3.1.da Navn: Klasse: Materiale ID: MAZ.156.4.1.da Navn: Klasse: Materiale ID: MAZ.156.5.1.da

Læs mere

Hjælp katten med at finde hen til musen.

Hjælp katten med at finde hen til musen. Navn: Klasse: Materiale ID: MAZ.214.1.2.da Navn: Klasse: Materiale ID: MAZ.214.2.2.da Navn: Klasse: Materiale ID: MAZ.214.3.2.da Navn: Klasse: Materiale ID: MAZ.214.4.2.da Navn: Klasse: Materiale ID: MAZ.214.5.2.da

Læs mere

Løs labyrinten ved at tegne en streg mellem de to mørke felter.

Løs labyrinten ved at tegne en streg mellem de to mørke felter. Navn: Klasse: Materiale ID: MAZ.429.1.1.da Navn: Klasse: Materiale ID: MAZ.429.2.1.da Navn: Klasse: Materiale ID: MAZ.429.3.1.da Navn: Klasse: Materiale ID: MAZ.429.4.1.da Navn: Klasse: Materiale ID: MAZ.429.5.1.da

Læs mere

Hjælp kyllingen med at finde hen til sit æg.

Hjælp kyllingen med at finde hen til sit æg. Navn: Klasse: Materiale ID: MAZ.247.1.1.da Lærer: Dato: Klasse: Materiale ID: MAZ.247.1.1.da Navn: Klasse: Materiale ID: MAZ.247.2.1.da Lærer: Dato: Klasse: Materiale ID: MAZ.247.2.1.da Navn: Klasse: Materiale

Læs mere

Loginsystem med PHP4, klasser, sessions og MySQL database

Loginsystem med PHP4, klasser, sessions og MySQL database Denne guide er oprindeligt udgivet på Eksperten.dk Loginsystem med PHP4, klasser, sessions og MySQL database Artiklen indeholder et simpelt loginsystem, der benytter en klasse. Den er med vilje simplificeret,

Læs mere

Bruger Manual PC Valtronics Udendørs Kamera - Windows system

Bruger Manual PC Valtronics Udendørs Kamera - Windows system Bruger Manual PC Valtronics Udendørs Kamera - Windows system Brugervejledning til PC (windows) 1. Installation af kamera Vejledningen er almen for alle Valtronics kameraer, og derfor kan billederne af

Læs mere

PROJEKT 3. The Design Diaries. LINK TIL BLOG: Af Mikkel Borg Svendsen & Sebastian Frank MUL B

PROJEKT 3. The Design Diaries. LINK TIL BLOG:  Af Mikkel Borg Svendsen & Sebastian Frank MUL B PROJEKT 3 The Design Diaries LINK TIL BLOG: http://mbsgraphic.dk/blog/ Af Mikkel Borg Svendsen & Sebastian Frank MUL B 1 INDHOLDS- FORTEGNELSE HVEM ER BLOGGERNE? 3 USE CASE 4 ATTRIBUT TABEL 5 PHP CODE

Læs mere

Opgave 1. Opret de 4 tabeller i FTSFrontend programmet. Indsæt mindst 3 forskellige tabelværdier i kunder, målerstatus, byer og regning..

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,

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

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

Tagwall med Php & MySQL

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

Læs mere

A11: Last Year s Exam

A11: Last Year s Exam A11: Last Year s Exam Agenda Design of Site map and Web- structure (3) Design of data model (1) Design of database transactions (2) Construction of HTML and PHP scripts (3) Exercise 3: Design of Site map

Læs mere

Datalagring og formater

Datalagring og formater Datalagring og formater IT Universitetet i København 4. januar 2011 Eksamenssættet består af 6 opgaver med 15 spørgsmål, fordelt på 11 sider (inklusiv denne side). Det anbefales at læse opgaverne i rækkefølge,

Læs mere

SQL-opgaver 5 løsning

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,

Læs mere

Værktøjer fra værktøjskassen. Søren Breddam, Stevns Kommune

Værktøjer fra værktøjskassen. Søren Breddam, Stevns Kommune Værktøjer fra værktøjskassen Søren Breddam, Stevns Kommune sb@stevns.dk 1stevns kommune Mapbasic i Stevns Kommune Data Kørsel af planlagte opgaver, så data altid er opdaterede. Logfil til overvågning Dagligt

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

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

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

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

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

IIS 8.0 & 8.5 & 10.0 SSL Administration

IIS 8.0 & 8.5 & 10.0 SSL Administration IIS 8.0 & 8.5 & 10.0 SSL Administration Indholdsfortegnelse Introduktion... 3 Generering af CSR... 4 Installation af certifikat bestilt via CSR... 8 Installation af mellemudsteder certifikat... 8 Installation

Læs mere

Integration af Postfix, Courier-imap og MySQL

Integration af Postfix, Courier-imap og MySQL Integration af Postfix, Courier-imap og MySQL Hvem er jeg Michael Rasmussen Udelukkende anvendt GNU/Linux siden 1999 Underviser i systemprogrammering, distribuerede systemer, databaser samt webprogrammering.

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

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Hack of the Month opgave 2

Hack of the Month opgave 2 Hack of the Month opgave 2 www.hackofthemonth.dk Holdet bag www.hackofthemonth.dk: Søren Rasmus (ikke mig) Roninz Stiller hver måned en ny opgave: Applikationssikkerhed Webapplikationssikkerhed Slide 2

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

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