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

Oppgave 1 (Opprett en database og en tabell)

Oppgave 1 (Opprett en database og en tabell) Oppgave 1 (Opprett en database og en tabell) 1) I «Object Explorer» (i «SQL Server Management Studio»), høyreklikk over Databases : 1 2 2) Skriv så databasenavnet og klikk OK: 3) Plasser så kursoren på

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

SQL: Datatyper m.m. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12

SQL: Datatyper m.m. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12 SQL: Datatyper m.m. Evgenij Thorstensen V18 Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12 Datatyper, kort om mye Vi går en rask ekskursjon i manualen, Kap. 8. https://www.postgresql.org/docs/9.2/sql.html

Detaljer

Sikkerhet og tilgangskontroll i RDBMS-er

Sikkerhet og tilgangskontroll i RDBMS-er Sikkerhet og tilgangskontroll i RDBMS-er IN2090 14. nov 2018 Mathias Stang 1 Agenda Modeller for tilgangskontroll Brukere og roller i RDBMS-er GRANT og REVOKE SQL Injections 2 Hovedmål med databasesikkerhet

Detaljer

Bruke SQL fra Python. Med Psycopg2

Bruke SQL fra Python. Med Psycopg2 Bruke SQL fra Python Med Psycopg2 0 1 (1/3) 1 (2/3) 1 (3/3) 2 Pakken psycopg2 3 Pakken psycopg2 De viktigste klassene vi trenger i psycopg2: connection Håndterer forbindelsen fra Python til PostgreSQL

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

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

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

SQL: Systemaspekter. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Systemaspekter V18 1 / 21

SQL: Systemaspekter. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Systemaspekter V18 1 / 21 SQL: Systemaspekter Evgenij Thorstensen V18 Evgenij Thorstensen SQL: Systemaspekter V18 1 / 21 Oversikt Hvordan et DBMS er organisert (med psql som eksempel) Trelagsarkitektur og impedance mismatch Databasetilgangsmåter

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

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

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

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

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

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

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

Bruke SQL fra Java. Med JDBC (Java Database Connec/vity)

Bruke SQL fra Java. Med JDBC (Java Database Connec/vity) Bruke SQL fra Java Med JDBC (Java Database Connec/vity) 0 1 1 1 2 Package java.sql 3 Package java.sql (SE 7) Array Blob CallableStatement Clob ConnecIon DatabaseMetaData Driver NClob ParameterMetaData

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

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

Repetisjonsforelesning, SQL og utover

Repetisjonsforelesning, SQL og utover Repetisjonsforelesning, SQL og utover Evgenij Thorstensen V18 Evgenij Thorstensen Repetisjon V18 1 / 23 Temaer SQL, semantikk Databasearkitektur Spørringskompilering og optimisering Indekser Transaksjonshåndtering

Detaljer

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3 Relational Algebra 1 Unit 3.3 Unit 3.3 - Relational Algebra 1 1 Relational Algebra Relational Algebra is : the formal description of how a relational database operates the mathematics which underpin SQL

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

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

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

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

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

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

Å 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

IN2090 Databaser og datamodellering. 08 Typer og skranker

IN2090 Databaser og datamodellering. 08 Typer og skranker IN2090 Databaser og datamodellering 08 Typer og skranker Leif Harald Karlsen leifhka@ifi.uio.no Universitetet i Oslo 1 / 29 Databasers typesystem De fleste relasjonelle databaser har et strengt typesystem

Detaljer

Databasers typesystem. IN2090 Databaser og datamodellering. 08 Typer og skranker. SQL-standarden vs. RDBMSer. Hvilke datatyper har vi

Databasers typesystem. IN2090 Databaser og datamodellering. 08 Typer og skranker. SQL-standarden vs. RDBMSer. Hvilke datatyper har vi IN2090 Databaser og datamodellering 08 Typer og skranker Leif Harald Karlsen leifhka@ifi.uio.no Databasers typesystem De fleste relasjonelle databaser har et strengt typesystem Alle kolonner må ha en tilhørende

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

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

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

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

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

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

INF3100 V2018 Obligatorisk oppgave nr. 2

INF3100 V2018 Obligatorisk oppgave nr. 2 INF3100 V2018 Obligatorisk oppgave nr. 2 Oppgavesettet skal løses og leveres individuelt. Gjennomføring og innlevering av oppgaven skal skje i henhold til gjeldende retningslinjer ved Institutt for informatikk,

Detaljer

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering?

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet doble.rusc (kalt kildekoden): Hva er kompilering? Dagens tema Dagens tema Kildekode Hva er kompilering? Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Hvordan oppdage feil? Anta at vi lager dette lille

Detaljer

Isolasjon i postgres og mysql

Isolasjon i postgres og mysql Isolasjon i postgres og mysql Evgenij Thorstensen V19 Evgenij Thorstensen Isolasjon i postgres og mysql V19 1 / 20 Isolasjonsnivåer Read uncommitted Read committed Repeatable read Serializable SELECT...

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

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

IN2090 Databaser og datamodellering. 08 Typer og skranker

IN2090 Databaser og datamodellering. 08 Typer og skranker IN2090 Databaser og datamodellering 08 Typer og skranker Leif Harald Karlsen leifhka@ifi.uio.no Universitetet i Oslo 1 / 29 Databasers typesystem De fleste relasjonelle databaser har et strengt typesystem

Detaljer

Repetisjon: Normalformer og SQL

Repetisjon: Normalformer og SQL IN2090 databaser og datamodellering Repetisjon: Normalformer og SQL Mathias Stang og Stein Michael Storleer 21. november 2018 1 Agenda Normalformer Funksjonelle avhengigheter Nøkler Finne hvilke normalformer

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

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

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

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

Å 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

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

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

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

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

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

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

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

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

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

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

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

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

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

Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer)

Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer) Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember 2018 14:30 18:30 (4 timer) 1. Eksterne skranker (5%) I modellene nedenfor (ORM2) skal

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

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

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler

Detaljer

Compello Fakturagodkjenning Versjon 10 Software as a service. Tilgang til ny modulen Regnskapsføring

Compello Fakturagodkjenning Versjon 10 Software as a service. Tilgang til ny modulen Regnskapsføring Compello Fakturagodkjenning Versjon 10 Software as a service Tilgang til ny modulen Regnskapsføring Dokumentopplysninger 2018 Compello AS. Med enerett. Microsoft, MS-DOS og Windows er registrerte varemerker

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

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet (kalt kildekoden): Hva er kompilering?

Dagens tema. Hva er kompilering? Anta at vi lager dette lille programmet (kalt kildekoden): Hva er kompilering? Dagens tema Dagens tema Kildekode Hva er kompilering? Anta at vi lager dette lille programmet (kalt kildekoden): Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette

Detaljer

Compello Fakturagodkjenning Versjon 10.5 As a Service. Tilgang til Compello Desktop - Regnskapsføring og Dokument import

Compello Fakturagodkjenning Versjon 10.5 As a Service. Tilgang til Compello Desktop - Regnskapsføring og Dokument import Compello Fakturagodkjenning Versjon 10.5 As a Service Tilgang til Compello Desktop - Regnskapsføring og Dokument import Dokumentopplysninger 2018 Compello AS. Med enerett. Microsoft, MS-DOS og Windows

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

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

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

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

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

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

Integritetsregler i SQL

Integritetsregler i SQL UNIVERSITETET I OSLO Integritetsregler i SQL Institutt for Informatikk INF3100 13.2.2007 Ellen Munthe-Kaas 1 Integritetsregler i SQL Kandidat- og primærnøkler Referanseintegritet - fremmednøkler Domenebegrensende

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

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

Del 3: Evaluere uttrykk

Del 3: Evaluere uttrykk Del 3: Evaluere uttrykk Hva skal vi gjøre? Hvordan lagre Asp-verdier Hvilke operasjoner må jeg implementere? Er operasjonen lovlig? Utføre operasjonen Strukturen til interpreten vår f.asp 3&4 Interpret

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

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

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

INF1300 Det meste av resten av

INF1300 Det meste av resten av INF1300 Det meste av resten av SQL Utleggsark v. 1.0 Tekstmønstre I SQL kan vi bruke like for å sammenligne et tekst-attributt med et tekstmønster Et tekstmønster er en tekstkonstant hvor to tegn, kalt

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

SVARFORSLAG : Eksamen i IBE102 Webutvikling Våren 2017.

SVARFORSLAG : Eksamen i IBE102 Webutvikling Våren 2017. Avdeling for Logistikk SVARFORSLAG : Eksamen i IBE102 Webutvikling Våren 2017. Eksamensdag: 5. mai 2017 Tid: 9-13. Faglærer/tlf: Ketil Danielsen Hjelpemidler: Ingen. Antall sider, inkl. forsiden: 6 Målform:

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

SQL Structured Query Language. Definere tabeller Skranker Fylle tabeller med data

SQL Structured Query Language. Definere tabeller Skranker Fylle tabeller med data SQL Structured Query Language Definere tabeller Skranker Fylle tabeller med data Lage en tabell med SQL create table R (A 1 D 1 [S 1 ],... A n D n [S n ], [liste av skranker] R er navnet på relasjonen/tabellen

Detaljer