Database
Dagens gang Præsentation af 1. projekt Design af en funktionskomponent Design modelkomponent øvelse Database ER diagram, kombinerede forespørgsler (union) og autorisation af brugere (grant, revoke) Database øvelser
ER-diagram Entitets Relationsdiagram anvendes til at beskrive datastrukturen bag systemet. Forskellen i ideen bag et traditionelt ER diagram og et UML klassediagram er meget lille, og ligger mest i at ER diagrammer retter sig specielt mod design af databaser (organisering af data), hvor klassediagrammer både retter sig mod data men også adfærden i forbindelse med disse data. Det er således muligt at opstille et klassediagram, som viser samme informationer som et ER diagram. Populært sagt er et ER diagram en specialisering af et klassediagram selv om ER diagrammer kom først banen.
OO og datamodellering En af de store forskelle mellem OO konceptet og datamodellering er måden relationsforhold, eller i OO - associationer, ses på. I datamodellering bruges nøgler til at oprette konkrete relationsforhold. I OO bruges der referencer. Entiteter implementeres vha. en tabel, kaldet en relation, hvor kolonner er attributter og rækker er record/tupler. Igen sammenholdt med OO, svarer en entitet til en klasse og en tabel med tupler/record svarer til en række instanser altså objekter af en klasse.
ER- diagrammet
Kombinerede forespørgsler SQL giver mulighed at eksekvere flere SELECT-konstruktioner og få returneret data som et resultatsæt. Mulighed for at forenkle komplicerede forespørgsler. Samme struktur på resultatdata fra flere tabeller
Union Syntaks: SELECT * FROM tabel [WHERE betingelse] [GROUP BY …] ORDER BY kolonnenavn;
Union eksempel 1 SELECT * FROM forhandler Id forhandlernavn postnr ordrenr beloeb 1 Hansen 7500 1001 3250 6 Petersen 1050 8000 8 Nielsen 4010 3000 1002 SELECT * FROM forhandler WHERE postnr =´7500’; Ovenstående resultatsæt resulterer i 1. select
Union eksempel 1 Eksempel: SELECT * FROM forhandler Id forhandlernavn postnr ordrenr beloeb 1 Hansen 7500 1001 3250 16 9000 1070 8000 12 8200 4050 3000 1002 SELECT * FROM forhandler WHERE forhandler=´Hansen’; Ovenstående resultatsæt resulterer i 2. select
Union eksempel 1 SELECT * FROM forhandler WHERE postnr =´7500’; UNION WHERE forhandler =´Hansen’; GROUP BY ordre;
Dubletter fra udtræk fjernes Id forhandlernavn postnr ordrenr beloeb 1 Hansen 7500 1001 3250 6 Petersen 1050 8000 8 Nielsen 4010 3000 1002 Id forhandlernavn postnr ordrenr beloeb 1 Hansen 7500 1001 3250 16 9000 1070 8000 12 8200 4050 3000 1002
Og ordnes i ordrenr Id forhandlernavn postnr ordrenr beloeb 1 Hansen 7500 1001 3250 1002 6 Petersen 1050 8000 16 9000 1070 8 Nielsen 4010 3000 12 8200 4050
Union med dubletter SELECT * FROM forhandler WHERE postnr =´7500’; UNION ALL WHERE forhandler =´Hansen’; GROUP BY ordre;
Regler for union Hver forespørgsel skal returnere: Samme kolonner, samme udtryk Kolonner skal komme i samme rækkefølge Datatyper skal være kompatible
Autorisation til database brugere GRANT giver autorisation REVOKE tilbage kalder autorisation Den person der afgiver en grant ordrer skal enten være ”administrative authority” eller ejer af tabellen. Hvis en person der har tildelt andre privilegier, selv får frataget privilegier – da tilbagetrækkes de andre personers privilegier, hvis de er afhængige af d privilegier en første persons tilbagetrukne privilegier.
Grant Syntaks Eksempel GRANT ALL | privilegier ON tabelnavn TO PUBLIC | brugeridentifikationer GRANT SELECT, UPATE ON Kunde TO Peter
REVOKE Syntaks Eksempel REVOKE ALL | privilegier ON tabelnavn TO PUBLIC | brugeridentifikationer REVOKE SELECT, UPATE ON Kunde TO Peter
Opgaver til næste gang Se opgave beskrivelse