180 likes | 336 Views
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.
E N D
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.
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 …] UNION SELECT * FROM tabel [WHERE betingelse] [GROUP BY …] ORDER BY kolonnenavn;
Union eksempel 1 SELECT * FROM forhandler WHERE postnr =´7500’; Ovenstående resultatsæt resulterer i 1. select
Union eksempel 1 Eksempel: SELECT * FROM forhandler WHERE forhandler=´Hansen’; Ovenstående resultatsæt resulterer i 2. select
Union eksempel 1 SELECT * FROM forhandler WHERE postnr =´7500’; UNION SELECT * FROM forhandler WHERE forhandler =´Hansen’; GROUP BY ordre;
Union med dubletter SELECT * FROM forhandler WHERE postnr =´7500’; UNION ALL SELECT * FROM forhandler 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