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

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

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

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

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

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

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

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

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

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

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

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

(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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ø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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

! 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

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

! 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

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

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

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

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

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

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

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

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

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

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

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

Projekt: Database. Multimedia Design: Semester 3 - projekt 01. Sabine Larsen cph-sl176@cphbusiness.dk. Anastasia Keller cph-ak186@cphbusiness.

Projekt: Database. Multimedia Design: Semester 3 - projekt 01. Sabine Larsen cph-sl176@cphbusiness.dk. Anastasia Keller cph-ak186@cphbusiness. Anslag: 21284 Multimedia Design: Semester 3 - projekt 01 Projekt: Database Projektperiode: 07. September 20. September 2015 Gruppe nummer: MulB07 Vejledere: Ivan Rosenvinge Frederiksen & Tuje Becher MULA

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

OPC ACCESS HEARTBEAT 1

OPC ACCESS HEARTBEAT 1 OPC Access Heartbeat Dette dokument gennemgår i et kort eksempel, hvordan OPC Access konfigureres til at anvende Heartbeat funktionen til at dokumentere kontinuerlig forbindelse mellem SQL Server og OPC

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

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

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

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

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

Introduktion til OPC Access

Introduktion til OPC Access Introduktion til OPC Access OPC Access anvendes til at kommunikere med jeres produktionsudstyr via OPC. OPC Access kombinerer en SQL Server med OPC, således at jeres produktionsudstyr kobles sammen med

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

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

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

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

Vejledning i visning af udvalgte adresser på Google

Vejledning i visning af udvalgte adresser på Google Vejledning i visning af udvalgte adresser på Google Udarbejdet af Lars P. Beck Side 2 af 19 Indledning Det er den almindelige opfattelse at når vi taler om kort på Internettet, så taler vi om Google Maps.

Læs mere

Web Admin 5.5. Brugsvejledning for User admin. Copyright 2003 Gullestrup.net

Web Admin 5.5. Brugsvejledning for User admin. Copyright 2003 Gullestrup.net Web Admin 5.5 Copyright 2003 Gullestrup.net Log ind på systemet Start med at gå ind på http://mailadmin.gullestrup.net i din browser. Indtast din Email Adresse samt Password, som hører til din konto, tryk

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

Views. Et view er en relation defined ud fra gemte tabeller ( base tables ) og andre views To typer:

Views. Et view er en relation defined ud fra gemte tabeller ( base tables ) og andre views To typer: Views 1 Views Et view er en relation defined ud fra gemte tabeller ( base tables ) og andre views To typer: 1. Virtual = Ikke gemt i databasen; kun definitionen af den 2. Materialized = Date konstrueret

Læs mere

Sporbarhed og Rapportering i Quality Center. Kim Stenbo Nielsen NNIT Application Management Services

Sporbarhed og Rapportering i Quality Center. Kim Stenbo Nielsen NNIT Application Management Services Sporbarhed og Rapportering i Quality Center Kim Stenbo Nielsen NNIT Application Management Services Indhold INTRODUKTION Hvem er jeg Hvad vil jeg fortælle om QC std. rapporteringsfaciliteter EXCEL RAPPORTER

Læs mere

The Design Diaries Project 3 2. Semester. Blog om designprincipper

The Design Diaries Project 3 2. Semester. Blog om designprincipper The Design Diaries Project 3 2. Semester Blog om designprincipper By Lif Neergaard www.lifmediadesign.dk cph-ln175@cphbusiness.dk Mathias Larsen www.nefjam.dk cph-ml414@cphbusiness.dk Ida Christensen www.idamedia.dk

Læs mere

RefWorks Workshop Medicinsk Bibliotek Aalborg Universitetshospital. Oprettelse af konto/log in... 2. RefWorks-databasen... 2

RefWorks Workshop Medicinsk Bibliotek Aalborg Universitetshospital. Oprettelse af konto/log in... 2. RefWorks-databasen... 2 RefWorks vejledning Indhold Oprettelse af konto/log in... 2 RefWorks-databasen... 2 Import af referencer... 2 Pubmed... 3 Embase/Psycinfo/Medline (Ovid)... 4 Cinahl... 5 RefGrab-it... 6 Organisering af

Læs mere

POST IT! Cph Business Academy Multimediedesign 2. Semester flow april Kirstine Marie Rasmussen cph-

POST IT! Cph Business Academy Multimediedesign 2. Semester flow april Kirstine Marie Rasmussen cph- POST IT! Cph Business Academy Multimediedesign 2. Semester flow 3 9. april 2017 Kirstine Marie Rasmussen cph- kr141@cphbusiness.dk Mette Bejder cph- mb458@cphbusiness.dk Link til POST IT http://mbejder.dk/post-

Læs mere

Database optimering - Indeks

Database optimering - Indeks Database optimering - Indeks Alle kender til dette irritations moment, hvor programmet man sidder og arbejder med, bare ikke er hurtigt nok. Selvom det kun drejer sig om få sekunder man sidder og venter,

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

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

Ruko SmartAir. Updater installation

Ruko SmartAir. Updater installation Ruko SmartAir Updater installation Introduktion. Updateren er en speciel enhed som giver os mulighed for at tilføje, læse og skrive funktioner i en offline installation. Med læse og skrive funktionen kan

Læs mere

Bilagsrapport til specialet Flash-light

Bilagsrapport til specialet Flash-light Bilagsrapport til specialet Flash-light Af Filip Nicolaisen og Kasper Storm Afleveret Maj 2006 Vejledere: Mads Rosendahl (Datalogi) Bjørn Laursen (Kommunikation) Indholdsfortegnelse - Bilag Bilag 1. 1

Læs mere

Over- og merarbejde med måneds- og år-til-dato forbrug (Rapport-ID: 71)

Over- og merarbejde med måneds- og år-til-dato forbrug (Rapport-ID: 71) Over- og merarbejde med måneds- og år-til-dato forbrug (Rapport-ID: 71) Indhold 1. Hvad er formålet med rapporten?... 1 2. Overblik over rapporten... 1 3. Den færdige rapport... 2 4. Faste indbyggede filtre

Læs mere

Introduktion til programmering

Introduktion til programmering Introduktion til programmering Databaser Uge 38 L. Ingemann: SQL databaser på nettet, kap -4. Kompendium L. Ingemann: SQL databaser på nettet, kap 6-0, Kompendium Sidste gang Databaser Relationelle databaser

Læs mere

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API. Denne guide er oprindeligt udgivet på Eksperten.dk Brug af MySQL i C++ Denne artikel bygger ovenpå artiklen "MySQL C API" og forklarer hvordan man kan programmere mere objekt orienteret. Den forudsætter

Læs mere