Alle vet det, men ikke alle gjør det! Skalerbarhet ved BIND i IN-lister

Størrelse: px
Begynne med side:

Download "Alle vet det, men ikke alle gjør det! Skalerbarhet ved BIND i IN-lister"

Transkript

1

2 OUGN, Bergen Lasse Jenssen Alle vet det, men ikke alle gjør det! Skalerbarhet ved BIND i IN-lister

3 Trønder, men. Lasse Jenssen Oracle Informix MS SQL Server MySQL DBA Drift Applied Technologies AS Instruktør Oracle DBA kurs: 9i og 10g Konsulent Anvendte Systemer AS Oracle University SQL PL/SQL UTVIKLING PHP Java Perl

4 Hvordan vinner man en Olympisk medalje? Det hjelper ikke hvor god jobb smørerne har gjort, hvis ikke utøveren selv er i stand til å YTE! Men HUSK! Selv Phillip Boit kan vinne medaljer, bare ikke en olympisk medalje. Bind er en suksessfaktor for å oppnå skalerbarhet

5 Alle vet det, men samtidighet Library cache Latch free waits V$SQL Latches SQL Literaler select * from emp where emp_no=7569 BIND variabler select * from emp where emp_no=:no Soft Parsing Hard

6 Et lite eksempel select empno from emp; accept my_id prompt EMP_ID (def=7788): default 7788 declare my_sql varchar2(1000); my_emp emp%rowtype; my_dept dept%rowtype; begin my_sql := 'select * from emp where empno=' &my_id; execute immediate my_sql into my_emp; execute immediate 'select * from dept where deptno=:x' into my_dept using my_emp.deptno; dbms_output.put_line('fant: ' my_emp.ename ' fra avdeling ' my_emp.deptno ': ' my_dept.dname); end; / Script: no_bind.sql, no_bind_cache.sql

7 Et lite eksempel SQL> select sql_text from v$sql 2 > where (sql_text like '% from emp %' 3 > or sql_text like '% from dept %') 4 > and sql_text not like '%v$sql%' 5 > and sql_text not like '%declare%'; SQL_TEXT select * from emp where empno=7900 select * from emp where empno=7499 select * from dept where deptno=:x select * from emp where empno=7566 select * from emp where empno=7788 Script: no_bind.sql, no_bind_cache.sql

8 Bind i SQL*Plus SQL> variable my_emp number SQL> exec :my_emp := 7900; SQL> select * from emp where empno=:my_emp; SQL> variable ret varchar2(100) SQL> exec select sysdate into :ret from dual; SQL> print :ret RET :01:13

9 Hvorfor virker ikke dette? SQL> variable ret varchar2(100) SQL> select sysdate into :ret from dual; SQL> print :ret RET

10 Bind i PL/SQL I declare l_empno number := 7900; l_ret date; begin execute immediate 'select hiredate from emp where empno=:x' into l_ret using l_empno; dbms_output.put_line('hiredate: ' to_char(l_ret,'dd.mm.yyyy HH24:MI:SS'); end; /

11 Bind i PL/SQL II declare l_empno number := 7900; l_ret date; begin select hiredate into l_ret from emp where empno=l_empno; dbms_output.put_line('hiredate: ' to_char(l_ret,'dd.mm.yyyy HH24:MI:SS'); end; /

12 Bind i Java String msql = select * from emp where deptno=? and ename like? ; PreparedStatement ps = conn.preparestatement(msql); ps.setint(1, in_dept); Ps.setString(2, search_name) ResultSet rs = ps.executequery(); System.out.println( EmpNo Ename Deptno ); System.out.println( ); while (rs.next()){ } rs.close(); ps.close(); Det over er mye enklere enn dette String msql = select * from emp where + + deptno= + in_dept + and ename like + search_name + ;

13 OBS! BIND and datatyper SQL> desc LOG Navn Null? Type LOG_ID NOT NULL NUMBER(18) FILE_ID NUMBER(6) INST_ID NOT NULL VARCHAR2(11) CUST_ID VARCHAR2(20) ACC VARCHAR2(35) SRC NOT NULL VARCHAR2(20) SYSTEM_NAME NOT NULL VARCHAR2(20) USER_ID VARCHAR2(25) FUNCTION_NAME NOT NULL VARCHAR2(35) DATETIME NOT NULL DATE DESCRIPTION VARCHAR2(50)

14 BIND and datatyper SELECT * FROM LOG WHERE inst_id LIKE :b1 AND datetime >= :b2 AND datetime <= :b3 AND cust_id LIKE :b4; Spørring kjørt Java program (jdbc versjon ) Indeks : LOG(inst_id, cust_id, datetime) Spørring brukte ca 120 sekunder, ca fysiske IO Henter ca 30 rader

15 BIND and datatyper - Trace BINDS # : Bind#0 oacdty=01 mxl=32(16) mxlc=00 mal=00 scl=00 pre=00 value= 5799" Bind#1 oacdty=180 mxl=11(11) mxlc=00 mal=00 scl=00 pre=00 value= Bind#2 oacdty=180 mxl=11(11) mxlc=00 mal=00 scl=00 pre=00 value= Bind#3 oacdty=01 mxl=128(44) mxlc=00 mal=00 scl=00 pre=00 value= "

16 BIND and datatyper Forslag til hva som kan være galt? Og ikke minst hvorfor?

17

18 , men ikke alle gjør det! IN-lister where col in (14,16,21,24,27,38,165,900,3765)

19 OBS: IN-list uten BIND SQL> select substr(sql_text,1,50) sqltext, count(*) nr_sqls 2 from v$sql 3 group by substr(sql_text,1,50) 4 having count(*)>40 5* order by 2 SQLTEXT NR_SQLS select 42 Select 48 SELECT 50 select 51 select 59 select 64 Select 64 Select 73 SELECT 78 select 79 SELECT count(*) FROM KNT WHERE ID=:b1 AND KONTO_NR 167 SELECT KNT.* FROM KNT WHERE ID=:b1 AND KONTO_NR IN 167

20 Hva foregår i shared_pool (library cache)? SQL> select sql_text from v$sql where substr(sql_text,1,50)= 'SELECT * FROM WHERE KONTO_NR IN ('; SQL_TEXT from V$SQL SELECT * FROM WHERE KONTO_NR IN ('XXXXXXX9169','XXXXXX9178','XXXXXXX3912') AND ((TYPE = 'NO') OR (SUBSTR(PTYPE,1,2)='OP')) SELECT * FROM WHERE KONTO_NR IN ('XXXXXXX1009','XXXXXX2363','XXXXXXX2293', 'XXXXXX1119','XXXXXXX7233') AND ((TYPE = 'NO') OR (SUBSTR(PTYPE,1,2)='OP')) SELECT * FROM WHERE KONTO_NR IN ('XXXXXXX3883','XXXXXX8711','XXXXXXX9134', 'XXXXXXX1009','XXXXXX4512','XXXXXXX4528', 'XXXXXX1989','XXXXXXX7812') AND ((TYPE = 'NO') OR (SUBSTR(PTYPE,1,2)='OP')) SELECT * FROM WHERE KONTO_NR IN ('XXXXXXX9002') AND ((TYPE = 'NO') OR (SUBSTR(PTYPE,1,2)='OP')) SELECT * FROM WHERE KONTO_NR IN ('XXXXXXX9122','XXXXXX6234','XXXXXXX5642') AND ((TYPE = 'NO') OR (SUBSTR(PTYPE,1,2)='OP')) rader valgt

21 Hva foregår i shared_pool (library cache)? Hva skjer når lasten (samtidigheten) øker? Top 5 Timed Events ~~~~~~~~~~~~~~~~~~ % Total Event Waits Time (s) Ela Time db file sequential read 1,310,593 6, latch free 57,513 4, CPU time 1, db file scattered read 50, buffer busy waits 133, Problem: Koden bruker BIND bare delvis Warning: Denne applikasjonen vil ALDRI skalere

22 IN-lister where col in (14,16,21,24,27,38,165,900,3765) Vi BØR bruke BIND! Men vanskelig når Hvorfor funker ikke dette? SQL> variable txt varchar2(250) antallet i IN-listen varierer, og/eller er relativt høyt SQL> exec :txt := ' ''SYS'', ''SYSTEM'' ' SQL> select * 2 from all_users 3 where username in (:txt); no rows selected Problem

23 IN-lister where col in (:B1, :B2, :B3, :B4, :B5, :B6, :B7, :B8, :B9, :B10) - Ok for små avgrensede lister - Benyttes av div. API-er som generer SQL code - løser IKKE vårt generelle IN-liste problem Fra Oracle 8i: Funksjoner som returnerer en collection Da kan vi lage en collection datatype: SQL> create or replace type str2tbltype 2 as table of varchar2(4000); Løsning 1 Type created. Og så en funksjon

24 E T P O T E N S I E L T P R O B L E M? IN-lister where col in (select * from TABLE( cast( str2tbl(:txt) as str2tbltype )) C B O O t i m i z e r Her er funksjonen vi bruker over: SQL> create or replace function str2tbl ( p_str in varchar2, 2 p_delim in varchar2 default ',' ) return str2tbltype 3 as 4 l_str long default p_str p_delim; 5 l_n number; 6 l_data str2tbltype := str2tbltype(); 7 begin 8 loop 9 l_n := instr( l_str, p_delim ); 10 exit when (nvl(l_n,0) = 0); 11 l_data.extend; 12 l_data(l_data.count) := 13 ltrim(rtrim(substr(l_str,1,l_n-1))); 14 l_str := substr( l_str, l_n+1 ); 15 end loop; 18 return l_data; 19 end; 20 / Function created. /*+ cardinality(t 50 ) */ Løsning 2 Men vi ønsker ikke/vil ikke lage ekstra objekter Fra 9i slipper du også dette!

25 IN-lister with data ( ) select where col in (select * from data) Løsning 3 Da får vi: SQL> exec :txt := 'SYS, SYSTEM SQL> with data as ( 2 select 3 trim( substr (txt, 4 instr (txt, ',', 1, level ) + 1, 5 instr (txt, ',', 1, level+1) 6 - instr (txt, ',', 1, level) -1 ) ) 7 as token 8 from (select ',' :txt ',' txt from dual) 9 connect by level <= 10 length(:txt)-length(replace(:txt,',',''))+1 11 ) 12 select * from all_users 13 where username in (select * from data); TOKEN SYS SYSTEM Men dette blir for komplekst og tungvindt å skrive parameterisert view

26 IN-lister select where col in (select * from IN_LIST) Da trenger vi: SQL> create or replace context my_ctx 2 using my_ctx_procedure; Context created. SQL> create or replace procedure my_ctx_procedure ( p_str in varchar2) as 3 begin 4 dbms_session.set_context( 'my_ctx', 'txt', p_str ); 5 end; 6 / Procedure created. Og view-et. Løsning 4 Da kjører vi: SQL> exec my_ctx_procedure(:txt) SQL> select * from all_users 2 where username in 3 (select * from IN_LIST); SQL> create or replace view IN_LIST as 2 select 3 trim( substr (txt, instr (txt, ',', 1, level ) + 1, 4 instr (txt, ',', 1, level+1) 5 - instr (txt, ',', 1, level) -1 ) ) as token 6 from (select ',' sys_context('my_ctx','txt') 7 ',' txt from dual) 8 connect by level <= 9 length(sys_context('my_ctx','txt')) 10 -length(replace(sys_context('my_ctx','txt'),',',''))+1 14 / View created.

27 IN-lister Hibernate select where col in (:b1,:b2,:b3,:b4,:b5,:b6,:b7,:b8,osv); Bruker BIND variabler MEN o Vær obs på at antall varianter med ulikt antall verdier i INliste(ne) styrer hvor mange versjoner av SQL som ligger i library cache o Hvis flere IN-lister i samme SQL, kan dette antallet fort bli stort Dermed o Vurder om dette kan bli et skalerbarhetsproblem når du skriver SQL-er med IN-lister

28 Fordeler m/bind Vi har allerede sett: Ytelse Skalerbarhet Enklere kode Minne forbruk (cache) I tillegg: Sikrere kode (unngå SQL injection)

29 SQL Injection SQL> accept myname prompt "Enter username: " Enter username: DosNotMatter SQL> accept mypass prompt "Enter password: " Enter password: i_dont_know' or 'x' = 'x SQL> select count(*) old new 2 from user_table 3 where username = '&myname' 4 and password = '&mypass' 5 / 3: where username = '&myname' 3: where username = 'DosNotMatter' old 4: and password = '&mypass' COUNT(*) new 4: and password = 'i_dont_know' or 'x' = 'x'

30 SQL Injection Sikkerhetshull på grunn av SQL Injection vil forekomme hvis vi ikke har fokus på dette Over 63 % (av alle spurte utviklere) har ikke sjekket koden for mulige SQL injection (eller vet ikke om sjekket) Mitt råd: SQL Injection handler ene og alene om bruk av BIND! Derfor. ALDRI bruk sammenslåing (concatination) av brukerinput inn i SQL Gjennomfør Code Review med minst 5 personer som ikke tåler trynet ditt

31 MEN Skal vi alltid bruke Bind? - Datavarehus? - Hva hvis vi alltid spør etter samme verdi? For eksempel alle transaksjoner med gitt status.

32 OG Hva med histogrammer? - Statistikk med histogrammer kan være nyttig når data er skjevt fordelt - MEN Bind og histogrammer er logiske motsetninger

33 Men BIND_PEEKING _optim_peek_user_binds = true - Løser ikke dette problemet med bind og histogrammer? - Bind_peeking: Feature eller bug?

34 Noen hendige PL/SQL verktøy: RUNSTATS & MYSTATS pakkene

35

36 RunStats (PL/SQL) pakke Utviklet av Tom Kyte (som også står bak asktom.oracle.com) Utvidet av Adrian Billington (www.oracle-developer.net) Small-time benchmarking tool Lar oss sammenligne metoder (kode) og vise hvem som er best og dette er nødvendigvis IKKE det samme som at metoden er raskest også relatert til ressurs bruk - System statistikk - Latching aktivitet

37 RunStats (PL/SQL) installasjon Opprette UTIL bruker SQL> create user util identified by 'aha&26fdfj'; SQL> grant create session to util; SQL> grant create public synonym to util; SQL> grant create procedure to util; SQL> grant select any dictionary to util; -- Eller V$STATNAME, V$MYSTAT, V$LATCH Opprette RUNSTATS pakke SQL> conn util SQL> create or replace public synonym runstats for runstats_pkg; SQL> grant execute on runstats_pkg to public;

38 SQL> desc runstats PROCEDURE RS_MIDDLE PROCEDURE RS_PAUSE RunStats (PL/SQL) installasjon PROCEDURE RS_RESUME PROCEDURE RS_START PROCEDURE RS_STOP PROCEDURE RS_STOP Argumentnavn Type Inn/Ut Standard? P_DIFFERENCE_THRESHOLD NUMBER(38) IN P_INCLUDE_TIME_MODEL BOOLEAN IN DEFAULT PROCEDURE RS_STOP Argumentnavn Type Inn/Ut Standard? P_STATNAMES STATNAME_NTT IN P_INCLUDE_TIME_MODEL BOOLEAN IN DEFAULT PROCEDURE RS_STOP Argumentnavn Type Inn/Ut Standard? P_STATNAME_LIKE VARCHAR2 IN P_INCLUDE_TIME_MODEL BOOLEAN IN DEFAULT

39 RunStats (PL/SQL) demo Test prosedyre UTEN bind: create or replace procedure no_bind(i_max in number) as l_nr number; l_sql varchar2(100); begin for i in 1..i_max loop select tseq.nextval into l_nr from dual; l_sql:='insert into t1(id,n1) values (' l_nr ',' i ')'; execute immediate l_sql; end loop; end; /

40 RunStats (PL/SQL) demo Test prosedyre MED bind: create or replace procedure bind(i_max in number) as l_nr number; begin for i in 1..i_max loop select tseq.nextval into l_nr from dual; insert into t1(id,n1) values (l_nr,i); end loop; end; /

41 RunStats (PL/SQL) demo Test av prosedyrer UTEN og MED bind: set serveroutput on begin end; / runstats.rs_start; no_bind(1000); runstats.rs_middle; bind(1000); runstats.rs_stop(100); Snapshots av sesjons statistikk. NB! Info om latching er global! (men så lenge jeg er alene på systemet )

42 =============================================================================================== RunStats report : 29-JAN :48:13 =============================================================================================== Summary timings Type Name Run1 Run2 Diff TIMER cpu time (hsecs) TIMER elapsed time (hsecs) Comments: 1) Run2 was 73,7% quicker than Run1 2) Run2 used 73,7% less CPU time than Run Statistics report Type Name Run1 Run2 Diff LATCH cache buffers chains 11,831 11, STAT undo change vector size 79,308 79, STAT parse count (hard) 1, STAT enqueue releases 1, ,003 STAT recursive calls 8,406 7,403-1,003 STAT enqueue requests 1, ,005 STAT redo size 287, ,724-1,700 LATCH enqueues 2, ,005 LATCH enqueue hash chains 2, ,008 LATCH shared pool simulator 2, ,539 STAT cell physical IO interconnect bytes 16, ,384 STAT physical read bytes 16, ,384 STAT physical read total bytes 16, ,384 LATCH row cache objects 24, ,980 STAT session uga memory 523, ,760 31,856 LATCH shared pool 44, ,059

43 Latching report Type Name Run1 Run2 Diff LATCH total latches used 90,934 16,087-74,847 Comments: 1) Run2 used 82,3% fewer latches than Run Time model report Type Name Run1 Run2 Diff TIME sequence load elapsed time 6,948 6, TIME PL/SQL execution elapsed time 30,109 25,302-4,807 TIME hard parse elapsed time 173, ,888 TIME parse time elapsed 280,227 17, , About RunStats v2.01 by Adrian Billington (http://www.oracle-developer.net) - Based on the original RUNSTATS utility by Tom Kyte =============================================================================================== End of report =============================================================================================== PL/SQL-prosedyren ble fullf?rt.

44 RunStats (PL/SQL) demo Test av prosedyrer med ROLLBACK or TRUNCATE begin truncate table t1; runstats.rs_start; no_bind(1000); runstats.rs_pause; truncate table t1; runstats.rs_resume; bind(1000); runstats.rs_stop(1000); end; /

45 MyStats (PL/SQL) pakke Utviklet av Jonathan Lewis Utvidet av Adrian Billington (www.oracle-developer.net) Verktøy for Sesjons Statistikk Lar oss hente ut ressurs forbruk for en enhet med arbeid utført mellom to snapshot. designet for bruk I begrensende utvikler miljøer time model statistics mulig å hente ut spesifikk statistikk

46 MyStats (PL/SQL) installasjon Opprette UTIL bruker SQL> create user util identified by 'aha&26fdfj'; SQL> grant create session to util; SQL> grant create public synonym to util; SQL> grant create procedure to util; SQL> grant select any dictionary to util; -- Eller V$STATNAME, V$MYSTAT, V$LATCH Opprette MYSTATS pakke SQL> conn util SQL> create or replace public synonym mystats for mystats_pkg; SQL> grant execute on mystats_pkg to public;

47 SQL> desc mystats PROCEDURE MS_START PROCEDURE MS_STOP PROCEDURE MS_STOP MyStats DESCRIBE Argumentnavn Type Inn/Ut Standard? P_THRESHOLD NUMBER(38) IN PROCEDURE MS_STOP Argumentnavn Type Inn/Ut Standard? P_STATNAMES STATNAME_NTT IN PROCEDURE MS_STOP Argumentnavn Type Inn/Ut Standard? P_STATNAME_LIKE VARCHAR2 IN

48 MyStats demo set serveroutput on declare begin end; / l_cnt number; mystats.ms_start; select * from big_table where owner= PUBLIC and object_type= SYNONYM and created >= systimestamp-900 and created <= systimestamp; --mystats.ms_stop(100); mystats.ms_stop(mystats.statname_ntt('consistent gets', 'physical reads'));

49 ========================================================================================= MyStats report : 04-MAR :22:24 ========================================================================================= Summary Timings Type Statistic Name Value TIMER snapshot interval (seconds) 0.26 TIMER CPU time used (seconds) Statistics Report Type Statistic Name Value STAT physical reads 0 STAT consistent gets 4, About MyStats v2.01 by Adrian Billington (http://www.oracle-developer.net) - Based on the SNAP_MY_STATS utility by Jonathan Lewis ========================================================================================= End of report ========================================================================================= PL/SQL-prosedyren ble fullf?rt.

50 ========================================================================================= MyStats report : 04-MAR :31:47 ========================================================================================= Summary Timings Type Statistic Name Value TIMER snapshot interval (seconds) 0.25 TIMER CPU time used (seconds) Statistics Report Type Statistic Name Value LATCH simulator hash latch 294 TIME PL/SQL execution elapsed time 2,333 STAT no work - consistent read gets 4,691 STAT consistent gets 4,705 STAT consistent gets from cache 4,705 STAT consistent gets from cache (fastpath) 4,705 STAT session logical reads 4,705 LATCH cache buffers chains 9,411 STAT session uga memory 458,416 STAT session pga memory 786, About End of report ========================================================================================= PL/SQL-prosedyren ble fullf?rt.

51 Oppsummering Der det er hensiktsmessig o Bruk BIND variabler o Bruk LITERALER Gjelder også IN-liste spørringer Bind og histogrammer er motsetninger Bruk verktøy som f.eks. Runstats for å sammenligne alternative løsninger Spørsmål?

52 Kontakt Eller vi snakkes i baren!

53

Tilkobling og Triggere

Tilkobling og Triggere Tilkobling og Triggere Lars Vidar Magnusson October 12, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 12, 2011 1 / 25 Tilkobling med PHP PHP bruker databasespesifike moduler til å koble

Detaljer

1. Introduksjon til Oracle Express Edition

1. Introduksjon til Oracle Express Edition Kjell Toft Hansen 22.06.2010 Opphavsrett: Forfatter og AITeL Lærestoffet er utviklet for faget LO177D Databaseprogrammering med PL/SQL 1. Dette notatet skal gi deg en kort innføring i bruken av Oracle

Detaljer

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19 Prosedyrer Lars Vidar Magnusson October 26, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 26, 2011 1 / 19 Repetisjon om triggere og prosedyrer Triggere og prosedyrer ligner på hverandre

Detaljer

JDBC. Java DataBase Connectivity SQL i Java Læreboken: 8.5, s Forelesning i TDT4145, 9. mars 2004 Av Gisle Grimen

JDBC. Java DataBase Connectivity SQL i Java Læreboken: 8.5, s Forelesning i TDT4145, 9. mars 2004 Av Gisle Grimen JDBC Java DataBase Connectivity SQL i Java Læreboken: 8.5, s. 393-397 Forelesning i TDT4145, 9. mars 2004 Av Gisle Grimen JDBCs treenighet Databaseoppkobling java.sql.connection Utføre SQL java.sql.statement

Detaljer

Java Database Connectivity (JDBC) Norvald H. Ryeng

Java Database Connectivity (JDBC) Norvald H. Ryeng 1 Java Database Connectivity (JDBC) Norvald H. Ryeng ryeng@idi.ntnu.no 2 3 Denne forelesningen Hva er Derby og Java DB? Hva er JDBC? Slik fungerer det Slik gjør dere det (kokebok) 4 Hva er Derby og Java

Detaljer

Hva er Derby og Java DB? Denne forelesningen. Java Database Connectivity (JDBC) Hva er Derby og Java DB?

Hva er Derby og Java DB? Denne forelesningen. Java Database Connectivity (JDBC) Hva er Derby og Java DB? 1 2 Java Database Connectivity (JDBC) Norvald H. Ryeng ryeng@idi.ntnu.no 3 4 Denne forelesningen Hva er Derby og Java DB? Hva er Derby og Java DB? Hva er JDBC? Slik fungerer det Slik gjør dere det (kokebok)

Detaljer

ORDBMS og OODBMS i praksis

ORDBMS og OODBMS i praksis ORDBMS og OODBMS i praksis Lars Vidar Magnusson November 2, 2011 Lars Vidar Magnusson () Forelesning i DAS 01.11.2011 November 2, 2011 1 / 18 Eksempler på ORDBMS Flere av de store databaser i dag hevder

Detaljer

Applikasjonsutvikling med databaser

Applikasjonsutvikling med databaser Applikasjonsutvikling med databaser Lars Vidar Magnusson October 12, 2011 Lars Vidar Magnusson () Forelesning i DAS 10.10.2011 October 12, 2011 1 / 24 Applikasjonsutvikling med databaser Databaser tilbyr

Detaljer

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM 2 TEMA 1 MULTIPROSESSERING MED DATASTEGET Multiprosessering har lenge vært et tema i SAS Stadig ny funksjonalitet er med på

Detaljer

Innocent Code Kapittel 1: The Basics Kapittel 2: Passing Data to Subsystems

Innocent Code Kapittel 1: The Basics Kapittel 2: Passing Data to Subsystems Innocent Code Kapittel 1: The Basics Kapittel 2: Passing Data to Subsystems INF329, høsten 2005 Utvikling av sikre applikasjoner Martin Lie martin@mq.no 2005-11-02 Kapittel 1: The Basics HTTP Sesjoner

Detaljer

Metaspråket for å beskrive grammatikk

Metaspråket for å beskrive grammatikk 1 SQL-syntaks Korrekt språkbruk bygger på et sett av regler. Eksempler: En SQL utvalgsspørring inneholder alltid ordene SELECT og FROM, mens WHERE og tilhørende betingelse er valgfri. Etter SELECT kan

Detaljer

To dagers sikkerhet...

To dagers sikkerhet... To dagers sikkerhet......på kun en time Ingemar Jansson Haverstad OUGN ettermiddagsseminar 2012 i Bergen ingemar@oraklet.no www.oraklet.no/foredrag 07.11.2012 2 Sikkerhet 2 Day + Security Guide (11.2),

Detaljer

DATAUTFORSKNING I EG, EG 7.1 OG EGENDEFINERTE FUNKSJONER SAS FANS I STAVANGER 4. MARS 2014, MARIT FISKAAEN

DATAUTFORSKNING I EG, EG 7.1 OG EGENDEFINERTE FUNKSJONER SAS FANS I STAVANGER 4. MARS 2014, MARIT FISKAAEN DATAUTFORSKNING I EG, EG 7.1 OG EGENDEFINERTE FUNKSJONER SAS FANS I STAVANGER 4. MARS 2014, MARIT FISKAAEN 2 INNLEDNING TEMA I SAS Enterprise Guide versjon 5.1 (februar 2012) kom det et nytt datautforskingsverktøy,

Detaljer

Datamodellering og databaser http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2

Datamodellering og databaser http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side

Detaljer

Paul Hinsch. MICADO AS Utviklet MapBasic applikasjoner i 10 år. Registreringsknapper og Objektdialog

Paul Hinsch. MICADO AS Utviklet MapBasic applikasjoner i 10 år. Registreringsknapper og Objektdialog Brukerdefinerte registreringsknapper og objektdialog Paul Hinsch MICADO AS Utviklet MapBasic applikasjoner i 10 år Paul Hinsch MICADO AS 2011 Brukere klarer ikke alltid selv å styre hvilket kartlag data

Detaljer

1. SQL datadefinisjon og manipulering

1. SQL datadefinisjon og manipulering Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag SQL datadefinisjon og manipulering Tore Mallaug 7.10.2008 Lærestoffet er utviklet for faget Databaser 1. SQL datadefinisjon og manipulering

Detaljer

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet. TDT445 Øving 4 Oppgave a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet. Nøkkel: Supernøkkel: Funksjonell avhengighet: Data i en database som kan unikt identifisere (et sett

Detaljer

Datamodellering og databaser SQL, del 2

Datamodellering og databaser  SQL, del 2 http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side

Detaljer

Datamodellering og databaser SQL, del 2

Datamodellering og databaser  SQL, del 2 http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side

Detaljer

JDBC. Java Data Base Connec.vity

JDBC. Java Data Base Connec.vity JDBC Java Data Base Connec.vity Package java.sql Package java.sql Array Blob CallableStatement Clob Connec.on DatabaseMetaData Driver NClob ParameterMetaData PreparedStatement Ref ResultSet ResultSetMetaData

Detaljer

Databaser & objektorientering.

Databaser & objektorientering. Databaser & objektorientering. Noen grunnbegreper innen objektorientering. Klasser og forekomster klasser beskriver strukturen for noe. Beskrivelsen inneholder: et navn attributter /egenskaper / tilstander

Detaljer

Databaser kort intro. Tom Heine Nätt

Databaser kort intro. Tom Heine Nätt Databaser kort intro Tom Heine Nätt Agenda Hva er en database? Hva er SQL? Hente ut data fra en database SELECT Behandle data i en database (kort) CREATE TABLE, INSERT, UPDATE, DELETE Databaser med flere

Detaljer

Videregående programmering 6

Videregående programmering 6 Videregående programmering 6 1. Feilkontroll i klasser uten unntaksobjekter Klasser skal lages sikre. Argumentverdier skal kontrolleres, og eventuelle feil skal rapporteres til klienten. I praksis har

Detaljer

Implementering av caching ved hjelp av Spring. Christian Vestøl 27.04.06

Implementering av caching ved hjelp av Spring. Christian Vestøl 27.04.06 Implementering av caching ved hjelp av Spring Christian Vestøl 27.04.06 Agenda Kort introduksjon til Spring med Spring Praktiske eksempler Forskjellige rammeverk for caching April 2006 2 Kort om Spring

Detaljer

Feilsøking i BO. Olav Syse, konsulent. Jan Terje Hansen, service manager. Be business intelligent

Feilsøking i BO. Olav Syse, konsulent. Jan Terje Hansen, service manager. Be business intelligent Feilsøking i BO Olav Syse, konsulent Jan Terje Hansen, service manager Hovedfokus: Business Intelligence 900 ansatte i Norge, Sverige, Danmark, Finland, Estland, Latvia, Litauen og Polen 135 ansatte i

Detaljer

Oppgave 1 1. Spørring: Resultattabell: 2. Spørring: Resultattabell: 3. Spørring:

Oppgave 1 1. Spørring: Resultattabell: 2. Spørring: Resultattabell: 3. Spørring: Kjell Toft Hansen 02.10.2008 Opphavsrett: Forfatter og AITeL Lærestoffet er utviklet for faget LO151D Informatikk 1: databaser Oppgave 1 1. Spørring: SELECT oh.*, delnr, kvantum FROM ordrehode oh, ordredetalj

Detaljer

SQL 3: Opprette tabeller, datainnsetting og utsnitt

SQL 3: Opprette tabeller, datainnsetting og utsnitt SQL 3: Opprette tabeller, datainnsetting og utsnitt Læreboka kap. 4 03.11.2008 Kjell Toft Hansen 1 Datainnsetting Legg til en ny leverandor i tabellen leverandor INSERT INTO leverandor (lev_nr, lev_navn,

Detaljer

I denne leksjonen skal se på hvordan vi bruker innebygde og brukerdefinerte funksjoner.

I denne leksjonen skal se på hvordan vi bruker innebygde og brukerdefinerte funksjoner. Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Leksjon :MySQL - funksjoner Kjell Toft Hansen - revidert for MySQL av Tore Mallaug 27.02.2013 Lærestoffet er utviklet for faget Databaser

Detaljer

Integritetsregler i SQL

Integritetsregler i SQL UNIVERSITETET I OSLO Integritetsregler i SQL INF3100 8.2.2005 Ragnar Normann 1 Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet - fremmednøkler Domenebegrensende integritetsregler

Detaljer

Å lage Noark 4 uttrekk selv. Thomas Sødring thomas.sodring@jbi.hio.no 22452610/99570472

Å lage Noark 4 uttrekk selv. Thomas Sødring thomas.sodring@jbi.hio.no 22452610/99570472 Å lage Noark 4 uttrekk selv Thomas Sødring thomas.sodring@jbi.hio.no 22452610/99570472 Prosjektet IKA Kongsberg / HiOA Kan vi lage et Noark 4 uttrekk for en av IKA Kongsbergs kommuner? Uformell samarbeid

Detaljer

Integritetsregler i SQL. Primærnøkler

Integritetsregler i SQL. Primærnøkler Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet - fremmednøkler Domenebegrensende integritetsregler skranker på attributter og tupler Interrelasjonsskranker assertions Triggere INF212

Detaljer

Hvordan bryte seg inn i Oracle databaser?

Hvordan bryte seg inn i Oracle databaser? Hvordan bryte seg inn i Oracle databaser? Ingemar Jansson Haverstad ingemar@oraklet.no www.oraklet.no/foredrag Version 1.0 13.03.2007 Bakgrunn Kilder Verktøy Passord Rettigheter Oracle programvare SQL*Net

Detaljer

Brukerveiledning for Intelligent Converters MySQL Migration Toolkit IKA Trøndelag IKS 2012

Brukerveiledning for Intelligent Converters MySQL Migration Toolkit IKA Trøndelag IKS 2012 Om verktøyet Formålet med dette verktøyet er å migrere informasjon fra en databasevariant til en annen, i denne veiledningen fra Oracle til MySQL. Dette gjøres som første ledd i en avleveringsprosess.

Detaljer

Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007.

Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007. Object interaction Grunnleggende programmering i Java Monica Strand 3. september 2007 1 Innhold Til nå: Hva objekter er og hvordan de implementeres I klassedefinisjonene: klassevariable (fields), konstruktører

Detaljer

Agenda. Data og grenser Kontekster XSS XSS og kompliserende kontekster Injection attacks Beskyttelse OWASP

Agenda. Data og grenser Kontekster XSS XSS og kompliserende kontekster Injection attacks Beskyttelse OWASP Når data krysser grenser Erlend Oftedal, BEKK Knut Vidar Siem, Objectware Communities in Action 10. mai 2010 Copyright The OWASP Foundation Permission is granted to copy, distribute and/or modify this

Detaljer

Å bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter

Å bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter Sortering og søking i Java-API-et Tabeller og Arraylister Comaparable Comparator equals() LC9D Videregående programmering Semesterplan: http://aitel.hist.no/fag/vprg/index_lc9d.php Høgskolen i Sør-Trøndelag,

Detaljer

PostGIS som navet i dataforvaltningen ved Skog og landskap

PostGIS som navet i dataforvaltningen ved Skog og landskap PostGIS som navet i dataforvaltningen ved Skog og landskap muligheter, utfordringer og erfaringer Ingvild Nystuen, Lars Opsahl, Teknologiforum, 12.11.2014 Skog og landskap Den store verden Data kopieres

Detaljer

Dagens tema: Sjekking

Dagens tema: Sjekking Dagens tema Dagens tema: Sjekking Navnebinding (obligatorisk oppgave 3) Biblioteket Logging Riktig bruk av navn (frivillig) Typesjekking (frivillig) Hele prosjektet Strukturen til kompilatoren vår f.pas

Detaljer

MySQL. Historikk. Nedlasting og installasjon

MySQL. Historikk. Nedlasting og installasjon 1 MySQL MySQL kan lastes ned gratis fra Internett (dev.mysql.com/doc). Vi forklarer hvordan man laster ned og installerer verktøyet, og også hvordan man kommer i gang med å lage databaser i MySQL. Historikk

Detaljer

Å programmere databasetjeneren JavaDB. Programkoden ligger i databasen

Å programmere databasetjeneren JavaDB. Programkoden ligger i databasen http://www.aitel.hist.no/fag/_dmdb/ Å programmere databasetjeneren JavaDB Programkoden ligger i databasen: hva, hvorfor og hvordan side 2-5 Hallo til verden (eksempel) side 6 CallSpec s side 7 CREATE PROCEDURE

Detaljer

Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket

Programmeringsspråk for nybegynnere. Krav til språket. Krav til språket. Krav til språket Programmeringsspråk for nybegynnere Krav til språket Hva om vi laget vårt eget språk til INF1000? Programmeringsspråket må være så enkelt som mulig. (Programmering er vanskelig nok som det er.) Hvilke

Detaljer

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ragnar Normann 1

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ragnar Normann 1 UNIVERSITETET I OSLO SQL Structured Query Language (forts.) Institutt for Informatikk INF3100 7.2.2005 Ragnar Normann 1 null Resultatet av å evaluere et uttrykk som produserer en skalar verdi, kan være

Detaljer

I denne leksjonen skal se på hvordan vi bruker innebygde og brukerdefinerte funksjoner.

I denne leksjonen skal se på hvordan vi bruker innebygde og brukerdefinerte funksjoner. Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Leksjon 04:Funksjoner Kjell Toft Hansen 13.09.2009 Lærestoffet er utviklet for faget LO177D Databaseprogrammering med PLSQL 1. Funksjoner

Detaljer

SuperOffice hurtigstart guide

SuperOffice hurtigstart guide SuperOffice hurtigstart guide Searchdaimon ES (Enterprise Server) Innholdsfortegnelse Innlednig... 2 Instalere SuperOffice konektor... 3 Steg 2 Database driver... 4 Steg 3 Database setting... 5 Steg 4

Detaljer

Feilmelding Årsak Løsning

Feilmelding Årsak Løsning Request for the permission of type 'System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed Feil oppstod i Window.DialogWindow:

Detaljer

Pen- tes'ng av webservices. Asbjørn Reglund Thorsen Gruppe- og utviklingsleder UIO/FSAT TwiDer: @fuzzerman

Pen- tes'ng av webservices. Asbjørn Reglund Thorsen Gruppe- og utviklingsleder UIO/FSAT TwiDer: @fuzzerman Pen- tes'ng av webservices Asbjørn Reglund Thorsen Gruppe- og utviklingsleder UIO/FSAT TwiDer: @fuzzerman Om meg Gruppe- og utviklingsleder på FSAT Felles studieadministra'vt tjenestesenter Sikkerhetsekspert

Detaljer

Transaksjoner og flerbrukerproblematikk. Transaksjoner

Transaksjoner og flerbrukerproblematikk. Transaksjoner LC238D http://www.aitel.hist.no/fag/_dmdb/ Transaksjoner og flerbrukerproblematikk Transaksjoner side 2-4 Låseteknikker side 5 Isolasjonsnivåer side 6-7 Flerbrukerproblemer i fbm utførelse av transaksjoner

Detaljer

From a table based Feature Catalogue to GML Application schemas

From a table based Feature Catalogue to GML Application schemas From a table based Feature Catalogue to GML Application schemas 05/ 09/ 2015 EuroSDR Data modelling workshop, Copenhagen 28.-30.1.2015 Knut Jetlund Norwegian Public Roads Administration knut.jetlund@vegvesen.no

Detaljer

TESTAPI. Deviations and Reporting

TESTAPI. Deviations and Reporting TESTAPI Deviations and Reporting FORORD Dette er samling av alle testapi PHP-skripter vi måtte skrive, da vi fant ut at oppdragsgiveren ikke rakk å skaffe oss ekte API for CEMAsys. Vi måtte ha API både

Detaljer

Delinnlevering 2. INF1050, våren Inge Svale Hauger Handagard (ishandag) Tor Hildrum (thildru)

Delinnlevering 2. INF1050, våren Inge Svale Hauger Handagard (ishandag) Tor Hildrum (thildru) Delinnlevering 2 INF050, våren 2005 Inge Svale Hauger Handagard (ishandag) ihan@broadpark.no Tor Hildrum (thildru) thhildru@student.matnat.uio.no Øystein Riiser Gundersen (oysteirg) oystein.rg@gmail.com

Detaljer

Transaksjoner og flerbrukerproblematikk. Transaksjoner

Transaksjoner og flerbrukerproblematikk. Transaksjoner LC238D http://www.aitel.hist.no/fag/_dmdb/ Transaksjoner og flerbrukerproblematikk Transaksjoner side 2-4 Låseteknikker side 5 Isolasjonsnivåer side 6-7 Flerbrukerproblemer i fbm utførelse av transaksjoner

Detaljer

Effektiv Systemadministrasjon

Effektiv Systemadministrasjon Effektiv Systemadministrasjon UBW MILESTONE WILLIAM NILSEN Introduksjon William Nilsen ASP/Cloud avdelingen i Evry Jobbet flere år med generelt teknisk drift og ca 3 år med drift av UBW ASP/Cloud avdelingen

Detaljer

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011)

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse

Detaljer

Forord Dette er testdokumentasjonen skrevet i forbindelse med hovedprosjekt ved Høgskolen i Oslo våren 2010.

Forord Dette er testdokumentasjonen skrevet i forbindelse med hovedprosjekt ved Høgskolen i Oslo våren 2010. TESTDOKUMENTASJON Forord Dette er testdokumentasjonen skrevet i forbindelse med hovedprosjekt ved Høgskolen i Oslo våren 2010. Dokumentet beskriver hvordan applikasjonen er testet. Dokumentet er beregnet

Detaljer

Om verktøyet. Installering av MySQL Migration Toolkit. Installer toolkitet. Brukerveiledning til Intelligent Converters MySQL Migration Toolkit

Om verktøyet. Installering av MySQL Migration Toolkit. Installer toolkitet. Brukerveiledning til Intelligent Converters MySQL Migration Toolkit Om verktøyet Formålet med dette verktøyet er å migrere informasjon fra en databasevariant til en annen, i denne veiledningen fra Oracle til MySQL. Dette gjøres som første ledd i en avleveringsprosess.

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 4.mai 2011 Varighet: 0900-1300 Emnekode: Emnenavn: Klasse(r): LO191D / LC191D Campus: LC191D Videregående

Detaljer

EMPIC MEDICAL. Etterutdanningskurs flyleger 21. april Lars (Lasse) Holm Prosjektleder Telefon: E-post:

EMPIC MEDICAL. Etterutdanningskurs flyleger 21. april Lars (Lasse) Holm Prosjektleder Telefon: E-post: EMPIC MEDICAL Etterutdanningskurs flyleger 21. april 2017 Lars (Lasse) Holm Prosjektleder Telefon: +47 976 90 799 E-post: Lrh@caa.no it-vakt@caa.no Luftfartstilsynet T: +47 75 58 50 00 F: +47 75 58 50

Detaljer

Du må håndtere disse hendelsene ved å implementere funksjonene init(), changeh(), changev() og escape(), som beskrevet nedenfor.

Du må håndtere disse hendelsene ved å implementere funksjonene init(), changeh(), changev() og escape(), som beskrevet nedenfor. 6-13 July 2013 Brisbane, Australia Norwegian 1.0 Brisbane har blitt tatt over av store, muterte wombater, og du må lede folket i sikkerhet. Veiene i Brisbane danner et stort rutenett. Det finnes R horisontale

Detaljer

Løsningsforslag Test 2

Løsningsforslag Test 2 Løsningsforslag Test 2 Oppgave 1.1: Interface definerer et grensesnitt som kan implementeres av flere klasser. Dette gir en standardisert måte å kommunisere med objekter av en eller flere relaterte klasser.

Detaljer

Høgskolen i Telemark EKSAMEN 6102 DATABASER 10.12.2015. Tid: 10-14. Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1

Høgskolen i Telemark EKSAMEN 6102 DATABASER 10.12.2015. Tid: 10-14. Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1 Høgskolen i Telemark EKSAMEN 6102 DATABASER 10.12.2015 Tid: 10-14 Målform: Sidetall: Hjelpemidler: Merknader: Bokmål/nynorsk 13 med forside Ingen Ingen Vedlegg: Eksempeldata til oppgave 1 Eksamensresultater

Detaljer

Vi skal se på lambda-uttrykk. Følgende er definerte og vil bli brukt gjennom oppgaven

Vi skal se på lambda-uttrykk. Følgende er definerte og vil bli brukt gjennom oppgaven SLI 230 - side 2 av 8 EKSAMENSOPPGAVE - SLI 230 - VÅR 2000 Nedenfor følger eksamensoppgaver i SLI 230. Først om oppgavene Bakerst følger to sider med hjelp slik det er avtalt - liste over primitiver fra

Detaljer

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først

Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Køer Hva er en kø? En lineær datastruktur der vi til enhver tid kun har tilgang til elementet som ble lagt inn først Et nytt element legges alltid til sist i køen Skal vi ta ut et element, tar vi alltid

Detaljer

Innføring i bruk av CGI4VB

Innføring i bruk av CGI4VB Innføring i bruk av CGI4VB Her kommer en enkel innføring i bruk av modulen CGI4VB som kan benyttes for å lage CGI programmer i Visual Basic. CGI er en forkortelse for Common Gateway Interface den kommunikasjonsprotokollen

Detaljer

Eksamen i Internetteknologi Fagkode: IVA1379

Eksamen i Internetteknologi Fagkode: IVA1379 Høgskolen i Narvik Side 1 av 5 Eksamen i Internetteknologi Fagkode: IVA1379 Tid: Mandag, 07.06.04, 9:00-12:00 Tillatte hjelpemidler: Alle trykte og skrevne hjelpemidler tillatt. Eksamen består av 4 oppgaver

Detaljer

Innføring i bruk av CGI4VB

Innføring i bruk av CGI4VB Innføring i bruk av CGI4VB Her kommer en enkel innføring i bruk av modulen CGI4VB som kan benyttes for å lage CGI programmer i Visual Basic. CGI er en forkortelse for Common Gateway Interface den kommunikasjonsprotokollen

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - Kandidatnr: AITeL Eksamensdato: 2.desember 2009 Varighet: 0900-1300 Emnekode: Emnenavn: Klasse(r): LO191D / LC191D LO191D Videregående programmering

Detaljer

1 Kodegenerering fra Tau Suiten

1 Kodegenerering fra Tau Suiten Kodegenerering fra Tau Suiten For å generere Javakode eller en annen form for programmeringskode ut i fra Tau suiten, er det visse ting som må være utført.. En UML modell må eksistere og være korrekt.

Detaljer

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1 UNIVERSITETET I OSLO SQL Structured Query Language (forts.) Institutt for Informatikk INF3100 11.2.2008 Ellen Munthe-Kaas 1 null Resultatet av å evaluere et uttrykk som produserer en skalar verdi, kan

Detaljer

DBS18 - Strategier for Query-prosessering

DBS18 - Strategier for Query-prosessering Side 1 for Databaser DBS18 - Strategier for Query-prosessering søndag 22. mai 2016 13.03 Pensum 18.1-18.4, side 655-674, unntatt 18.4.4 og 18.4.5 En spørring som blir skrevet i et høynivå-språk, må bli

Detaljer

1. Innføring i bruk av MySQL Query Browser

1. Innføring i bruk av MySQL Query Browser Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Innføring i bruk av MySQL Query Browser Kjell Toft Hansen 28.02.2007 Lærestoffet er utviklet for faget LV338D Databaseadministrasjon 1. Innføring

Detaljer

En lett innføring i foreninger (JOINs) i SQL

En lett innføring i foreninger (JOINs) i SQL En lett innføring i foreninger (JOINs) i SQL Noen ord om forening (JOIN)! 2 JOINs til gjennomgang! 3 1. INNER JOIN! 3 Eksempel på [INNER] JOIN! 4 NATURAL JOIN! 5 Eksempel på NATURAL JOIN! 5 2. LEFT [OUTER]

Detaljer

Presentasjon av gruppe 7: Erik Østensen, Henning Østensen og Kenneth Ådalen

Presentasjon av gruppe 7: Erik Østensen, Henning Østensen og Kenneth Ådalen Presentasjon av gruppe 7: Erik Østensen, Henning Østensen og Kenneth Ådalen Hva er ibatis Rammeverk laget for: Forenkling av database oppkoblinger Separering av SQL kode fra kildekode Data access objects

Detaljer

Obligatorisk oppgave 3 i Databaseadministrasjon.

Obligatorisk oppgave 3 i Databaseadministrasjon. Obligatorisk oppgave 3 i Databaseadministrasjon. Applikasjonsutvikling med databaser Gruppenummer 7 Av Kai Hagali Ole J. Schön Cato Goffeng Høgskolen i Østfold 22. Oktober 2012 Innhold 1 Tilkobling til

Detaljer

Database security. Kapittel 14 Building Secure Software. Inf329, Høst 2005 Isabel Maldonado st10900@student.uib.no

Database security. Kapittel 14 Building Secure Software. Inf329, Høst 2005 Isabel Maldonado st10900@student.uib.no Database security Kapittel 14 Building Secure Software Inf329, Høst 2005 Isabel Maldonado st10900@student.uib.no Kort introduksjon Database er en organisert samling av data. SQL(Structured Query Language)

Detaljer

UNIVERSITETET SQL. Structured Query Language (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1

UNIVERSITETET SQL. Structured Query Language (forts.) Institutt for Informatikk. INF Ellen Munthe-Kaas 1 UNIVERSITETET IOSLO SQL Structured Query Language g (forts.) Institutt for Informatikk INF3100 9.2.2009 Ellen Munthe-Kaas 1 null Resultatet av å evaluere et uttrykk som produserer en skalar verdi, kan

Detaljer

UI-View Installasjon og konfigurasjon for IGate + RX<->TX av meldinger og ingen ting annet!

UI-View Installasjon og konfigurasjon for IGate + RX<->TX av meldinger og ingen ting annet! UI-View Installasjon og konfigurasjon for IGate + RXTX av meldinger og ingen ting annet! For å fullføre denne installasjon trenger du en PC med Windows XP/Vista/7, fast Internett forbindelse og en TNC

Detaljer

Oppgave #1 Tablespacer, Tabeller, Indexer, og Brukere

Oppgave #1 Tablespacer, Tabeller, Indexer, og Brukere IS-203 Oblig innlevering: Del 4 Frist: 15.04.2011 Oppgave #1 Tablespacer, Tabeller, Indexer, og Brukere Vi har lært hvordan man oppretter tablespacer og, underveis, lært om de ulike måter å forvalte extentene

Detaljer

som blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive,

som blanker skjermen (clear screen). Du får en oversikt over alle kommandoene ved å skrive, 1. Last ned og installer XAMPP. 2. Sjekk at alt fungerer. 3. MySQL. Vi begynner med databaseserveren, MySQL. Gå til DOS klarmelding eller ledetekst (finnes under tilbehør på startmenyen om du ikke som

Detaljer

Installasjonsveiledning

Installasjonsveiledning Installasjonsveiledning Magne Rodem og Jan-Erik Strøm 18. juni 2006 Innhold 1 Installasjon av Web Service 3 1.1 Krav........................................... 3 1.2 Installasjon av Sun Java System Application

Detaljer

6105 Windows Server og datanett

6105 Windows Server og datanett 6105 Windows Server og datanett Labøving: Deling av mapper, filer og skrivere i arbeidsgruppe Oppgavebeskrivelse Her forklares kort hva øvingen går ut på for de som ønsker å finne løsningen selv. Hvis

Detaljer

Tilrettelegging av store datagrunnlag for analyse med SAS Scalable Performance Data Engine (SPDE) Steinar Helstrup 8.juni 2017

Tilrettelegging av store datagrunnlag for analyse med SAS Scalable Performance Data Engine (SPDE) Steinar Helstrup 8.juni 2017 Tilrettelegging av store datagrunnlag for analyse med SAS Scalable Performance Data Engine (SPDE) Steinar Helstrup 8.juni 2017 Agenda Bakgrunn Strukturering av datagrunnlag for analyse Last av datagrunnlag

Detaljer

SQL-omgivelser. SQL-omgivelse

SQL-omgivelser. SQL-omgivelse SQL-omgivelser SQL-omgivelse cluster katalog katalog katalog skjema skjema INF212 v2003 1 SQL-omgivelse SQL-omgivelse: Rammeverk som data kan eksistere under og hvor SQL-operasjoner på dataene kan eksekveres.

Detaljer

>>12 Arbeide med MySQL

>>12 Arbeide med MySQL 106 Snarveien til MySQL og Dreamweaver CS5 >>12 Arbeide med MySQL I dette kapittelet vil du lære hvordan du installerer MySQL Workbench å opprette prosjekter å lage tabeller hvordan du ser på innholdet

Detaljer

Dagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn?

Dagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn? Dagens tema: 12 gode råd for en kompilatorskriver Hva skal gjøres med navn? Sjekking av navn Hvordan sjekke navn? Testutskrifter 12 gode råd En kompilator må også sjekke riktig navnebruk: Det må ikke forekomme

Detaljer

Dagens tema: 12 gode råd for en kompilatorskriver

Dagens tema: 12 gode råd for en kompilatorskriver Dagens tema: 12 gode råd for en kompilatorskriver Hvordan sjekke navn? Testutskrifter 12 gode råd Hva skal gjøres med navn? Sjekking av navn En kompilator må også sjekke riktig navnebruk: Det må ikke forekomme

Detaljer

INF1300 Det meste av resten av SQL. Utleggsark v. 2.0

INF1300 Det meste av resten av SQL. Utleggsark v. 2.0 INF1300 Det meste av resten av SQL Utleggsark v. 2.0 Dagens temaer Sammenligning med tekstmønstre Aggregeringsfunksjoner Nestede spørsmål Gruppering Relasjonssammenligninger: View JDBC exists in any all

Detaljer

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad.

EKSAMEN. Les gjennom alle oppgavene før du begynner. Husk at det ikke er gitt at oppgavene står sortert etter økende vanskelighetsgrad. EKSAMEN Emnekode: Emne: ITM20606 Webprogrammering med PHP Dato: Eksamenstid: 11/12-2007 09.00-13.00 Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater (håndskrevne/maskinskrevne) Faglærer: Tom

Detaljer

SQL, del 1 - select. Hva er SQL?

SQL, del 1 - select. Hva er SQL? LC238D http://www.aitel.hist.no/fag/_dmdb/ SQL, del 1 - select Hva er SQL? side 2 Eksempelbase side 3 SELECT-setningen, syntaks side 4-5 Operatorer side 6 Å hente ut et radintervall fra resultatsettet

Detaljer

MySQL-database, php. Innhold. 8 MySQL-database, php. 8.1 Databasen MySQL

MySQL-database, php. Innhold. 8 MySQL-database, php. 8.1 Databasen MySQL Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Helge Hafting 16.10.2007 Lærestoffet er utviklet for faget LV476D/LN476D Linux systemdrift Innhold 8 1 8.1 Databasen MySQL.............................

Detaljer

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer

INF3430. Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer INF3430 Funksjoner og prosedyrer Standardbiblioteker Komplekse sekvensielle systemer Innhold Funksjoner og operatorer Prosedyrer Begrepet overload Biblioteker Package/package body Standard biblioteker

Detaljer

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1 Delkapittel 3.1 Grensesnittet Liste Side 1 av 11 Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1 3.1 En beholder 3.1.1 En beholder En pappeske er en beholder En beholder er noe vi kan legge ting

Detaljer

EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009 Tid: kl. 0900-1300

EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009 Tid: kl. 0900-1300 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009

Detaljer

Installasjonen krever en Windows 2003 server innmeldt i domene.

Installasjonen krever en Windows 2003 server innmeldt i domene. Installasjon av IAS Installasjonen krever en Windows 2003 server innmeldt i domene. Det kreves en IAS server pr. domene Steg 1) Installasjon av IAS Gå til Kontrollpanel Legg til eller fjern programmer

Detaljer

Ulike DBMSer. Mest kjente: Oracle PostGreSQL* MySQL* SQLServer* DB2 SQLite Access (DBMS og utv. verktøy i ett) *Skal benyttes i kurset.

Ulike DBMSer. Mest kjente: Oracle PostGreSQL* MySQL* SQLServer* DB2 SQLite Access (DBMS og utv. verktøy i ett) *Skal benyttes i kurset. Ulike DBMSer Mest kjente: Oracle PostGreSQL* MySQL* SQLServer* DB2 SQLite Access (DBMS og utv. verktøy i ett) osv *Skal benyttes i kurset. Tom Heine Nätt / Edgar Bostrøm Hva er likt for disse (De fleste

Detaljer

1. Kontrollstrukturer og løkker

1. Kontrollstrukturer og løkker Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Leksjon 02: Kontrollstrukturer og løkker Kjell Toft Hansen 23.06.2010 Lærestoffet er utviklet for faget LO177D Databaseprogrammering med

Detaljer

TDT4110 IT Grunnkurs Høst 2015

TDT4110 IT Grunnkurs Høst 2015 TDT4110 IT Grunnkurs Høst 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Løsningsforlag Auditorieøving 1 1 Teori Løsning er skrevet med uthevet tekst

Detaljer

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid: 09.00-13.00

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid: 09.00-13.00 EKSAMEN Emnekode: ITM20606 ITF10208 Dato: Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid: 09.00-13.00 05/06-2009 Hjelpemidler: 2 A4 ark (4 sider) med egenproduserte notater

Detaljer

Om Samba/fildeling. Hans Nordhaug 17.09.2013. Institutt for informatikk Høgskolen i Molde

Om Samba/fildeling. Hans Nordhaug 17.09.2013. Institutt for informatikk Høgskolen i Molde Om Samba/fildeling Hans Nordhaug Institutt for informatikk Høgskolen i Molde 17.09.2013 Tema 1 Introduksjon Om SMB Om Samba Hvorfor Samba? 2 Generelt Delte ressurser Server Message Block En protokoll for

Detaljer

Elektronisk innlevering/electronic solution for submission:

Elektronisk innlevering/electronic solution for submission: VIKINGTIDSMUSEET Plan- og designkonkurranse/design competition Elektronisk innlevering/electronic solution for submission: Det benyttes en egen elektronisk løsning for innlevering (Byggeweb Anbud). Dette

Detaljer

LocalBank Prosjektbeskrivelse

LocalBank Prosjektbeskrivelse LocalBank Prosjektbeskrivelse INNHOLD MÅL... 2 STRUKTUR... 2 IMPLEMENTASJON AV ILOCALBANKREPOSITORY... 3 GUI... 4 EXCEPTION... 4 KODE... 4 NOEN KLASSER OG SPESIELLE EMNER SOM DE VISER... 5 KLASSE DIAGRAMMER...

Detaljer