Systembeskrivning Sakfrågan
|
|
- Britt-Marie Ingrid Eriksson
- för 5 år sedan
- Visningar:
Transkript
1 KTH Programutvecklingsprojekt, 2D1954 Nada - Institutionen för Numerisk analys och datalogi Systembeskrivning Sakfrågan Amr El-Ghazaly Joakim Andersson John Holmström Jens Modig Carl Drott
2 SYSTEMÖVERSIKT 3 BAKGRUND 3 KLIENT/SERVER-MODELLEN 3 SYSTEMETS STRUKTUR 4 DATABASEN 5 E-POSTSERVER 5 APPLIKATIONSSERVER/WEBBSERVER 5 KLIENTPROGRAMVARA 5 PROGRAMVARA 5 SIDORNAS/ANVÄNDARGRÄNSSNITTETS STRUKTUR 7 SERVLETKLASSERNA OCH DERAS HJÄLPKLASSER 11 PACKAGE ADMIN 11 PACKAGE BASE 11 PACKAGE UTILS 12 JSP-FILERNA 13 BASE 13 ADMIN 13 BILAGA 1 15 DATABASSTRUKTUR 15 BILAGA 2 16 DDL-KOMMANDON FÖR DATABASSTRUKTUREN 16 BILAGA 3 20 STORED PROCEDURES OCH TRIGGERS I DATABASEN 20 2
3 Systemöversikt Bakgrund Systembeskrivningen behandlar ett system som utvecklats på uppdrag av Oskar Rönnberg på Svenska Institutet för Tillämpad Beteendeanalys. Systemet vi har utvecklat ska presentera argument för och emot olika aktuella politiska sakfrågor. Systemet hanterar olika typer av användare med olika rättigheter. När vi valt plattform, programspråk och serverfunktioner så har vi konstant valt enligt dessa kriterier: de ska vara erkända, spridda, säkra och gratis. Vi har använt JSP/Servlets för att implementera webbgränssnittet och tillhörande funktioner med Tomcat som serversystem. För databasfunktionen har vi använt oss av PostgreSQL. Systemet är en trelagerslösning enligt klient/server princip. Klient/Server-modellen Modellen går ut på att en process eller ett program utnyttjar en tjänst som en annan process eller ett annat program tillhandahåller. Den process som efterfrågar tjänsten kallas då klient och den process som tillhandahåller tjänsten kallas server. Klient/server-modellen innebär stora fördelar i distribuerade system. Om klienten vill utnyttja en tjänst skickar den en förfrågan till servern. Klienten behöver inte veta var servern är fysiskt belägen utan det räcker med en adress till servern, denna förfrågan behandlas sedan av något annat program som skickar förfrågan vidare (jmf med posten). En annan fördel med modellen är att flera klienter kan dela en resurs, t ex. en skrivare. I vårat fall används en tunn klient i form av en webbläsare, det innebär att klienten bara används för presentera resultaten från servern, all logik och alla beräkningar sker på serversidan. 3
4 Systemets struktur Systemet är uppbyggt i en trelagersstruktur bestående av följande lager, lagringslagret, logiklagret och presentationslagret. Figur 1: Bild av systemets trelagerstruktur 4
5 Databasen Modulbeskrivning I databasen lagras informationen i olika tabeller. Den databas som används är Postgresql. Det fanns ett par anledningar till att vi valde Postgresql. För det första har medlemmarna i gruppen använt denna förut. Den är också gratis samt väldokumenterad på nätet. Den har kraftfulla funktioner som t ex. Triggers och Stored procedures. Vi valde att lägga en stor del av sqlfrågorna som Stored procedures i databasen som en applikation kan anropa utifrån. Triggers användes för att hålla databasen konsistent vid exempelvis uppdatering av betyg för inlägg. Kommunikationen med databasen sker via jdbc. För databasstruktur se bilaga 1. E-postserver Det behövs också tillgång till en mailserver som stödjer SMTP för att kunna skicka ut lösenorden till nyregistrerade användare. Ska installatören själv sätta upp en sådan rekommenderas ett *nix-system med qmail, som anses säkrare och bättre än det vanligaste alternativet sendmail. Applikationsserver/Webbserver Som applikations- och webbserver används Tomcat. Här körs våra program såsom Connection pool, servlets och jsp. Connection poolen håller ett antal uppkopplingar öppna mot databasen hela tiden och servletklasserna lånar en uppkoppling från poolen vid behov, när servletklassen sedan är klar med uppkopplingen lämnas den tillbaka till poolen. Servletklasserna sköter har hand om logiken i systemet och kommunicerar med jsp-sidor, javabeans och databas. Jsp-sidorna sköter presentationen av data från servletklasserna. Jsp-sidorna skickar också vidare användarinmatningar till servletklasserna. Klientprogramvara Klientprogramvaran är den programvara som användaren använder för att kommunicera med en serverapplikation som ligger på ett annat ställe lokalt eller i ett nätverk (t ex. Internet). För att kommunicera med vårat system används en webbläsare med stöd för javascript som finns förinstallerad i de flesta moderna operativsystem. Programvara Följande programvara ska installeras på server-sidan Postgresql 7.3.x E-postserver t ex. qmail Tomcat 4.x pg73jdbc3.jar, dvs jdbc 3.0 för postgresql 7.3.x JDK 1.4SE Våran programvara 5
6 Om systemet ska användas i en miljö med hög belastning kan man installera IBM's jikes, som erbjuder bättre prestanda än Suns javakompilator. Följande programvara behövs på klientsidan Webbläsare som klarar javascript och css 6
7 Sidornas/Användargränssnittets struktur Vi identifierade fyra olika aktörer. Dessa är besökare, registrerade användare, moderatorer samt administratörer. Alla aktörer har förutom sina specifika funktioner samma möjligheter som de lägre aktörerna har. Här presenteras de användargränssnitt som vi utgått från i jspdesignen. Besökare avser den stora massan som träffar på webbsidan. De tar del av sakfrågorna, röstar för eller emot dem och kan skriva inlägg. Figur 2: Sidstruktur för en anonym användare 7
8 En registrerad användare är en besökare som vill aktivt påverka vilka inlägg som ska visas för andra besökare. Figur 3: Sidstruktur för en inloggad registrerad användare 8
9 Moderatorer har ansvar för att stötande eller olämpliga inlägg tas bort. En moderator blir tilldelad en eller flera sakfrågor att moderera. Figur 4: Sidstruktur för en moderator 9
10 Administratörer hanterar användare och moderatorer och lägger till sakfrågor. Figur 5: Sidstruktur för en administratör 10
11 Servletklasserna och deras hjälpklasser (Se JavaDoc för ytterligare information om dess funktionalitet.) Package admin Funktioner för att administrera innehållet på webbsidan och dess användare, moderatorer och administratörer. Är endast tillgängliga för inloggade, behöriga användare. AddAdmin Servletklassen lägger till en administratörskoppling i databasen till en angiven användare. Används av addadmin.jsp. AddModerator Lägger till en moderatorkoppling till en specificerad användare. Används av addmoderator.jsp. ClearReports Låter en administratör eller en moderator nollställa anmälningsräknaren för ett inlägg så att detta inlägg inte längre finns med bland de inlägg som ska undersökas. PostTopic Används av en administratör för att skapa en ny sakfråga i systemet och databasen. RemoveUser Tar bort en användare ur databasen. Eventuella administratörs- eller moderatorkopplingar tas samtidigt bort, alla inläggsröster försvinner och berörda inlägg får sitt betygsvärde omräknat (via trigger i databasen). Reported Servletklassen tar bort ett inlägg så att det inte visas för besökare på sidan. Sparas i en separat tabell i databasen. ReturnPost Återställer ett tidigare borttaget inlägg. Flyttar tillbaka instansen till inläggstabellen i databasen så att det återigen syns på sidan. UserDisplay Databasbean som används av administratörs-jsp:er. Tillhandahåller att antal funktioner för att få vyer över bland annat användare som finns i systemet. Package base Utgör de standardfunktioner som används av flertalet användare. ChangePass Låter en användare byta ut sitt lösenord. 11
12 Create Lägger till informationen för en ny användare i systemet. Kontrollerar att en för systemet unik adress är angiven, tilldelar ett slumpgenererat lösenord och mailar ut informationen till den specificerade e-postadressen. (För att göra det svårare för en användare att registrera flera konton) Login Kontrollerar att det angivna lösenordet matchar e-postadressen och tar reda på användarens nivå i systemet samt initierar en session och knyter den information som behövs till denna. Post Skapar ett nytt inlägg i databasen, knutet till den önskade sidan i sakfrågan. PostVote Registrerar en röst i databasen för en användare förutsatt att ingen tidigare koppling finns. Report Anmäler ett inlägg så att det kan granskas av administratörer och behöriga moderatorer. Gör detta genom att öka på inläggets anmälningsräknare. TopicVote Registrerar en röst i en sakfråga och/eller hämtar aktuell ställning i omröstningen. Markerar också i en cookie att besökaren röstat i sakfrågan. Skulle det vara en registrerad användare så sparas också ställningstagandet i databasen så att användaren senare kan rösta på inläggen i sakfrågan. Package utils Hjälpklasser och Javabeans som kan användas av samtliga servlets. connectionpool.connectionpoolmanager Tillhandahåller databaskopplingar till servlets och hjälpklasser. Detta utförs med en ConnectionPool som håller ett antal databaskopplingar öppna som andra klasser kan låna. Display Den centrala hjälpklassen för alla jsp's som behöver hämta information ur databasen. Hanterar bland annat all visning av sakfrågor. Mailer En bean som upprättar kontakt med en specificerad SMTP-server och utför kommunikationen som behövs för att skicka e-post. Utilities Omfattande klass med statiska metoder för till exempel olika strängformatteringar, hantering av cookies, hämtning av parametrar, återkommande HTML-kod och maskering av länkar. VoteDisplay Används till röstningen på inlägg för registrerade användare. Hämtar de intressanta värdena ur databasen så de kan presenteras av de berörda jsp-filerna. 12
13 JSP-filerna Base Sajtens standardsidor som inte kräver rättigheter i systemet. index.jsp Utgör sajtens startsida changepass.jsp Tar in information från besökaren så att denna kan byta lösenord error.jsp Anropas när något fel uppstått som inte direkt kan hanteras. login.jsp Specifik sida för att logga in. När inloggning krävs för en aktion så omdirigeras användaren hit för att påvisa detta. Det finns annars en funktion för detta i menyn när en besökare inte är inloggad. logout.jsp Logga ut en användare, inaktiverar den pågående sessionen. post.jsp Tar in text, rubrik och signatur för ett inlägg och förmedlar det till databasen via Postservleten. revoteview.jsp Visar upp de inlägg man redan röstat på, om en användare vill ändra sin röst. viewtopic.jsp Visar upp en specifik sakfråga och de bästa inläggen för båda sidor. voteview.jsp Här ser man alla inlägg i en sakfråga som man inte har röstat på ännu och kan lägga sin röst på dem, varefter de hamnar i revoteview. Admin Alla funktioner som är begränsade till behöriga användare återfinns här. addadmin.jsp Här kan en administratör lägga till en ny administratör utifrån de befintliga användarna i databasen. addmoderator.jsp Låter en administratör koppla en användare eller en moderator med en sakfråga. adminview.jsp 13
14 Här kan en administratör se en förteckning över alla administratörer, ta bort dem och se den information som sparas i databasen. moderatorview.jsp Som ovan fast över alla moderatorer. userview.jsp Samma som ovan men alla vanliga användare. posttopic.jsp Tillåter en administratör att skapa en ny sakfråga och lägga till denna i databasen. removedposts.jsp Här kan administratörer och behöriga moderatorer se en lista över alla borttagna inlägg och om de så önskar återställa dem. reportedposts.jsp Administratörer och moderatorer kan här se alla anmälda inlägg för de sakfrågor som de har rätt att moderera. De kan rensa anmälningar eller ta bort inläggen från besökarnas sidor. 14
15 Bilaga 1 Databasstruktur Databasstruktur för sakfrågan 15
16 Bilaga 2 DDL-kommandon för databasstrukturen DROP DATABASE opinion; CREATE DATABASE opinion WITH ENCODING = 'ISO_8859_9'; CREATE TABLE SAKFRAGA (sakfragaid SERIAL, namn VARCHAR (128) NOT NULL, beskrivning VARCHAR (2048) NOT NULL, skapad TIMESTAMPTZ NOT NULL, antal_for INTEGER NOT NULL, antal_mot INTEGER NOT NULL, PRIMARY KEY (sakfragaid) ); CREATE TABLE ANVANDARE (anvandareid SERIAL, epost VARCHAR (128) NOT NULL, losen VARCHAR(128) NOT NULL, skapad TIMESTAMPTZ NOT NULL, senaste_login TIMESTAMPTZ NOT NULL, UNIQUE (epost), PRIMARY KEY (anvandareid) ); CREATE TABLE INLAGG (inlaggid SERIAL, titel VARCHAR(128) NOT NULL, text VARCHAR(2048) NOT NULL, signatur VARCHAR(128) NOT NULL, sida CHAR(1) NOT NULL, skapad TIMESTAMPTZ NOT NULL, antal_klagomal INTEGER NOT NULL, ip_nummer VARCHAR (128) NOT NULL, summa_roster FLOAT NOT NULL, antal_roster FLOAT NOT NULL, betyg FLOAT NOT NULL, sakfragaid_ref INTEGER NOT NULL, PRIMARY KEY (inlaggid), CONSTRAINT FK_SAKF_INLGG FOREIGN KEY (sakfragaid_ref) REFERENCES SAKFRAGA (sakfragaid) ON DELETE CASCADE ); CREATE TABLE REFUSERAT_INLAGG 16
17 (refuserat_inlaggid SERIAL, titel VARCHAR (128) NOT NULL, text VARCHAR (2048) NOT NULL, signatur VARCHAR (128) NOT NULL, sida CHAR (1) NOT NULL, skapad TIMESTAMPTZ NOT NULL, antal_klagomal INTEGER NOT NULL, ip_nummer VARCHAR (128) NOT NULL, summa_roster FLOAT NOT NULL, antal_roster FLOAT NOT NULL, betyg FLOAT NOT NULL, sakfragaid_ref INTEGER NOT NULL, PRIMARY KEY (refuserat_inlaggid), CONSTRAINT FK_SAKF_REFUS_INLGG FOREIGN KEY (sakfragaid_ref) REFERENCES SAKFRAGA (sakfragaid) ON DELETE CASCADE ); CREATE TABLE ADMINISTRATOR (administratorid SERIAL, namn VARCHAR (128) NOT NULL, anvandareid_ref INTEGER NOT NULL, PRIMARY KEY(administratorID), UNIQUE(anvandareID_REF), CONSTRAINT FK_ANV_ADMIN FOREIGN KEY (anvandareid_ref) REFERENCES ANVANDARE (anvandareid) ON DELETE CASCADE ); CREATE TABLE MODERATOR_SAKFRAGA (moderatorid SERIAL, namn VARCHAR (128) NOT NULL, sakfragaid_ref INTEGER NOT NULL, anvandareid_ref INTEGER NOT NULL, UNIQUE (sakfragaid_ref,anvandareid_ref), PRIMARY KEY(moderatorID), CONSTRAINT FK_SAKFRG_MOD FOREIGN KEY (sakfragaid_ref) REFERENCES SAKFRAGA (sakfragaid) ON DELETE CASCADE, CONSTRAINT FK_ANV_MOD FOREIGN KEY (anvandareid_ref) REFERENCES ANVANDARE (anvandareid) ON DELETE CASCADE 17
18 ); CREATE TABLE STANDPUNKT (standpunktid SERIAL, standpunkt CHAR(1) NOT NULL, anvandareid_ref INTEGER NOT NULL, sakfragaid_ref INTEGER NOT NULL, PRIMARY KEY (standpunktid), UNIQUE(anvandareid_ref,sakfragaid_ref), CONSTRAINT FK_ANV_STAP FOREIGN KEY (anvandareid_ref) REFERENCES ANVANDARE (anvandareid) ON DELETE CASCADE, CONSTRAINT FK_SAKFR_STAP FOREIGN KEY (sakfragaid_ref) REFERENCES SAKFRAGA (sakfragaid) ON DELETE CASCADE ); CREATE TABLE BETYG (betygid SERIAL, varde INTEGER NOT NULL, inlaggid_ref INTEGER NOT NULL, anvandareid_ref INTEGER NOT NULL, UNIQUE(inlaggid_ref,anvandareid_ref), PRIMARY KEY (betygid), CONSTRAINT FK_INLGG_BETG FOREIGN KEY (inlaggid_ref) REFERENCES INLAGG (inlaggid) ON DELETE CASCADE, CONSTRAINT FK_ANVND_BETG FOREIGN KEY (anvandareid_ref) REFERENCES ANVANDARE (anvandareid) ON DELETE CASCADE ); DROP VIEW JA_INLAGG; CREATE VIEW JA_INLAGG AS SELECT * FROM INLAGG WHERE sida = 'y' ORDER BY betyg DESC; DROP VIEW NEJ_INLAGG; CREATE VIEW NEJ_INLAGG AS SELECT * FROM INLAGG WHERE sida = 'n' ORDER BY betyg DESC; 18
19 DROP VIEW GET_USER; CREATE VIEW GET_USER AS SELECT * FROM ANVANDARE WHERE anvandareid NOT IN ((SELECT anvandareid_ref FROM administrator) UNION (SELECT anvandareid_ref FROM moderator_sakfraga)); DROP VIEW GET_MODERATOR; CREATE VIEW GET_MODERATOR AS SELECT moderatorid, namn, sakfragaid_ref, anvandare.* FROM moderator_sakfraga, anvandare WHERE anvandareid_ref=anvandareid; DROP VIEW GET_ADMINISTRATOR; CREATE VIEW GET_ADMINISTRATOR AS SELECT administratorid, namn, anvandare.* FROM administrator, anvandare WHERE anvandareid_ref=anvandareid; 19
20 Bilaga 3 Stored procedures och Triggers i databasen DROP FUNCTION insert_user(text,text); CREATE FUNCTION insert_user(text, text) RETURNS int AS' ep ALIAS FOR $1; pwd ALIAS FOR $2; anvid INT; INSERT INTO anvandare (epost, losen, skapad, senaste_login) VALUES (ep, pwd, ''now'', ''now''); anvid := currval(''anvandare_anvandareid_seq''); return anvid; DROP FUNCTION get_users(); CREATE FUNCTION get_users() RETURNS REFCURSOR AS' marker CURSOR FOR select * from anvandare; OPEN marker; return marker; DROP FUNCTION get_ja_posts(int,int); DROP FUNCTION get_ja_posts(int,int,int); CREATE FUNCTION get_ja_posts(int,int,int) RETURNS REFCURSOR AS' ja_postmarker CURSOR (key int,os int) FOR select * from JA_INLAGG WHERE sakfragaid_ref=$2 limit key OFFSET os; OPEN ja_postmarker($1,$3); return ja_postmarker; DROP FUNCTION get_nej_posts(int,int); DROP FUNCTION get_nej_posts(int,int,int); CREATE FUNCTION get_nej_posts(int,int,int) RETURNS REFCURSOR AS' nej_postmarker CURSOR (key int,os int) FOR select * from NEJ_INLAGG WHERE sakfragaid_ref=$2 limit key OFFSET os; OPEN nej_postmarker($1,$3); 20
21 return nej_postmarker; DROP FUNCTION get_topics(); CREATE FUNCTION get_topics() RETURNS REFCURSOR AS' topicmarker CURSOR FOR SELECT * FROM SAKFRAGA ORDER BY skapad DESC; OPEN topicmarker; return topicmarker; DROP FUNCTION kind_of_user(int); CREATE FUNCTION kind_of_user(int) RETURNS int AS' user_rec RECORD; admin_rec RECORD; mod_rec RECORD; id ALIAS FOR $1; SELECT INTO user_rec anvandareid FROM get_user WHERE anvandareid=id; UPDATE anvandare SET senaste_login=''now'' WHERE anvandareid=id; IF user_rec.anvandareid IS NOT NULL THEN RETURN 0; END IF; SELECT INTO admin_rec anvandareid_ref FROM administrator WHERE anvandareid_ref=id; IF admin_rec.anvandareid_ref IS NOT NULL THEN RETURN 1; END IF; SELECT INTO mod_rec anvandareid_ref FROM moderator_sakfraga WHERE anvandareid_ref=id; IF mod_rec.anvandareid_ref IS NOT NULL THEN RETURN 2; END IF; COMMIT; return -1; 21
22 DROP FUNCTION post(text,text,text,char,text,int); CREATE FUNCTION post(text,text,text,char,text,int) RETURNS int AS' the_titel ALIAS FOR $1; the_text ALIAS FOR $2; the_signatur ALIAS FOR $3; the_sida ALIAS FOR $4; the_ipnum ALIAS FOR $5; the_sakfragaid ALIAS FOR $6; post_id int; INSERT INTO inlagg (titel, text, signatur, sida,skapad,antal_klagomal,ip_nummer, summa_roster,antal_roster,betyg,sakfragaid_ref) VALUES (the_titel,the_text,the_signatur,the_sida,''now'',0,the_ipnum, 0,0,0,the_sakfragaid); post_id := currval(''inlagg_inlaggid_seq''); return post_id; DROP FUNCTION NEXT_TOPIC(int); CREATE FUNCTION NEXT_TOPIC(int) RETURNS REFCURSOR AS' current_topic ALIAS FOR $1; next_markor CURSOR FOR SELECT sakfragaid,namn FROM sakfraga WHERE sakfragaid > current_topic ORDER BY sakfragaid LIMIT 1; OPEN next_markor; RETURN next_markor; DROP FUNCTION PREV_TOPIC(int); CREATE FUNCTION PREV_TOPIC(int) RETURNS REFCURSOR AS' current_topic ALIAS FOR $1; prev_markor CURSOR FOR SELECT sakfragaid,namn FROM sakfraga WHERE sakfragaid < current_topic ORDER BY sakfragaid; OPEN prev_markor; RETURN prev_markor; 22
23 DROP FUNCTION GET_TOPIC(int); CREATE FUNCTION GET_TOPIC(int) RETURNS REFCURSOR AS' topic_id ALIAS FOR $1; topic_marker CURSOR FOR SELECT * FROM sakfraga WHERE sakfragaid=topic_id; OPEN topic_marker; RETURN topic_marker; DROP FUNCTION post_topic(text,text); CREATE FUNCTION post_topic(text,text) RETURNS int AS' the_namn ALIAS FOR $1; the_beskrivning ALIAS FOR $2; topic_id int; INSERT INTO sakfraga (namn, beskrivning, skapad, antal_for, antal_mot) VALUES (the_namn, the_beskrivning, ''now'', 0, 0); topic_id := currval(''sakfraga_sakfragaid_seq''); return topic_id; DROP FUNCTION topic_vote(int,char); CREATE FUNCTION topic_vote(int,char) RETURNS REFCURSOR AS' topic_id ALIAS FOR $1; vote ALIAS FOR $2; topic_vote_marker CURSOR FOR SELECT antal_for,antal_mot FROM sakfraga WHERE sakfragaid=topic_id; IF vote = ''y'' THEN UPDATE sakfraga SET antal_for = (antal_for+1) WHERE sakfragaid = topic_id; END IF; IF vote = ''n'' THEN 23
24 UPDATE sakfraga SET antal_mot = (antal_mot+1) WHERE sakfragaid = topic_id; END IF; OPEN topic_vote_marker; RETURN topic_vote_marker; DROP FUNCTION GET_NO_OF_UNVOTED(int,int); CREATE FUNCTION GET_NO_OF_UNVOTED(int,int) RETURNS int AS' topic_id ALIAS FOR $1; user_id ALIAS FOR $2; number int; side char; SELECT INTO side standpunkt.standpunkt FROM standpunkt WHERE anvandareid_ref=user_id AND sakfragaid_ref=topic_id; SELECT INTO number count(inlaggid) FROM inlagg WHERE sakfragaid_ref=topic_id AND sida=side AND inlaggid NOT IN (SELECT inlaggid from inlagg,betyg WHERE sakfragaid_ref=topic_id AND inlaggid_ref=inlaggid AND anvandareid_ref = user_id); return number; DROP FUNCTION GET_NO_OF_VOTED(int,int); CREATE FUNCTION GET_NO_OF_VOTED(int,int) RETURNS int AS' topic_id ALIAS FOR $1; user_id ALIAS FOR $2; number int; side char; SELECT INTO side standpunkt.standpunkt FROM standpunkt WHERE anvandareid_ref=user_id AND sakfragaid_ref=topic_id; SELECT INTO number count(inlaggid) FROM inlagg WHERE sakfragaid_ref=topic_id AND sida=side AND inlaggid IN (SELECT inlaggid from inlagg,betyg WHERE sakfragaid_ref=topic_id AND inlaggid_ref=inlaggid AND anvandareid_ref = user_id); return number; DROP FUNCTION VOTE_VIEW(int,int); DROP FUNCTION VOTE_VIEW(int,int,int,int); CREATE FUNCTION VOTE_VIEW(int,int,int,int) RETURNS REFCURSOR AS' 24
25 topic_id ALIAS FOR $1; user_id ALIAS FOR $2; no_of_posts ALIAS FOR $3; the_offset ALIAS FOR $4; side char; vote_view_marker CURSOR (key char) FOR SELECT DISTINCT(inlagg.*) FROM inlagg WHERE sakfragaid_ref=topic_id AND sida=key AND inlaggid NOT IN (SELECT inlaggid from inlagg,betyg WHERE sakfragaid_ref=topic_id AND inlaggid_ref=inlaggid AND anvandareid_ref = user_id) ORDER BY betyg DESC LIMIT no_of_posts OFFSET the_offset; SELECT INTO side standpunkt.standpunkt FROM standpunkt WHERE anvandareid_ref=user_id AND sakfragaid_ref=topic_id; IF NOT FOUND THEN RAISE EXCEPTION ''ERROR: EJ VALT SIDA''; END IF; OPEN vote_view_marker(side); RETURN vote_view_marker; DROP FUNCTION RE_VOTE_VIEW(int,int); DROP FUNCTION RE_VOTE_VIEW(int,int,int,int); CREATE FUNCTION RE_VOTE_VIEW(int,int,int,int) RETURNS REFCURSOR AS' topic_id ALIAS FOR $1; user_id ALIAS FOR $2; no_of_posts ALIAS FOR $3; the_offset ALIAS FOR $4; side char; vote_view_marker CURSOR (key char) FOR SELECT DISTINCT(inlagg.*) FROM inlagg WHERE sakfragaid_ref=topic_id AND sida=key AND inlaggid IN (SELECT inlaggid from inlagg,betyg WHERE sakfragaid_ref=topic_id AND inlaggid_ref=inlaggid AND anvandareid_ref = user_id) ORDER BY betyg DESC LIMIT no_of_posts OFFSET the_offset; SELECT INTO side standpunkt.standpunkt FROM standpunkt WHERE anvandareid_ref=user_id AND sakfragaid_ref=topic_id; IF NOT FOUND THEN RAISE EXCEPTION ''ERROR: EJ VALT SIDA''; END IF; OPEN vote_view_marker(side); 25
26 RETURN vote_view_marker; DROP FUNCTION POST_VOTE(int,int,int); CREATE FUNCTION POST_VOTE(int,int,int) RETURNS int AS' value ALIAS FOR $1; post_id ALIAS FOR $2; user_id ALIAS FOR $3; INSERT INTO betyg (varde,inlaggid_ref,anvandareid_ref) VALUES (value,post_id,user_id); RETURN 1; DROP FUNCTION calculate_betyg() CASCADE; CREATE FUNCTION calculate_betyg() RETURNS OPAQUE AS' UPDATE inlagg SET antal_roster=antal_roster+1, summa_roster=summa_roster+new.varde, betyg=(summa_roster+new.varde)/(antal_roster+1) WHERE inlaggid=new.inlaggid_ref; RETURN NEW; DROP TRIGGER calculate_betyg_trigger ON betyg; CREATE TRIGGER calculate_betyg_trigger AFTER INSERT ON betyg FOR EACH ROW EXECUTE PROCEDURE calculate_betyg(); DROP FUNCTION MOVE_POST_TO_REF(int); CREATE FUNCTION MOVE_POST_TO_REF(INT) RETURNS int AS' post_id ALIAS FOR $1; data RECORD; SELECT INTO data * FROM inlagg WHERE inlaggid=post_id; IF NOT FOUND THEN RAISE EXCEPTION ''ERROR: Inlägg finns inte''; END IF; INSERT INTO refuserat_inlagg (titel, text, signatur,sida, skapad, antal_klagomal,ip_nummer,summa_roster,antal_roster,betyg,sakfragaid_ref) VALUES (data.titel, data.text, data.signatur,data.sida, data.skapad, 26
27 data.antal_klagomal,data.ip_nummer,data.summa_roster, data.antal_roster,data.betyg,data.sakfragaid_ref); DELETE FROM inlagg WHERE inlaggid=post_id; RETURN 0; DROP FUNCTION MOVE_REF_TO_POST(int); CREATE FUNCTION MOVE_REF_TO_POST(INT) RETURNS int AS' ref_id ALIAS FOR $1; data RECORD; SELECT INTO data * FROM refuserat_inlagg WHERE refuserat_inlaggid=ref_id; IF NOT FOUND THEN RAISE EXCEPTION ''ERROR: Refuserat inlagg existerar inte''; END IF; INSERT INTO inlagg (titel, text, signatur,sida, skapad, antal_klagomal,ip_nummer,summa_roster,antal_roster,betyg,sakfragaid_ref) VALUES (data.titel, data.text, data.signatur,data.sida, data.skapad, data.antal_klagomal,data.ip_nummer,data.summa_roster, data.antal_roster,data.betyg,data.sakfragaid_ref); DELETE FROM refuserat_inlagg WHERE refuserat_inlaggid=ref_id; RETURN 0; DROP FUNCTION remove_betyg() CASCADE; CREATE FUNCTION remove_betyg() RETURNS OPAQUE AS' DELETE FROM BETYG WHERE betyg.anvandareid_ref=new.anvandareid_ref AND betyg.inlaggid_ref=inlagg.inlaggid AND inlagg.sakfragaid_ref=new.sakfragaid_ref; RETURN NEW; DROP TRIGGER remove_betyg_trigger ON standpunkt; CREATE TRIGGER remove_betyg_trigger BEFORE UPDATE ON standpunkt FOR EACH ROW EXECUTE PROCEDURE remove_betyg(); DROP FUNCTION update_betyg() CASCADE; CREATE FUNCTION update_betyg() RETURNS OPAQUE AS' 27
28 the_antal int; SELECT INTO the_antal antal_roster FROM inlagg WHERE inlaggid = OLD.inlaggid_ref; IF the_antal = 1 THEN UPDATE inlagg SET antal_roster=0, summa_roster=0, betyg=0 WHERE inlaggid=old.inlaggid_ref; END IF; IF the_antal > 1 THEN UPDATE inlagg SET antal_roster=antal_roster-1, summa_roster=summa_roster-old.varde, betyg=(summa_roster-old.varde)/(antal_roster-1) WHERE inlaggid=old.inlaggid_ref; END IF; RETURN OLD; DROP TRIGGER update_betyg_trigger ON betyg; CREATE TRIGGER update_betyg_trigger BEFORE DELETE ON betyg FOR EACH ROW EXECUTE PROCEDURE update_betyg(); 28
Sakfrågan Preliminär specifikation
KTH Programutvecklingsprojekt, 2D1954 Nada - Institutionen för Numerisk analys och datalogi 2003-03-04 Sakfrågan Preliminär specifikation Amr El-Ghazaly Joakim Andersson John Holmström Jens Modig Carl
Läs merProjektpresentation Sakfrågan
KTH Programutvecklingsprojekt, 2D1954 Nada - Institutionen för Numerisk analys och datalogi 2003-04-28 Projektpresentation Sakfrågan Amr El-Ghazaly Joakim Andersson John Holmström Jens Modig Carl Drott
Läs merLabb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14
Labb LIVE Exempelkod från föreläsningen Plushögskolan Frågeutveckling inom MSSQL - SU14 Här kommer exempelkoden jag använde under föreläsningen Exemplen Constraints... 2 Transactions... 4 Views... 5 Functions...
Läs merVyer, Prepared Statements, Triggers
Vyer, Prepared Statements, Triggers Vyer En vy är en virtuell tabell, som ej behöver existera fysiskt, en namngiven fråga En vy är inte snabbare än SELECT satsen som definierar vyn Det är möjligt att ställa
Läs merInnehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata
Innehåll MySQL Intro Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata 1 Lagrad procedur / Stored Procedure Lagrad procedur har många namn, förkortningen
Läs merSQLs delar. Idag. Att utplåna en databas. Skapa en databas
Idag SQLs delar Hur skapar vi och underhåller en databas? Hur skapar man tabeller? Hur får man in data i tabellerna? Hur ändrar man innehållet i en tabell? Index? Vad är det och varför behövs de? Behöver
Läs merDatabasens består av: Tabell Kolumner fält Rader poster (varje post är unik)
Databasföreläsning Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik) Tabeller Personer Databas Nummer Namn Födelseår 1 Tina 1950 2 Siv 1965 3 Olle 1980 Platt databas: all information
Läs merDu skall naturligtvis visa körexempel med output där det behövs i din rapport!
och databprogrammering Christilinda Göstson - PL/SQL, paket och ref cursor Du skall naturligtvis visa körexempel med output där det behövs i din rapport! OBS! Denna labb redovis i labbrapport via mail
Läs merD1. Create Domain TEXT30 char(30) Default INGET VÄRDE! ;
Lösningsförslag till Övning i SQL Data Definition Language (DDL) D1. Create Domain TEXT30 char(30) Default INGET VÄRDE! ; D2. Create Domain CHARNRKEY char(7 D3. Create Table Skiva( T1. Create Table Skiva(
Läs merIdag. Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten / 20
Idag Hur skapar vi och underhåller en databas? DD1370 (Föreläsning 4) Databasteknik och informationssystem 7,5 hp Hösten 2009 1 / 20 Idag Hur skapar vi och underhåller en databas? Hur skapar man tabeller?
Läs merSätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix
Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix Arbetsuppgift 1: Uppdatera och uppgradera din installation. Steg 1: Starta och logga på din server,
Läs merStructured query language (SQL)
Structured query language SQL) Varför SQL? SQL är ett standardspråk som är oberoende av databashanteringssystemen som finns på marknaden. Med andra ord kommer du kunna arbeta mot nästan alla sorters relationsdatabaser
Läs merFör att XCOPY i SQL Server Express ska fungera måste data och logg ligga i samma mapp, vilket naturligtvis inte är så bra.
1 Datafiler tillhör alltid en filgrupp. Det måste alltid finnas en PRIMARY group. Det är inget som hindrar att datafiler på olika diskar tillhör samma filgrupp. PRIMARY gruppen innehåller huvudfilen till
Läs merSkapa exempeldatabasen
Skapa exempeldatabasen Koden i detta dokument är avsedd att exekveras i SQL Editor i MySQL Workbench. Skapa databasen För att kunna använda svenska alfabetet för lagring av data deklareras teckenensuppsättningen
Läs merDesign och underhåll av databaser
Design och underhåll av databaser 1. Modell av verkligheten 2. Normalformer 3. Introduktion till DDL 4. Skapa databaser 5. Skapa tabeller 6. Skapa index 7. Restriktioner 8. Ta bort databaser, tabeller
Läs merTENTAMEN DATABASKUNSKAP ITEK12
TENTAMEN DATABASKUNSKAP ITEK12 Tid: Fredag den 19 oktober kl. 9-00-12.00, sal D409 Tillåtna hjälpmedel: Endast papper och penna. Poäng: Maxpoäng: 56. Gräns för G: 50%. Gräns för VG: 75%. Om något som verkar
Läs merDDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index
INNEHÅLL SQL DEL 4 DDL Kommandon CREATE/DROP Database CREATE /ALTER/DROP Table ALTER/ADD/DROP Column CREATE /ALTER/DROP Index Chapter 3, 6, 8 delar av. Beginning SQL Server 2008 for Developers 1 CREATE
Läs merVAD GÖR DU / VEM ÄR DU?
INNEHÅLL Vad blir din roll Databaser vad är och varför Terminologi Datamodellering vad är och varför Utvecklingsprocessen SQL vad är det Data / Information / Kunskap Kapitel 1 delar av. Praktisk Datamodellering
Läs merLär känna MS SQL 2008 / Övning. Observera. Tips. Förberedelse
Lär känna MS SQL 2008 / Övning Observera Övningar som finns tillgängliga är till för att du ska kunna testa dina kunskaper och träna på dem. Det är helt upp till dig när du vill genomföra och om du vill
Läs merKlientprogrammering mot databaser
Klientprogrammering mot Databaser Java DataBase Connectivity, JDBC Klientprogrammering mot databaser Native API olika för olika DBMS, ofta i C/C++ ODBC, Open Datbase Connectivity samma API för olika databashanterare.
Läs merNya webbservern Dvwebb.mah.se
Nya webbservern Dvwebb.mah.se Bakgrund: BIT (Bibliotek och IT) beslutar att ta ner Novell systemet 28/3 som är en katalogtjänst som styr bland annat alla studenter s.k. hemkataloger på Malmö högskola såväl
Läs merDenna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.
Laboration 1, Databashantering med MySQL Av: Marcus Rejås I denna laboration skall du se till att du kommer åt databasmotorn och att det fungerar. Du kommer också att skapa en tabell
Läs mer9. :new och :old -värden 10. Triggerns olika delar 11. Olika typer av triggrar 12. Kodexempel. Pär Douhan,
FÖ 12: Databaskursen 1. Lagrade procedurer 2. Fördelar med procedurer 3. Parametrar 4. Vanliga fel 5. Lagrade funktioner 6. Skillnad mellan procedurer och funktioner 7. Triggrar 8. Användningsområde 9.
Läs mer1. SQL DML (Data Manipulation Language) 2. Lägga till data. 4. Uppdatera data 5. Aktivera default value 6. Hantera datum 7.
FÖ 5: Databaskursen 1 1. SQL DML (Data Manipulation Language) 2. Lägga till data 3. Kopiera tabell 4. Uppdatera data 5. Aktivera default value 6. Hantera datum 7. Ta bort data 8. SQL TCL (Transaction Control
Läs merWebbservrar, severskript & webbproduktion
Webbprogrammering Webbservrar, severskript & webbproduktion 1 Vad är en webbserver En webbserver är en tjänst som lyssnar på port 80. Den hanterar tillgång till filer och kataloger genom att kommunicera
Läs merUppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner
INNEHÅLL Uppstart Inloggning SSMS Skapa Databas Skapa Tabell Skapa Diagram, Fk, RI Hantering av Index, Pk, Fk, Ix Constraints Beräknande fält Några funktioner Kapitel 5 och 6. Beginning SQL Server 008
Läs merWCMS-15, Webbutvecklare CMS
WCMS-15, Webbutvecklare CMS Övningstentamen, delkurs Dynamiska webbplatser (20 YH-poäng) Plats: Medieinstitutet, Malmö Tid: 25 november 2015, kl. 13.00-16.00 Tillåtna hjälpmedel: Papper, penna, suddgummi,
Läs merVAD GÖR DU / VEM ÄR DU?
INNEHÅLL Vad blir din roll Databaser vad är och varför Terminologi Datamodellering vad är och varför Utvecklingsprocessen SQL vad är det Data / Information / Kunskap Kapitel 1 delar av. Praktisk Datamodellering
Läs merÖvningar i SQL. SQLAccess.doc Ove Lundgren 2000-11-14
Övningar i SQL Övningar i SQL Använd Access för att öva SQL (= Structured Query Language) Skapa tabeller med SQL 1. Ny databas: SQLÖVNING Klicka: Frågor > Ny > Design > OK >Stäng > SQL Radera ordet SELECT.
Läs merTER3. Försättsblad till skriftlig tentamen vid Linköpings universitet G28 TEN1 Webprogrammering och databaser Tentamen IDA 1 (7)
1 (7) Försättsblad till skriftlig tentamen vid Linköpings universitet Datum för tentamen Sal (1) Tid Kurskod Provkod Kursnamn/benämning Provnamn/benämning Institution Antal uppgifter som ingår i tentamen
Läs merGenomgång av tentamen. Databasteknik ITHS 4/3 2016
Genomgång av tentamen Databasteknik ITHS 4/3 2016 Tentans upplägg Täcka in de 10 delar av kursen vi bedömt som viktigast Säkerställa att det funnits såväl teoripass som övningspass kring varje del Lätt
Läs merÖversikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP.
Laboration 1 Översikt 1. Att komma igång med laborationsmiljön a. installera Aptana Studio 3 b. Installera EasyPHP 2. Testa lite programmering a. Testa enkla uppgifter b. Testa automatiskt 3. Skapa inloggningsformulär
Läs merLektion 5 HTML, CSS, PHP och MySQL
Lektion 5 HTML, CSS, PHP och MySQL I den här lektionen behandlas i huvudsak PHP för att läsa information från en databas, MySQL. Det förutsätts att tidigare lektioner är gjorda, eller att du har tillräckliga
Läs merInnehåll Programability Del 2
Innehåll Programability Del 2 Transaktioner Returvärden och OUTPUT Dynamisk SQL CURSOR / FECTH Trigger Chapter 8, 10 och 13. Beginning SQL Server 2008 for Developers Sven Åke Johansson Institutionen Institutionen
Läs mer1.Lär känna MS SQL Observera. Tips. Förberedelse
1.Lär känna MS SQL 2008 Observera Övningar som finns tillgängliga är till för att du ska kunna testa dina kunskaper och träna på dem. Det är helt upp till dig när du vill genomföra och om du vill genomföra
Läs merSync Master startas via Task Scedule (schemaläggaren). Programmet kan köras på servern utan att någon är inloggad på servern.
Sync Master Sync Master är ett tilläggsprogram till Easy Planning som används för att automatiskt synka Outlook kalendrar med EP. Programmet ska installeras på en server som har en Outlook klient installerad.
Läs merWWW. Exempel på klientsidan. Överföring av en html-fil. Snyggare variant. Verkligt format. Meddelandeformat för begäran HTTP
Exempel på klientsidan WWW Javascript-interpretator XML-interpretator HTML-interpretator Java-interpretator CSS-interpretator Använder TCP Kan återanvända uppkoppling Inga tillstånd hos servern OS API
Läs merMySQL - testmiljöer på minuter. Thomas Johansson IT-avdelningen
MySQL - testmiljöer på minuter Thomas Johansson IT-avdelningen 1 Kort presentation! MySQL-DBA Unix-gubbe sedan 90-talet 2 Testmiljöer för MySQL För att testa innan uppgradering För att testa uppgradering
Läs mer1. PLSQL 2 2. Select into
FÖ 11: Databaskursen 1 1. PLSQL 2 2. Select into 3. Anchored declaration 4. Cursorvariabler 5. Olika typer av cursors 6. Cursorattribut 7. Cursorloop 8. Datatypen record: %rowtype 9. Cursor for loop 10.
Läs merVid problem med programmet kontakta alltid C/W Cadware AB på telefon 08-522 04 640
Installation av CW KeyDesign/DoorDesign Detta program görs och underhålls av C/W CadWare AB. CW KeyDesign/Doordesign säljs alltid med underhållsavtal med telefonsupport samt programuppdateringar på websidan:
Läs merStarta MySQL Query Browser
Starta MySQL Query Browser 1. Starta MySQL Query Browser genom att antingen välja i Startmenyn: 2. eller leta upp ikonen på skrivbordet för start av MySQL Query Browser och dubbelklicka på den. 3. Du bör
Läs merDokumentation för VLDIT AB. Online classroom
Dokumentation för VLDIT AB Online classroom 2 Introduktion VLDIT AB önskar area för att tillhandahålla ett kursutbud online för sina befintliga deltagare, men även för nya. Syfte för applikationen: tillhandhålla
Läs mer1. SQL DDL (Data Definition Language) 2. Skapa tabell
FÖ 4: Databaskursen 1. SQL DDL (Data Definition Language) 2. Skapa tabell 3. Lägga till PK 4. Data Dictionary Views 5. Namn på constraints 6. Lägga till FK 7. Lägga till en kolumn 8. Objektet sekvens 9.
Läs merSkapa din egen MediaWiki
Skapa din egen MediaWiki Inledning och syfte I detta moment skall du installera en egen wiki (Mediawiki), som du skall konfigurera. Du har möjligheten att använda en egen wiki på din dator eller webbhotell
Läs merSample exam questions. Database exam TIG058
Sample exam questions Database exam TIG058 Distribution of topics covered 1. Grundläggande om Databaser och Databashanterare (5p) 2. SQLite-databashanteraren (5p) 3. SQL - SELECT, ORDER BY, WHERE, LIMIT
Läs merDatabasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner
Databasföreläsning Del 2 lagrade procedurer, vyer och transaktioner Lagrade procedurer (Stored procedures) En stored procedure är en procedur (funktion) lagrad i en databas, och exekveras direkt på databasservern
Läs merInnehåll. MySQL Grundkurs
MySQL Grundkurs Copyright 2014 Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Innehåll Introduktion till databaser Installera MySQL lokalt Webbserverprogrampaket (XAMPP) Introduktion till phpmyadmin
Läs merLösningsförslag, tentamen i Databaser
LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Lösningsförslag, tentamen i Databaser 2004-04-20 1. ER-diagram: Matsedel år vecka serveras 1..5 lagas-med Maträtt Ingrediens dag mängd Allergi
Läs merFöreläsning 2: Översikt över ett databassystem
Föreläsning 2: Översikt över ett databassystem DVA234 Databaser IDT Akademin för Innovation, Design och Teknik Innehåll Föreläsningens mål: Att ge en överblick över databassystemets arkitektur, delar och
Läs mertclogin.com Service Desk Tillgång till TeleComputing TCAnyWare
tclogin.com Tillgång till TeleComputing TCAnyWare Service Desk Tel: Supportväxeln: 020-22 29 20 alt. 08-55 61 09 30 Fax: +46 (08) 56791199 E-post: support@telecomputing.se Web: http://support.telecomputing.se
Läs merINTRODUKTION TILL JDBC
INTRODUKTION TILL JDBC Vad är JDBC? JDBC står för Java DataBase Connectivity. JDBC ingår i Java och består av en del klasser som har hand om databasfunktionalitet. Med Java följer JDBC-ODBC Bridge driver,
Läs mer3. Dynamiska webbplatser, 20 Yhp (4 v)
Webbutvecklare CMS, Yh-utbildning, 2 år, 400 Yhp, Medieinstitutet, www.m Webbutvecklare CMS, Yh-utbildning, 2 år, 400 Yhp, Medieinstitutet, www.medieinstitutet.se, sida 3/12 3. Dynamiska webbplatser, 20
Läs merManual för din hemsida
Manual för din hemsida Dynamiska hemsidor är en lösning för att man på ett enkelt sätt skall kunna lägga till, ändra och ta bort sidor på sin hemsida. För att detta skall vara möjligt bygger lösningen
Läs merIntroduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.
Schenker har interna system som handhar information som är av intresse för våra kunder/partners. Idag finns ett flertal av dem tillgängliga via Internet, sk Online-tjänster. Dessa erbjuder inte bara hämtning
Läs mer732G16: Databaser - Design och programmering
732G16: Databaser - Design och programmering Eva L. Ragnemalm, IDA (eva.ragnemalm@liu.se) Johan Falkenjack, IDA (johan.falkenjack@liu.se) Fö 1 Introduktion 2 Kursöversikt Teori och praktik Kursbok, lektionshäfte,
Läs merLabb LABB 1. Databassagan och en rundtur i databasers märkliga värld. Plushögskolan Frågeutveckling inom MSSQL - SU14
Labb LABB 1 Databassagan och en rundtur i databasers märkliga värld Plushögskolan Frågeutveckling inom MSSQL - SU14 I Microsoft SQL-Server Management Studio kan man arbeta på olika sätt. Antingen via användargränssnittet
Läs merSpara papper! Skriv inte ut sammanfattning utan ladda ner PDF!
Denna beskrivning har gjorts på Windows 2000 Server (men bör fungera även på Windows XP Home Edition/Professional och Windows 2003 Server). Att installera Oracle 10g kräver ca. 2 GB hårddiskplats och ca.
Läs merDatabaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?
Databaser Design och programmering! Diverse praktiskt! Varför databaser?! Vad är en databas?! Andra viktiga begrepp Kursöversikt! Teori och praktik! Samläsning! Olika projekt! Examination (tenta, labb
Läs merInstallera din WordPress med 9 enkla steg
Installera din WordPress med 9 enkla steg Den här artikeln förutsätter att du har satt upp en webbserver eller har köpt ett webbhotell där du kan placera din nya WordPress hemsida. Om du inte har det,
Läs merIntroduktion MySQL och MariaDB
Introduktion MySQL och MariaDB Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Vad är MySQL? MySQL är en databashanterare. Den använder sig av frågespråket SQL. MySQL är fri programvara,
Läs merDisposition. 1. Kopplingen mellan Processanalys (DFDdiagram) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer
Disposition 1. Kopplingen mellan Processanalys (DFDdiagram) och konceptuell modellering (ERdiagram) (se kap 4) 2. Treskikts Client-Server arkitektur (Fig 1.8) 3. Data layer Databasen (Kap 2) Den relationella
Läs merAdministrationsmanual ImageBank 2
Administrationsmanual ImageBank 2 INNEHÅLL 1. Konventioner i manualen 3 2. Uppmärksamhetssymboler 3 3. Vad är imagebank SysAdmin 4 4. Guide för att snabbt komma igång 5 5. Uppgradera din imagebank 1.2
Läs merStartanvisning för Bornets Internet
Startanvisning för Bornets Internet Denna guide kommer att hjälpa dig igång med Bornets Internet. Sidan 1 av 41 Innehållsförteckning Titel Sidan Kapitel 1. Introduktion... 3 Kapitel 2. TCP/IP-inställningar
Läs merStatistik från webbplatser
Statistik från webbplatser problem och möjligheter Ulf Kronman Föredragets huvuddelar Frågorna och motfrågorna Vilka frågor ställer chefen, BIBSAM och ISO? Varför ställer webmastern krångliga motfrågor?
Läs merINSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...
INSTALLATION...3 ATT KOMMA IGÅNG...3 PROGRAMMETS DESIGN...4 LÄGGA TILL TABELL...4 EDITERA TABELL...4 EDITERA RELATION...5 SPARA OCH AVSLUTA...6 2 (6) 2D1954 Programutvecklingsprojekt vt 2003 Installation
Läs merBiometria Violweb. Kom-igång-guide. Januari Sammanfattning Den här anvisningen är till för dig som ska börja använda dig av Biometrias tjänster.
Violweb Kom-igång-guide Januari 2019 Sammanfattning Den här anvisningen är till för dig som ska börja använda dig av s tjänster. Innehållsförteckning Systemkrav... 2 Administratörsrättigheter... 3 Hur
Läs merUtkast/Version (8) Användarhandledning - inrapportering maskin-till-maskin
Utkast/Version Sida 2.0 1 (8) 2017-05-12 Användarhandledning - inrapportering maskin-till-maskin 2 (8) Innehåll 1. Rapportering till VINN eller KRITA... 3 1.1 Allmänt... 3 1.2 Terminologi... 3 2. Hämta
Läs merREGION SKÅNE VDI KLIENTINSTALLATION
REGION SKÅNE VDI KLIENTINSTALLATION 2014-05-21 Installation av Viewklient för VDI Dokumentation för installation och anslutning till Region Skånes VDI miljö INSTRUKTION VMWARE VIEW... 2 Inledning... 2
Läs merBokningslista Handledare
XXX Bokningslista Handledare Manual v. 5 Bokningslista v. 4, Handledarmanual Innehåll: 1 Inledning... 3 1.1 Inloggning... 3 2 Bokningslistan... 5 2.1.1 Överblick över alla studentgrupper... 5 2.1.2 Enskild
Läs merEkonomiportalen Sa kommer du iga ng
Ekonomiportalen Sa kommer du iga ng Innehållsförteckning Inloggningssidan... 2 Så här loggar du in... 3 Glömt ditt lösenord? Så här återställer du ditt lösenord... 4 Glömt lösenord till kundgemensamt rapportkonto?...
Läs merDatabaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för:
Databaskunskap 7,5 högskolepoäng Provmoment: Ladokkod: Tentamen ges för: Namn: Personnummer: Individuell prövning 41E03B Öppen för alla Tentamensdatum: 2013-08-20 Tid: 09:00-13:00 Hjälpmedel: Inga hjälpmedel
Läs merInforma5onsmodellering
Informa5onsmodellering - Ett viktigt syfte med systemutveckling är att specificera verksamhetens informationsbehov för att kunna kartlägga detta informationsbehov bör vi skapa en informationsmodell (konceptuell
Läs merDatabasutveckling Introduktion till SQL och TSQL
Databasutveckling Introduktion till SQL och TSQL Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Introduktion till SQL SELECT satsen, enkla frågor Hämta specifika kolumner Alias
Läs merSystembeskrivning. Alhanko
Systembeskrivning Alhanko Innehållsförteckning 1 Systemöversikt 1.1 Översikt 1.1.1 Klient/Server 1.1.2 Modulbeskrivning 1.1.3 Programvara 1.2 Databasen 1.3 Systemkrav 1.3.1 Servern 1.3.2 Klienten 2 Filstruktur
Läs merInnehåll Security. Chapter 4 och 7 Beginning SQL Server 2008 for Developers
Innehåll Security SQL Injektions Säkerhetssystemet Schema Login Användare Roller User Applikationsanvändare AppUser Backup av databas Restore / Recovery av databas Flytta/Kopiera en databas, Detach/Attach
Läs merInstruktion för integration mot CAS
IT-enheten Instruktion för integration mot CAS Per Hörnblad Instruktion 2010-10-29 Sid 1 (7) Instruktion för integration mot CAS Projektnamn Instruktioner för Integration mot CAS Fastställt av Per Hörnblad
Läs merOBS! Figuren visar inte alla aspekter och objekt som är inblandade i säkerhetssystemet.
1 OBS! Figuren visar inte alla aspekter och objekt som är inblandade i säkerhetssystemet. Det finns i princip två sätt att komma åt SQL-Server, det är via Windows login och SQLserver login. Vid Windows
Läs merTekis-FB 7.1.0. Systemkrav
7.1.0 Systemkrav Systemkrav 2015-09-17 MAAN 2 (2) Systemkrav 7.1.0 Dokumentet beskriver de krav som systemet ställer på maskinvara och programvara i de servrar och klientdatorer som ska användas för systemet.
Läs merQuadri DCM Handledning för administratörer och användare i projekt som kör Quadri DCM. Version 19.20 2014-08-15
Quadri DCM Handledning för administratörer och användare i projekt som kör Quadri DCM Version 19.20 2014-08-15 Innehåll Syfte... 2 Inledning... 3 Begreppslista... 4 Förberedelser... 6 Quadri Model Manager
Läs mer! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU
Databaser Design och programmering, IDA Kursen, diverse praktiskt Varför databaser? Vad är en databas? Andra viktiga begrepp Kursöversikt Teori och praktik Fö och bok lektioner, labbar i projekt (3,5hp=100h)
Läs merTEKNISK SPECIFIKATION. för TIDOMAT Portal version 1.7
för version 1.7 Innehållsförteckning Innehållsförteckning... 2 Krav för... 3 Systemskiss... 3 Systemkrav Server... 4 Operativsystem*... 4 Program i servern... 4 Databas... 5 SMTP inställningar för mail....
Läs merFLEX Personalsystem. Uppdateringsanvisning
FLEX Personalsystem Uppdateringsanvisning Innehållsförteckning UPPDATERING... 3 Allmänt... 3 Förberedelser... 3 Informera om uppdatering... 3 Ladda hem uppdateringsfiler... 4 Att observera vid uppdatering...
Läs merIT-körkort för språklärare. Modul 2: Blogg
IT-körkort för språklärare Modul 2: Blogg Innehåll Gloslista 2 Logga in på bloggen (punkt 1-3) 3 Skapa och redigera sidor och undersidor (punkt 4 och 5) 4 Infoga dokument (punkt 6 och 7) 7 Skapa inlägg
Läs merADO.NET Murach Kapitel 17-20
Databaser och C# ADO.NET Murach Kapitel 17-20 2013-01-30 1 Winstrand Development Databas ADO.NET Är en del av.net ramverket och tillhandahåller delar för att kommunicera med olika datakällor. Dessa kan
Läs merBiometria Violweb. Kom-igång-guide. Mars Sammanfattning Den här anvisningen är till för dig som ska börja använda dig av Biometrias tjänster.
Violweb Kom-igång-guide Mars 2019 Sammanfattning Den här anvisningen är till för dig som ska börja använda dig av s tjänster. Innehållsförteckning Systemkrav... 2 Administratörsrättigheter... 3 Hur vet
Läs merVad är molnet?... 2. Vad är NAV i molnet?... 3. Vem passar NAV i molnet för?... 4. Fördelar med NAV i molnet... 5. Kom igång snabbt...
Produktblad för NAV i molnet Innehåll Vad är molnet?... 2 Vad är NAV i molnet?... 3 Vem passar NAV i molnet för?... 4 Fördelar med NAV i molnet... 5 Kom igång snabbt... 5 Bli kostnadseffektiv... 5 Enkelt
Läs merSpara papper! Skriv inte ut sammanfattning utan ladda ner PDF!
Denna beskrivning har gjorts på Windows XP Professional (men bör fungera även på Home Edition och Windows 2000/2003). Att installera Oracle 9i Personal Edition kräver ca. 3 GB hårddiskplats och ca. 200
Läs merKAP 18 SQL SERVER AGENT
KAP 18 SQL SERVER AGENT Tjänsten Sql Server Agent Operator Job Alert (larm) http://www.youtube.com/watch?v=ii1tc493bzm 1 VAD ÄR SQL SERVER AGENT? SQL Server Agent är en tjänst (service) som ansvarar för:
Läs merInstallation och konfiguration av klientprogramvara 2c8 Modeling Tool
Installation och konfiguration av klientprogramvara 2c8 Modeling Tool Hämta programpaket, MSI Aktuell version av klientprogramvaran finns tillgänglig för nedladdning på vår hemsida på adress http://www.2c8.com/
Läs mer1. Treskiktsarkitektur 2. Applika1onsprogramvara 3. Teknisk programvara. Kapitel 6 sid
1. Treskiktsarkitektur 2. Applika1onsprogramvara 3. Teknisk programvara Kapitel 6 sid 171-188 Datoriserade informa.onssystem bygger på en tre- skikts arkitektur 1. Data Management layer (Implementerat
Läs merKrav på säker autentisering över öppna nät
Krav på säker autentisering över öppna nät I enlighet med Socialstyrelsens föreskrifter SOSFS 2008:14 2 kap. 5 skall en vårdgivare som använder öppna nät för att hantera patientuppgifter, ansvara för att
Läs merBokningslista Examinator
XXX Bokningslista Examinator Manual v. 5 2014-04-23 Innehåll: 1 Inledning... 3 1.1 Inloggning... 3 2 Bokningslistan... 5 2.1.1 Överblick över alla studentgrupper... 5 2.1.2 Enskild studentgrupp... 8 2.1.3
Läs merSync Master startas via Task Scedule (schemaläggaren). Programmet kan köras på servern utan att någon är inloggad på servern.
Sync Master Sync Master är ett tilläggsprogram till Easy Planning som används för att automatiskt synka Outlook kalendrar med EP. Programmet ska installeras på en server som har en Outlook klient installerad.
Läs merÖvning MS SQL och MVC del 2
1 Övning MS SQL och MVC del 2 Denna övning, som är uppdelad i två delar, kommer att visa hur du kan arbeta med MS SQL och MVC. Applikationen är ett inloggningssystem som innehåller de flesta saker som
Läs merFNTSK SKNNK Fonetisk sökning
FNTSK SKNNK Fonetisk sökning Sven Heidorn Centrala Studiestödsnämnden sven.heidorn@csn.se Swedish DB2 User Group 05/01/19 Bakgrund CSN gör s.k. SPAR-sökningar på namn hos InfoData för ca. 100 000 kr/månad
Läs merLabora&on 1 Introduk&on &ll utvecklingsmiljön övningar/uppgi<er
Labora&on 1 Introduk&on &ll utvecklingsmiljön övningar/uppgi
Läs merLösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document
Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document Användarhandledning inloggning Logga in Gå till denna webbsida för att logga in: http://csportal.u4a.se/
Läs mer