Om foredragsholderen

Størrelse: px
Starte visningen fra side:

Download "Om foredragsholderen"

Transkript

1 Om foredragsholderen Svenne Krap Cand.Merc Selvstændig programmør, DBA og SysAdmin Arbejdet med databaser i ti år (Mysql, DB2, Oracle, SQL Server og PostgreSQL) Arbejdet med PostgreSQL siden 1999

2 På dette foredrag Databaser generelt (7 slides) PostgreSQL (12 slides) Første gang (11 slides) Hands on (24 slides + live session) Afslutning

3 Databaser generelt

4 Hvad er en RDBS? En database (RDBS) er konceptuelt set en black-box storage engine, der styres via et kunstigt sprog (SQL). Databaser har to typer kommandoer, administrationskommandoer (DDL) og brugskommandoer (DML). De typiske (DML) er select, insert, update og delete.

5 Hvad er en RDBS (2) Et antal homogene data (kaldet rækker) har et antal målepunkter (kaldet felter) og samles i en tabel, et antal tabeller samles i en database. Først defineres datas udseende med create table (DDL), hvorefter de kan behandles med DMLkommandoer, fx. indsættes med insert. Eksisterende data kan opdateres med update eller slettes med delete. Endeligt kan data forespørges med select.

6 Hvad er en RDBS (3) Det er vigtigt at holde sig for øje, at SQL tænker i mængder, hvilket betyder at en forespørgsel sagtens kan være resultatløs men korrekt. Forestil jer: vælg alle deltagere (i rummet her), der er højere end 40 meter. Eller: Vælg alle tal som er lige og som er ulige Der er ikke noget galt med forespørgslerne, men der er (formodentligt) ikke nogen der opfylder kriteret. Dvs databasen ville svare tilbage ok, ingen fundet.

7 Hvad er en RDBS (4) Husk at selvom data typisk vises i en grid-control, har databaser konceptuelt meget lidt med regneark at gøre! For databaser er der et koncept af aktuel række, og den kan ikke referere til rækker før eller efter sig selv (men til sine egne felter og andre forespørgsler).

8 Den magiske select SELECT felter FROM kilder WHERE betingelser ORDER BY sortering Der sker nu (konceptuelt): Saml kilder Eliminer rækker der ikke opfylder betingelser Kopier / Skab felter til resultat Sorter resultat

9 Hvordan bliver man god til SQL 1) Tænk i mængde sprog fx. giv mig alle dem, hvor det (ikke) gælder at osv 2)Tænk i samme rækkefølge som databasen (kilder, begræsninger, felter og sortering) 3)Tænk på at der typisk er mere end en måde at udtrykke det samme på. (også med hensyn til hastighed) 4)Divide and conquer, prøv ikke at løse hele problemet (forespørgslen) i et forsøg, men tag den bid for bid alle databaser har gode interaktive værktøjer! 5)Lær og brug profiling værktøjerne (EXPLAN/EXPLAIN ANALYZE i PostgreSQL) 6)Lær og brug så mange features som muligt i SQL (der er en årsag til de findes!) 7) Undgå gui-værktøjerne Easy is the worst enemy of skilled 8)Øvelse gør mester

10 Termer brugt i dette foredrag Nogle database termer har forskellig mening ved forskellige leverandører, i dette foredrag betyder: Server = fysisk maskine Instans = een kørende udgave på en server lyttende til en given port på en given IP-adresse (flere instanser kan køre på samme server) Database = en samling af data kørende i een instans. Flere databaser kan køre simultant i en instans. Schema = namespaces i en given database

11 PostgreSQL

12 PostgreSQL historie 1977 Berkeley: Ingres (nu Computer Ass.) 1986 Berkeley: post Ingres (Postgres) Kommercielt Illustra -> Informix (nu, IBM) 1994: RIP Postgres 1995 Berkeley: SQL engine -> Postgres Udvikling uden for Berkeley PostgreSQL 6.0 (1996) Idag, PostgreSQL (8.3 i feature freeze)

13 PostgreSQL filosofi Datasikkerhed (ACID) Atomicity (transactions) Consistency (foreign keys) Isolation (transactions) Durability Korrekthed Count(*) Stabilitet Hastighed

14 PostgreSQL facts 'n' features BSD Licens (og kommercielle søskende) Alle POSIX platforme + Win32 Det meste af SQL92 og SQL99 MVCC (multi version concurrency control) VACUUM, men ingen undolog Native BLOBS og CLOBS (TOAST) Interfaces: C, C++,.NET, Perl, Python, Ruby, Tcl, JDBC, ODBC osv. PLs: Java, Perl, Python, Ruby, Tcl, C/C++, PL/PgSQL, R Unicode og Locale* Max Tablesize: 32TB Rowsize: 1,6TB Fieldsize: 1GB Columns:

15 PostgreSQL facts 'n' features (2) SQL 92/99 support: Subqueries (også i from-klausuler) read committed & serializable transaction levels Information schema (multi-column) Pkeys, Fkeys (restrict/cascade), check constraints, unique & not nulls Sequences LIMIT/OFFSET Partial og Functional indexes Table inheritance Async notification

16 Fremtiden 8.3 (lige om hjørnet): Tsearch2 (full-text) i core Asynkron commit Updateable cursors XML Masser af performance ting Senere: Fuld locale support Replikering i core Politik: Major release = 18 mdr., 8.3 = 12ish mdr., 8.4+ ukendt Kun nye features i major releases (kræver dump/restore)!

17 Hvem bruger PostgreSQL? Mig :) BASF.ORG Universiteter (Berkeley, Alabama, NSW, Oslo, Sydney, Prag) U.N. US CDC US Dep. of Labor Creative Commons IMDB Macworld Debian Sourceforge Fujitsu Sun Cisco Skype

18 PostgreSQL vs. andre MVCC er pessimistic version control Transaction levels kan være stricter end forespurgt Ingen planner hints (men sofistikeret statistisk optimizer) Aldrig uden for transactions (dog auto trans. wrap) PL/pgsql ligner PL/SQL (oracle) SQL syntax (MySQL: pas på string concat.) Ingen storage engines, ingen memory tables Contrib og andet eksternt udviklet Tsearch2 PostGIS Slony

19 PostgreSQL vs. andre (2) Ingen cross database selects! (dblink findes dog) Meget udvidbar (types, aggregates, languages, operators, conversions, rules) Kun to filer (pg_hba.conf, postgresql.conf) Alle catalog data ligger i basen (pg_...) og kan modificeres via SQL. from-less selects as i column alias er ikke optionelt Længdeangivelse på varchar ej nødvendig Count(*) Normalt ingen explict håndtering af CLOB eller BLOB pga. TOAST

20 Performance Generelt god, skaleringsproblemer ved store systemer (16+ CPUer, store disk systemer). Kører single-threaded.. dvs. multi-core/cpu kan kun udnyttes ved tilstrækkeligt antal simultane queries (kommerciel Bizgres MPP) Ikke så mange knobs and switches i opsætning, overlader så meget caching som muligt til O/S. Ingen planner hints

21 Performance (2) For x86 lineær skalering til ca. 10 concurrent queries, herfra flat Niagara længere lineær skalering, dog væsentlig lower throughput (single threading) Ved concurrency > 10 på woodcrest 3.0 = 600 rps

22 Performance (3) Skalerer lineært optil ca. 5 i concurrency derpå ydelsesfald! På intet tidspunkt over 525ish på 3.0 Woodcrest

23 Perfomance (4) Første industry standard benchmark (Jun 2007): SPECjAppServer2004 Næste benchmark (Jul 2007): SPECjAppServer2004 Oracle på lignende* hardware: 1000ish

24 Første gang

25 Installation og upgrade Installation: Installer pakke Initdb (eller re-initdb) Tun postgresql.conf og pg_hba.conf Tænd Profit... Upgrades Indenfor major release (8.2.1->8.2.4) : installer pakke Fra en major til en anden: 1) Installer ny version parallelt 2) DUMP gammel data med NY pg_dump! 3) Import dump i ny (psql < dump.sql)

26 Vedligehold Problem: Pessimistic storage strategy = dead rows Løsning: VACUUM (FULL/ANALYZE/FREEZE) Ny løsning: Auto vacuum daemon I praksis gør man tit begge dele Ellers glem den findes og brug den!

27 Brug Værktøjer: psql (cli) PhpPgAdmin (web) PgAdminIII (gui) Shelltools (createuser, createlang) Egne tools (husk psql -E) Jeg bruger primært psql (+ egne scripts + vcs), men afhængigt af opgave også de andre... HUSK: PgAdmin3 er IKKE til at vurdere perf. med (net latency + sløv gridcontrol tælles med!)

28 Sikkerhed Brugere laves direkte i sql (CREATE ROLE <navn> with password '<password>' LOGIN), adgang til baser styres via PG_HBA.CONF (husk HUP postmaster) samt evt. CONNECT-privilege. To adgangsveje: Lokale unix-sockets TCP/IP ( med/uden SSL) To modes : Trust Password/MD5

29 Første gang Næsten altid re-initdb... tegnsæt/locale Default user postgres Default database template1 Dvs. psql template1 postgres Første to normale kommandoer 1) create role sk with password 'secret' login; 2) create database sk with owner sk; Hvis min unixacc. er sk kan jeg nu logge på via psql eller psql database-navn da default via unix-sockets er trust.

30 Performance i 5 simple steps * 1) ALTID, ALTID nyeste, stable version! 6.x, 7.x, 8.0.x, 8.1.x (snart +8.2) er gammelt l*rt! ca. 20 % performance ekstra for hver major release siden 7.0 Meget lidt backportes (af core team) 2) Shared_buffers og Effective_cache_size til hhv. 0,25 og 0,50 gange system memory (husk sysctl) 3)ANALYZE (eller bedre VACUUM ANALYZE) tabeller tit og altid ved problemer med en tabel! 4)log_min_duration_statement for at finde sløve queries 5)EXPLAIN og EXPLAIN ANALYZE dine queries

31 En RL-optimering På en kundes system loadede en PHP-side på 20 sekunder. Siden indeholdt tre queries, hvoraf to afsluttede sub-sekund. Den sidste leverede det rette resultat, men langsomt. Først lidt statistik: > select count(*) from runs; count (1 row) > select count(*) from company_run; count (1 row)

32 En RL-optimering (2) explain analyze select r.*, (select count(*) from company_run where run_id = r.id) as leadcount from runs r where gone_through = true and not exists (select null from runs r2 where gone_through = false and r2.zipcode = r.zipcode) and not exists(select null from runs r3 where r3.zipcode = r.zipcode and r3.ts > r.ts) order by id; QUERY PLAN Index Scan using runs_pkey on runs r (cost= rows=225 width=37) (actual time= rows=699 loops=1) Filter: (gone_through AND (NOT (subplan)) AND (NOT (subplan))) SubPlan -> Seq Scan on runs r3 (cost= rows=1 width=0) (actual time= rows=1 loops=1484) Filter: ((zipcode = $1) AND (ts > $2)) -> Seq Scan on runs r2 (cost= rows=1 width=0) (actual time= rows=0 loops=1490) Filter: ((NOT gone_through) AND (zipcode = $1)) -> Aggregate (cost= rows=1 width=0) (actual time= rows=1 loops=699) -> Seq Scan on company_run (cost= rows=241 width=0) (actual time= rows=95 loops=699) Filter: (run_id = $0) Total runtime: ms (11 rows) Inner-loop * 27,119 ms = 18,95 sekunder!

33 En RL-optimering (3) create index company_run_run_id on company_run(run_id); explain analyze select r.*, (select count(*) from company_run where run_id = r.id) as leadcount from runs r where gone_through = true and not exists (select null from runs r2 where gone_through = false and r2.zipcode = r.zipcode) and not exists(select null from runs r3 where r3.zipcode = r.zipcode and r3.ts > r.ts) order by id; QUERY PLAN Index Scan using runs_pkey on runs r (cost= rows=225 width=37) (actual time= rows=699 loops=1) Filter: (gone_through AND (NOT (subplan)) AND (NOT (subplan))) SubPlan -> Seq Scan on runs r3 (cost= rows=1 width=0) (actual time= rows=1 loops=1484) Filter: ((zipcode = $1) AND (ts > $2)) -> Seq Scan on runs r2 (cost= rows=1 width=0) (actual time= rows=0 loops=1490) Filter: ((NOT gone_through) AND (zipcode = $1)) -> Aggregate (cost= rows=1 width=0) (actual time= rows=1 loops=699) -> Bitmap Heap Scan on company_run (cost= rows=241 width=0) (actual time= rows=95 loops=699) Recheck Cond: (run_id = $0) -> Bitmap Index Scan on company_run_run_id (cost= rows=241 width=0) (actual time= rows=95 loops=699) Index Cond: (run_id = $0) Total runtime: ms (13 rows) Inner-loop nu 699 * 0,280 ms = 195,72 ms!

34 En RL-optimering (4) create index runs_not_gone_through_zipcode on runs(zipcode) where gone_through = false; explain analyze select r.*, (select count(*) from company_run where run_id = r.id) as leadcount from runs r where gone_through = true and not exists (select null from runs r2 where gone_through = false and r2.zipcode = r.zipcode) and not exists(select null from runs r3 where r3.zipcode = r.zipcode and r3.ts > r.ts) order by id ; QUERY PLAN Index Scan using runs_pkey on runs r (cost= rows=225 width=37) (actual time= rows=699 loops=1) Filter: (gone_through AND (NOT (subplan)) AND (NOT (subplan))) SubPlan -> Seq Scan on runs r3 (cost= rows=1 width=0) (actual time= rows=1 loops=1484) Filter: ((zipcode = $1) AND (ts > $2)) -> Index Scan using runs_not_gone_through_zipcode on runs r2 (cost= rows=1 width=0) (actual time= rows=0 loops=1490) Index Cond: (zipcode = $1) -> Aggregate (cost= rows=1 width=0) (actual time= rows=1 loops=699) -> Bitmap Heap Scan on company_run (cost= rows=241 width=0) (actual time= rows=95 loops=699) Recheck Cond: (run_id = $0) -> Bitmap Index Scan on company_run_run_id (cost= rows=241 width=0) (actual time= rows=95 loops=699) Index Cond: (run_id = $0) Total runtime: ms (13 rows)

35 En RL-optimering (5) create index runs_zipcode on runs(zipcode) ; explain analyze select r.*, (select count(*) from company_run where run_id = r.id) as leadcount from runs r where gone_through = true and not exists (select null from runs r2 where gone_through = false and r2.zipcode = r.zipcode) and not exists(select null from runs r3 where r3.zipcode = r.zipcode and r3.ts > r.ts) order by id ; QUERY PLAN Index Scan using runs_pkey on runs r (cost= rows=225 width=37) (actual time= rows=699 loops=1) Filter: (gone_through AND (NOT (subplan)) AND (NOT (subplan))) SubPlan -> Bitmap Heap Scan on runs r3 (cost= rows=1 width=0) (actual time= rows=1 loops=1484) Recheck Cond: (zipcode = $1) Filter: (ts > $2) -> Bitmap Index Scan on runs_zipcode (cost= rows=2 width=0) (actual time= rows=3 loops=1484) Index Cond: (zipcode = $1) -> Bitmap Heap Scan on runs r2 (cost= rows=1 width=0) (actual time= rows=0 loops=1490) Recheck Cond: (zipcode = $1) Filter: (NOT gone_through) -> Bitmap Index Scan on runs_zipcode (cost= rows=2 width=0) (actual time= rows=3 loops=1490) Index Cond: (zipcode = $1) -> Aggregate (cost= rows=1 width=0) (actual time= rows=1 loops=699) -> Bitmap Heap Scan on company_run (cost= rows=241 width=0) (actual time= rows=95 loops=699) Recheck Cond: (run_id = $0) -> Bitmap Index Scan on company_run_run_id (cost= rows=241 width=0) (actual time= rows=95 loops=699) Index Cond: (run_id = $0) Total runtime: ms (19 rows)

36 Hands on

37 Limit/offset Bruges til at begrænse antallet af rækker, og flytte vinduet. select * from sometable order by id limit 10; select * from sometable order by id limit 10 offset 10; Husk selects uden order by er i tilfældig rækkefølge (typisk disklayout) og bør konceptuelt ikke bruges med limit/offset.

38 Sequences Når du skal bruge et autogenereret id-felt Er et navngivet objekt der giver næste tal i en række Garanti mod overlap, ikke mod huller! Skabes via CREATE SEQUENCE <navn> Kender principielt set kun 2 funktioner: nextval('<navn>') currval('<navn>') Kan dog selectes som tabel (mere info, ingen fremføring) Pseudotype serial sparer lidt tid: Serial = int4 not null default nextval('<tabelnavn>_seq')

39 Sequences DEMO create table test1 (id serial, navn varchar, primary key(id)); NOTICE: CREATE TABLE will create implicit sequence "test1_id_seq" for serial column "test1.id" NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "test1_pkey" for table "test1" CREATE TABLE insert into test1(navn) values ('Kurt'); INSERT 0 1 insert into test1(id, navn) values (default, 'Jens'); INSERT 0 1 insert into test1(id, navn) values (null, 'Ole'); ERROR: null value in column "id" violates not-null constraint select nextval('test1_id_seq'); nextval (1 row) insert into test1(id, navn) values (3, 'Niels'); INSERT 0 1

40 Sequences DEMO (2) create sequence customer_id_seq; create table company(company_id int4 not null default nextval('customer_id_seq'), company_name varchar not null, primary key(company_id)); create table person(person_id int4 not null default nextval('customer_id_seq'), person_name varchar not null, employee_of int4 not null references company, primary key(person_id));

41 Typer og casting PostgreSQL forsøger selv at finde de rette datatyper og konvertere om muligt. Nogle gange lykkes det ikke, og der kan man foran tekst angive et type-hint. Man kan også tvinge en type via CAST-funktionen eller dobbelt-kolon.

42 Typer og casting DEMO select '3'; select integer '3'; select float '3'; select 8/3; select cast(8 as float)/3; select 8 / 3::float; select ( * 1.04^50)::int4; select ' '; select date ' '; select timestamp ' ';

43 Tid og dato håndtering Fire datatyper handler om tid og dato: Date en simpel dato ' ' Timestamp er en dato og tid ' :45:00' Interval differencen mellem to Timestamps Time tid Date understøtter simpel addering og substrahering af heltal. Fx. ' ' + 5 = ' ' Timestamp kan adderes og substraheres af intervaller. Fx. ' :45:00' + interval '5 days' = ' :45:00'

44 Tid og dato håndtering (2) Vigtige funktioner: date_trunc(text,timestamp) beskærer timestamp til given præcision, fx. select date_trunc('quarter', ' :50:39'::timestamp); date_trunc :00:00 (1 row) extract(field from timestamp) henter (int) værdi fra timestamp

45 Tid og dato håndtering DEMO select age(' :50:00'::timestamp); select timestamp ' ' - timestamp ' '; select timestamp ' ' + interval '200 days'; select current_timestamp; select date_trunc('quarter', current_timestamp);

46 Transaktioner Transaktioner er krumptappen i ACID-compliant databaser. En transaktion sikrer at en gruppe af kommandoer enten alle sker eller slet ikke sker. Fire modes Read dirty: læs data som de er read committed: sikrer clean data Read repeated: sikrer at data forbliver ens i hele transaktionen Serializable: meget strengere, transaktioner failer ved ændrede data og skal nogle gange prøves igen

47 Transaktioner (2) Read committed er typisk standard. Kan fx. bruges til delete and re-fill strategier (dermed ingen huller i data availability). Serilizable bruges fx. til bank-konti. Transaktioner kan ikke køre parallelt da de ligger under fælles constraint (kontostand skal være større end 0 fx.) Serializable fejler hvis forudsætningerne ændrer sig.

48 Transactions i PGSQL PostgreSQL kører auto-commit mode som default, kun ganske få strukturelle kommandoer kører uden transaktioner. Auto-transaction mode disables ved explicit begin og explicit commit / rollback. Kun to modes mulige (pga. MVCC) : read committed og serializable. Uanvendelige modes opgraderes til strengere (read repeated -> serializable)

49 Foreign keys FKey sikrer at en reference til en anden tabel er gyldig. Ved indsættelse fejler transaktionen hvis referencen er ugyldig. Efterfølgende kan der ved ændringer (og sletninger) specificeres en af følgende strategier: Restrict (ændring mislykkes) Cascade (viderefør ændring) Set null Set default

50 Foreign keys DEMO create table companies(id serial, name varchar not null, primary key(id)); create table employees (id serial,name varchar not null, company_id int4 not null references company on update restrict on delete cascade, primary key(id));

51 Domains Bruges til at sikre ensartede datavalidering : create function test_ (varchar) returns boolean as... create domain nametype as varchar not null; create domain type as varchar check (test_ (value)); create table company (id serial, name nametype, type,... create table person(id serial, name nametype, type...) Nu er: - name not null - testes af funktion (men er ikke not null)

52 Partial Indexes Nogle gange findes data hvor kun et lille subset er interessant hele tiden (is_current = true). Partial indexes kan her både hjælpe på performance (pga. fysisk mindre indexes) og garantere uniqueness på det aktive sæt

53 Partial Indexes DEMO create table documents( id serial, filename varchar not null, is_current boolean not null default true, content varchar, primary key(id)); create unique index document_current_filename on documents(filename) where is_current = true; insert into documents (filename, content, is_current) values ('note.txt', 'husk 1', false); insert into documents (filename, content, is_current) values ('note.txt', 'husk 2', false); insert into documents (filename, content, is_current) values ('note.txt', 'husk 3', true); insert into documents (filename, content, is_current) values ('note.txt', 'husk 4', true); update documents set is_current = false where filename = 'note.txt' and is_current = true; insert into documents (filename, content, is_current) values ('note.txt', 'husk 4', true);

54 Functional indexes create table users (id serial, alias varchar not null, full_name varchar not null, primary key(id)); create index users_alias_ix on users(alias); Nu ønskes case-insensitive search på alias. select * from users where lower(alias) = 'something' Denne bruger dog ikke index, men dette kan opnås via create index users_alias_cis_ix on users(lower(alias));

55 Triggers Er en mekanisme til at køre en (PL) funktion ved ændringer i data (inserts/updates/deletes). Triggers kan kører FØR eller EFTER ændringen Triggers kan være på række eller statement niveau Triggers kan ændre data, blokere ændringen eller udføre yderligere ting (audit log fx).

56 Triggers DEMO create table login (id serial, username varchar, password varchar, valid_from timestamp not null default current_timestamp, valid_until timestamp, primary key(id)); create or replace function login_password_scrambler() returns trigger as $$ begin NEW.password = md5(new.password); return NEW; end; $$ language plpgsql; create trigger login_password_scrambler_trg before update or insert on login for each row execute procedure login_password_scrambler(); create or replace function login(username varchar, password varchar) returns setof login as $$ select * from login where username = $1 and password = md5($2) and (valid_until is null or valid_until > current_timestamp) ; $$ language sql; insert into login(username,password) values ('sk','password'); select * from login; select * from login('sk','password');

57 Triggers DEMO (2) create or replace function password_generator() returns varchar as $$ select varchar 'secret'; $$ language sql; create or replace function new_password(id int4) returns varchar as $$ declare holder varchar; begin select into holder password_generator(); update login set password = holder where id = $1; return holder; end; $$ language plpgsql;

58 Subqueries Laver et query i query. Tre typer: - where select * from users where company_id in (select id from companies where...) - from select id, 1- pct as rebate, value as list_price, pct * value as your_price from (select id, random() * 0.1 as pct, value from goods) - resultat select id, (select sum(value) from subtable st where st.id = mt.id) from maintable mt

59 Set-returning functions Demo create type mytype as (id int4, id2 int4); create or replace function myid(int4) returns setof mytype as $$ select * from generate_series(1,$1) a, generate_series(1,$1) b; $$ language sql; select *, cid * id * id2 as result from (select cid, (myid(cid)).* from generate_series (2,4) as c(cid)) x order by result desc; select * from myid(8) where id2 < id;

60 Schemas Er en måde at strukturere sine data på (tænk stier ). Vigtige kommanoder: create schema rapporter; set search_path = public, rapporter; create table schema.table select * from schema.table; Default search_path er $user, public

61 Afslutning

62 Interessante urls (sourceforge for PG projekter) (PostgreSQL blog) (PostgreSQL General Bits) (technical docs)

63 Videre herfra? For avanceret og hurtig sql generelt: For PostgreSQL: (rtfm) Især: II The SQL Language 8. Datatypes 9. Functions and Operators 12. Concurrency Control V Server Programming 33. Extending SQL 37. PL/pgSQL VI Reference I. SQL Commands

64 Tak for idag Spørgsmål?

Begrænsninger i SQL. Databaser, efterår 2002. Troels Andreasen

Begrænsninger i SQL. Databaser, efterår 2002. Troels Andreasen Databaser, efterår 2002 Begrænsninger i SQL Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

Databaseadgang fra Java

Databaseadgang fra Java Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,

Læs mere

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML

De vigtigste SQL-sætninger. SQL kap Oprette database. DDL og DML SQL kap 6-7 + 17-20 DDL og DML 1 De vigtigste SQL-sætninger Data Definition Language (DDL) create table: opretter en ny tabel create unique index: tilføjer et index til en tabel drop table : sletter en

Læs mere

Database programmerings tips

Database programmerings tips Denne guide er oprindeligt udgivet på Eksperten.dk Database programmerings tips Denne artikel vil introducere nogle problem stillinger med flere samtidige brugere, som man skal tænke på, når man udvikler

Læs mere

Views etc. Databaser

Views etc. Databaser Views etc. Databaser Views Med Views kan vi gemme nogle af de lange select sætninger. I vores eksempel fra tidligere er det f.eks. forbundet med en del besvær at finde telefon nr og bilmærker for en sælger

Læs mere

Database kursus Forår 2013

Database kursus Forår 2013 Database kursus Forår 2013 Jacob Aae Mikkelsen Database design og programmering/databaser fra Organisationsorienteret softwareudvikling 1 Praktisk info Lærebog Database Systems: The Complete Book Skema

Læs mere

Introduktion til SQL queries

Introduktion til SQL queries Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til SQL queries Denne artikel beskriver nogle forskellige muligheder i SQL queries. Eksemplerne skulle gerne være standard SQL og virke i

Læs mere

Sidste forelæsning. Jacob Aae Mikkelsen. 28. april 2013 IMADA. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28.

Sidste forelæsning. Jacob Aae Mikkelsen. 28. april 2013 IMADA. Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. Sidste forelæsning Jacob Aae Mikkelsen IMADA 28. april 2013 Jacob Aae Mikkelsen (IMADA) Sidste forelæsning 28. april 2013 1 / 36 Outline 1 Brugere og Sikkerhed Jacob Aae Mikkelsen (IMADA) Sidste forelæsning

Læs mere

Database. lv/

Database. lv/ Database 1 Database Design Begreber 1 Database: En fælles samling af logiske relaterede data (informationer) DBMS (database management system) Et SW system der gør det muligt at definer, oprette og vedligeholde

Læs mere

En Kort Introduktion til Oracle

En Kort Introduktion til Oracle En Kort Introduktion til Oracle Henrik Bulskov 12. februar 2001 bulskov@ruc.dk 1 Start SQL*Plus... 1 1.1 TELNET... 1 1.2 WINDOWS SQL PLUS... 2 2 Kør et SQL-script... 3 3 Hjælp i SQL*Plus... 3 4 Editering

Læs mere

Database "opbygning"

Database opbygning Database "opbygning" Dette områder falder mest under en DBA's ansvarsområde. Det kan sagtens tænkes at en database udvikler i nogle situationer vil blive nød til at oprette produktions og test) databaser,

Læs mere

En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin

En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin En opsamling af artefakter for Hotel Databasen som REST-service Bygger på Hotel opgaven i 8 trin Trin 1: Lav en Domain model Opgave beskrivelse - Scandic hotel kæde Lav en domain model af Hotel-kæden.

Læs mere

Views. Et view er en relation defined ud fra gemte tabeller ( base tables ) og andre views To typer:

Views. Et view er en relation defined ud fra gemte tabeller ( base tables ) og andre views To typer: Views 1 Views Et view er en relation defined ud fra gemte tabeller ( base tables ) og andre views To typer: 1. Virtual = Ikke gemt i databasen; kun definitionen af den 2. Materialized = Date konstrueret

Læs mere

Databasesystemer. IT Universitetet i København 16. januar 2006

Databasesystemer. IT Universitetet i København 16. januar 2006 Databasesystemer IT Universitetet i København 16. januar 2006 Eksamenssættet består af 5 opgaver med 16 spørgsmål, fordelt på 6 sider (inklusiv denne side), samt et svarark, hvor visse spørgsmål skal besvares.

Læs mere

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Denne guide er oprindeligt udgivet på Eksperten.dk Prepared Statements Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Skrevet den 18. Feb 2010

Læs mere

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002

Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002 Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002 På datalogi har vi en databaseserver, som de studerende på datalogi kan benytte til projekter og som også benyttes i forbindelse

Læs mere

SQL Server 2016 Data Adgang

SQL Server 2016 Data Adgang SQL Server 2016 Data Adgang MSBIP, 5. OKTOBER, 2015 Agenda SQL Server 2016 CTP 2.3 Pragmatisk Data Adgangskontrol Row Level Security Dynamic Masking Kombination af begge Alternativet Hvem er jeg Selvstændig

Læs mere

Rigtig SQL Programmering

Rigtig SQL Programmering Rigtig SQL Programmering 1 SQL i Rigtige Programmer Indtil nu har vi brugt SQL direkte i kommandolinje promt/gui program, hvor vi kan lave forespørgsler til databasen I virkeligheden: Programmer kontakter

Læs mere

Data lagring. 2. iteration (implement backend)

Data lagring. 2. iteration (implement backend) Data lagring 2. iteration (implement backend) Emner Grundlæggende database begreber. Data definitionskommandoer ER-diagrammer og cardinalitet/relationer mellem tabeller Redundant data og Normalisering

Læs mere

Eksamen, DSDS, efterår 2007

Eksamen, DSDS, efterår 2007 Eksamen, DSDS, efterår 2007 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech og Martin Elsman IT Universitetet i København 7. januar 2008 Alle hjælpemidler er tilladte, dog ikke

Læs mere

Database optimering - Indeks

Database optimering - Indeks Database optimering - Indeks Alle kender til dette irritations moment, hvor programmet man sidder og arbejder med, bare ikke er hurtigt nok. Selvom det kun drejer sig om få sekunder man sidder og venter,

Læs mere

A11: Last Year s Exam

A11: Last Year s Exam A11: Last Year s Exam Agenda Design of Site map and Web- structure (3) Design of data model (1) Design of database transactions (2) Construction of HTML and PHP scripts (3) Exercise 3: Design of Site map

Læs mere

Få sin querystring til at fungere. (Nybegyndere)

Få sin querystring til at fungere. (Nybegyndere) Denne guide er oprindeligt udgivet på Eksperten.dk Få sin querystring til at fungere. (Nybegyndere) Artikelen henvender sig til nybegyndere der har problemer med at få sin querystring til at fungere (Access/ASP).

Læs mere

Databasesystemer. IT Universitetet i København 7. juni 2005

Databasesystemer. IT Universitetet i København 7. juni 2005 Databasesystemer IT Universitetet i København 7. juni 2005 Eksamenssættet består af 5 opgaver med 13 spørgsmål, fordelt på 6 sider (inklusiv denne side). Vægten af hver opgave er angivet. Du har 4 timer

Læs mere

Web Admin 5.5. Brugsvejledning for Domain admin. Copyright 2003 Gullestrup.net

Web Admin 5.5. Brugsvejledning for Domain admin. Copyright 2003 Gullestrup.net Web Admin 5.5 Copyright 2003 Gullestrup.net Log ind på systemet Start med at gå ind på http://mailadmin.gullestrup.net i din browser. Indtast din Email Adresse samt Password, som du tidligere har modtaget

Læs mere

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til VB.NET og ADO.NET. Der findes en tilsvarende artikel

Læs mere

Web Admin 5.5. Brugsvejledning for User admin. Copyright 2003 Gullestrup.net

Web Admin 5.5. Brugsvejledning for User admin. Copyright 2003 Gullestrup.net Web Admin 5.5 Copyright 2003 Gullestrup.net Log ind på systemet Start med at gå ind på http://mailadmin.gullestrup.net i din browser. Indtast din Email Adresse samt Password, som hører til din konto, tryk

Læs mere

MsSQL: Basal performance tuning, part 1

MsSQL: Basal performance tuning, part 1 Denne guide er oprindeligt udgivet på Eksperten.dk MsSQL: Basal performance tuning, part 1 Hvordan man skriver "God SQL" for bedre performance. Skrevet den 03. Feb 2009 af trer I kategorien Databaser /

Læs mere

Opsætning af MobilePBX med Kalenderdatabase

Opsætning af MobilePBX med Kalenderdatabase Opsætning af MobilePBX med Kalenderdatabase Dette dokument beskriver hvorledes der installeres Symprex Exchange Connector og SQL Server Express for at MobilePBX kan benytte kalenderadadgang via database

Læs mere

Skriftlig opgave. Designtanker i database-nære systemer

Skriftlig opgave. Designtanker i database-nære systemer Skriftlig opgave til eksamen for faget»databaser«designtanker i database-nære systemer Martin Ancher Holm Juni 2010 1 Intro Denne skriftlige opgave indeholder kort de daglige tanker jeg har omkring design

Læs mere

Oracle PL/SQL. Overview of PL/SQL

Oracle PL/SQL. Overview of PL/SQL Oracle PL/SQL John Ortiz Overview of PL/SQL Oracle's Procedural Language extension to SQL. Support many programming language features. If-then-else, loops, subroutines. Program units written in PL/SQL

Læs mere

IT Support Guide. Installation af netværksprinter (direkte IP print)

IT Support Guide. Installation af netværksprinter (direkte IP print) IT Support Guide Denne guide er hentet på www.spelling.dk Program: Microsoft Windows Vista Program sprog version: ENG (US) Guide emne: Installation af netværksprinter (direkte IP print) Publikationsnr.:

Læs mere

Installationsvejledning af ØS LDV

Installationsvejledning af ØS LDV Installationsvejledning af ØS LDV Del 1 Klargøring af IT miljø Målgruppe: Systemansvarlig Januar 2011 Indledning Vejledningen er rettet til den systemansvarlige, der skal forestå den tekniske installering

Læs mere

Søren Løbner (lobner) ddb Databaser 2007 10 10

Søren Løbner (lobner) ddb Databaser 2007 10 10 ddb Excercise Week 4 Fra relationships til relations Nu når vi har fået vores skemaer på plads, kan SQL udtrykkene til konstruktion af relationerne laves Det foregår ved at vi tager en 1 til 1 oversættelse

Læs mere

1 Indlæsning af script

1 Indlæsning af script 1 Indlæsning af script Når opgraderingen af invokeren er foretaget, skal du indlæse et script på den SQL server, hvor I skal modtage jeres SLS-data. Scriptet henter du her http://www.oes.dk/sw49118.asp

Læs mere

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002

Databasesystemer. Databaser, efterår Troels Andreasen. Efterår 2002 Databaser, efterår 2002 Databasesystemer Troels Andreasen Datalogiafdelingen, hus 42.1 Roskilde Universitetscenter Universitetsvej 1 Postboks 260 4000 Roskilde Telefon: 4674 2000 Fax: 4674 3072 www.dat.ruc.dk

Læs mere

Reeksamen, DSDS, forår 2008

Reeksamen, DSDS, forår 2008 Reeksamen, DSDS, forår 2008 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 22. august 2008 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.

Læs mere

Umbraco installationsvejledning

Umbraco installationsvejledning på et ScanNet ASP Webhotel Indledning Beskrivelse Denne vejledning vil indeholde installation af CMS systemet Umbraco på et ASP Webhotel. Det dansk grundlagt Content Management System (CMS) Umbraco er

Læs mere

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse. Mysqli Webintegrator Når vi arbejder med server-side scripting ( i vort tilfælde PHP), har vi ofte behov for at kunne tilgå data, som vi opbevarer i en database. Det kan f.eks. dreje sig om nyhederne i

Læs mere

Eksamen, DSDS, forår 2009

Eksamen, DSDS, forår 2009 Eksamen, DSDS, forår 2009 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 3. juni 2009 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.

Læs mere

Casper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails

Casper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails Casper Fabricius http://casperfabricius.com ActiveRecord O/RM i Ruby on Rails Casper Fabricius Freelance webudvikler - casperfabricius.com 9 års erfaring med webudvikling 6 år med ASP/ASP.NET/C# 3 år med

Læs mere

Opsætning af Oracle Designer 10g repositorie

Opsætning af Oracle Designer 10g repositorie Opsætning af Oracle Designer 10g repositorie Dette dokument beskriver hvordan man opsætter det repositorie, som Oracle Designer gemmer sine data i. Udgangspunktet er at man har installeret Oracle Database

Læs mere

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API. Denne guide er oprindeligt udgivet på Eksperten.dk Brug af MySQL i C++ Denne artikel bygger ovenpå artiklen "MySQL C API" og forklarer hvordan man kan programmere mere objekt orienteret. Den forudsætter

Læs mere

Introduktion til programmering

Introduktion til programmering Introduktion til programmering Databaser Uge 38 L. Ingemann: SQL databaser på nettet, kap 2-4. Kompendium L. Ingemann: SQL databaser på nettet, kap 6-20, Kompendium Sidste gang Databaser Relationelle databaser

Læs mere

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Der findes en tilsvarende artikel med

Læs mere

Installation af Novapoint 19.35

Installation af Novapoint 19.35 Installation af Novapoint 19.35 Notatet her er en kort installationsvejledning til Novapoint version 19.35, der kun kan installeres på 64 bit versioner af: AutoCAD 2015 AutoCAD Map 3D 2015 AutoCAD Civil

Læs mere

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Denne guide er oprindeligt udgivet på Eksperten.dk MySQL C API Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab

Læs mere

NT PDC Udarbejdet af Kenneth Dalbjerg

NT PDC Udarbejdet af Kenneth Dalbjerg NT PDC Udarbejdet af Kenneth Dalbjerg Titelblad Denne rapport er udarbejdet af Kenneth Dalbjerg, med det formål at lære noget omkring, NT PDC Server. Side 2 af 13 Indholdsfortegnelse Forside Titelblad

Læs mere

Eksamen, DSDS, efterår 2008

Eksamen, DSDS, efterår 2008 Eksamen, DSDS, efterår 2008 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 6. januar 2009 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.

Læs mere

Data load og udtræk. 2. iteration: implmentation (test af backend) PHP mysql. Loade og parse XML (SimpleXML, Xpath) Filhåndtering i PHP JSON

Data load og udtræk. 2. iteration: implmentation (test af backend) PHP mysql. Loade og parse XML (SimpleXML, Xpath) Filhåndtering i PHP JSON Data load og udtræk 2. iteration: implmentation (test af backend) 1 PHP mysql Loade og parse XML (SimpleXML, Xpath) Filhåndtering i PHP JSON 2 Data udtræk PHP mysql: Processen 1. Forbind til MySQL server

Læs mere

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

PHP 3 UGERS FORLØB PHP, MYSQL & SQL PHP 3 UGERS FORLØB PHP, MYSQL & SQL Uge 1 & 2 Det basale: Det primære mål efter uge 1 og 2, er at få forståelse for hvordan AMP miljøet fungerer i praksis, og hvordan man bruger PHP kodesproget til at

Læs mere

Nintex Workflow UK/DK

Nintex Workflow UK/DK Nintex Workflow UK/DK Når Nintex Workflows anvendes i et Dansk sproget SharePoint miljø, er der lidt forskel på hvad de forskellige elementer kaldes, såvel som rækkefølgen på disse. Noget er oversat, noget

Læs mere

MapInfo Professional v11.0 & The MapInfo Location Intelligence Suite MapInfo Netværksmøder

MapInfo Professional v11.0 & The MapInfo Location Intelligence Suite MapInfo Netværksmøder MapInfo Professional v11.0 & The MapInfo Location Intelligence Suite MapInfo Netværksmøder Peter Horsbøll Møller, systems engineer Oktober 2011 Program MI Pro v11.0 overblik MI Pro Premium tjenester The

Læs mere

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk Denne guide er oprindeligt udgivet på Eksperten.dk Database tips Denne artikel vil give nogle forskellige små praktiske råd om ting man skal tænke på når man arbejder med databaser og applikationer som

Læs mere

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel: Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra

Læs mere

applikation----x----odbc driver manager----foobar ODBC driver----foobar database

applikation----x----odbc driver manager----foobar ODBC driver----foobar database Denne guide er oprindeligt udgivet på Eksperten.dk ODBC i C/C++ Denne artikel beskriver hvordan man bruger ODBC i C/C++. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab

Læs mere

DB undervisning 01-01

DB undervisning 01-01 Databaser... 2 Tabeller... 2 Redundans... 3 Første regel... 4 Anden regel... 4 Tredje regel... 5 Relationer... 5 Opskrift... 6 SQL sætninger til at oprette tabeller... 7 SQL sætninger til at indsætte data...

Læs mere

PROJEKT 3. The Design Diaries. LINK TIL BLOG: Af Mikkel Borg Svendsen & Sebastian Frank MUL B

PROJEKT 3. The Design Diaries. LINK TIL BLOG:  Af Mikkel Borg Svendsen & Sebastian Frank MUL B PROJEKT 3 The Design Diaries LINK TIL BLOG: http://mbsgraphic.dk/blog/ Af Mikkel Borg Svendsen & Sebastian Frank MUL B 1 INDHOLDS- FORTEGNELSE HVEM ER BLOGGERNE? 3 USE CASE 4 ATTRIBUT TABEL 5 PHP CODE

Læs mere

SQL for MySQL-begyndere

SQL for MySQL-begyndere Denne guide er oprindeligt udgivet på Eksperten.dk SQL for MySQL-begyndere I denne artikel vil jeg prøve at beskrive MySQL på begynderniveau. SQL står for Structured Query Language, og er et sprog til

Læs mere

MSE PRESENTATION 2. Presented by Srunokshi.Kaniyur.Prema. Neelakantan Major Professor Dr. Torben Amtoft

MSE PRESENTATION 2. Presented by Srunokshi.Kaniyur.Prema. Neelakantan Major Professor Dr. Torben Amtoft CAPABILITY CONTROL LIST MSE PRESENTATION 2 Presented by Srunokshi.Kaniyur.Prema. Neelakantan Major Professor Dr. Torben Amtoft PRESENTATION OUTLINE Action items from phase 1 presentation tti Architecture

Læs mere

MySQL i Java. Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007

MySQL i Java. Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007 MySQL i Java Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007 Hvad er MySQL? Det er et database system, som er gratis for os at bruge. Det er lidt mere besværligt i starten at bruge

Læs mere

Eksempel på en database: studenter, kurser, eksamener

Eksempel på en database: studenter, kurser, eksamener Udvidet Programmering 1999 Forelæsning 20, fredag 12. november 1999 Relationsdatabaser: relationer, tupler, attributter Forespørgselssproget SQL Databasesystemet PostgreSQL Tilgang til relationsdatabaser

Læs mere

Database Implementering

Database Implementering Database Implementering 1 Database Implementering Er det ikke nemt at implementere et database system? Gemme relationer Parse statements Print resultater Ændre relationer 2 Må vi præsentere Database Management

Læs mere

SAS2WPS Workshop. Torben Christensen! Senior Partner, MSc.! email: torben.christensen@uniqcus.com! tlf: +45 3064 9150. Copyright UniQcus 2014

SAS2WPS Workshop. Torben Christensen! Senior Partner, MSc.! email: torben.christensen@uniqcus.com! tlf: +45 3064 9150. Copyright UniQcus 2014 SAS2WPS Workshop! Torben Christensen! Senior Partner, MSc.! email: torben.christensen@uniqcus.com! tlf: +45 3064 9150 Copyright UniQcus 2014 Torben Christensen 17 years with SAS institute (starting okt85)

Læs mere

Øvelse 9. Klasser, objekter og sql-tabeller insert code here

Øvelse 9. Klasser, objekter og sql-tabeller insert code here Øvelse 9. Klasser, objekter og sql-tabeller Denne opgave handler om hvordan man opbevarer data fra databasekald på en struktureret måde. Den skal samtidig give jer erfaringer med objekter, der kommer til

Læs mere

Instruktioner i installation og afinstallation af Windows PostScript- og PCLprinterdrivere

Instruktioner i installation og afinstallation af Windows PostScript- og PCLprinterdrivere Instruktioner i installation og afinstallation af Windows PostScript- og PCLprinterdrivere version 8 Denne fil med vigtige oplysninger indeholder en vejledning til installation af Custom PostScript- og

Læs mere

Bookie. IT-Universitetet i København. Grundlæggende Programmering. Eksamensprojekt. Forfattere: Sigrid Gyldenkærne Dalsgard Kasper Kronborg Isager

Bookie. IT-Universitetet i København. Grundlæggende Programmering. Eksamensprojekt. Forfattere: Sigrid Gyldenkærne Dalsgard Kasper Kronborg Isager IT-Universitetet i København Grundlæggende Programmering Eksamensprojekt Bookie Forfattere: Sigrid Gyldenkærne Dalsgard Kasper Kronborg Isager Vejleder: Jesper Wendel Madsen 17. december 2014 Resumé Indhold

Læs mere

PHP Crash course. Databaser

PHP Crash course. Databaser PHP Crash course Databaser PHP Intro PHP er et server scripting sprog der kan bruges til at lave aktivt indhold på hjemme sider. Der er to betingelser som skal opfyldes for at serveren fortolker PHP koden.

Læs mere

Hvorfor skal vi bruge objekt orienteret databaser?

Hvorfor skal vi bruge objekt orienteret databaser? OODBMS Vs. RDBMS 1 Indholdsfortegnelse Hvorfor skal vi bruge objekt orienteret databaser?... 3 OODBMS i erhvervslivet... 4 Bagsiden af medaljen... 5 OODBMS i praksis... 6 Konklusion... 8 2 Hvorfor skal

Læs mere

Vejledning til Autodesk Account - Subscription

Vejledning til Autodesk Account - Subscription Vejledning til Autodesk Account - Subscription Denne vejledning beskriver, hvordan du logger på Autodesk Account samt de vigtigste funktioner, bl.a. download af software, hvor du finder serienumre, tildeling

Læs mere

Eksamen, DSDS, forår 2008

Eksamen, DSDS, forår 2008 Eksamen, DSDS, forår 2008 Introduktion til Scripting, Databaser og Systemarkitektur Jonas Holbech IT Universitetet i København 3. juni 2008 Alle hjælpemidler er tilladte, dog ikke computer og kommunikationsmidler.

Læs mere

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0

Program Dokumentation PC Software Skrevet af. Gruppen. Version 1.0 Program Dokumentation PC Software Skrevet af Gruppen. Version 1.0 Indholds fortegnelse 1. INDLEDNING...3 1.1. FORMÅL...3 1.2. REFERENCER...3 1.3. VERSIONSHISTORIE...3 1.4. DEFINITIONER...3 1.5. DOKUMENTATIONENS

Læs mere

Dokumentering af umbraco artikeleksport:

Dokumentering af umbraco artikeleksport: Dokumentering af umbraco artikeleksport: Lav en artikel side 2-3. Installationsguide side 3-5. Opsættelse af databasen og web.config side 5-8. Umbraco: templates side 8. Umbraco: borger.dk tab side 8.

Læs mere

PID2000 Archive Service

PID2000 Archive Service PROLON CONTROL SYSTEMS Herstedvesterstræde 56 DK-2620 Albertslund Danmark Tlf.: (+45) 43620625 Fax: (+45) 43623125 PID2000 Archive Service Bruger vejledning Juni 2002 Denne manual beskriver brugen af softwaren

Læs mere

Import af rekursivt (parent-child) hierarki i Palo

Import af rekursivt (parent-child) hierarki i Palo Import af rekursivt (parent-child) hierarki i Palo Dette dokument beskriver hvordan et simpelt rekursivt (parent-child) hierarki kan importeres ind i Palo på forskellige måder via SQL og samtidig bibeholde

Læs mere

NEMT OG EFFEKTIVT - Ejendomsadministration

NEMT OG EFFEKTIVT - Ejendomsadministration Ny Unik Bolig 4 version på trapperne Det er nu ca. 2 år siden, at første version af Unik Bolig 4 blev lanceret. Siden da er der blevet arbejdet hårdt på at forbedre versionen og finde på nye smarte ting

Læs mere

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater

Design by Contract. Design and Programming by Contract. Oversigt. Prædikater Design by Contract Design and Programming by Contract Anne Haxthausen ah@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design by Contract er en teknik til at specificere

Læs mere

Hack of the Month opgave 2

Hack of the Month opgave 2 Hack of the Month opgave 2 www.hackofthemonth.dk Holdet bag www.hackofthemonth.dk: Søren Rasmus (ikke mig) Roninz Stiller hver måned en ny opgave: Applikationssikkerhed Webapplikationssikkerhed Slide 2

Læs mere

Installation af Elektronisk APV på flere PC er

Installation af Elektronisk APV på flere PC er Installation af Elektronisk APV på flere PC er Vejledning til installation af Elektronisk APV, når programmet skal installeres på flere PC er, der kobler sig op på en fælles server. 1 Installation af Elektronisk

Læs mere

Introduktion til OPC Access

Introduktion til OPC Access Introduktion til OPC Access OPC Access anvendes til at kommunikere med jeres produktionsudstyr via OPC. OPC Access kombinerer en SQL Server med OPC, således at jeres produktionsudstyr kobles sammen med

Læs mere

Værktøjer fra værktøjskassen. Søren Breddam, Stevns Kommune

Værktøjer fra værktøjskassen. Søren Breddam, Stevns Kommune Værktøjer fra værktøjskassen Søren Breddam, Stevns Kommune sb@stevns.dk 1stevns kommune Mapbasic i Stevns Kommune Data Kørsel af planlagte opgaver, så data altid er opdaterede. Logfil til overvågning Dagligt

Læs mere

Tredje undervisningsgang. Database

Tredje undervisningsgang. Database Tredje undervisningsgang Database Denne undervisningsgang Lektier fra sidst Dagen eksempel database Mere ER diagrammer Matematikken bag databaser Forbind data til ny sæt praksis Keys og foreign keys -

Læs mere

Opdatering af ISOWARE til version 6.1.0

Opdatering af ISOWARE til version 6.1.0 Opdatering af ISOWARE til version 6.1.0 September 2015 Indhold Kontaktoplysninger... 1 VIGTIGT... 2 Opdatering af trejdepartssoftware... 2 Opdatering til version 6.1.0.... 2 1. Backup af databasen... 3

Læs mere

Sporbarhed og Rapportering i Quality Center. Kim Stenbo Nielsen NNIT Application Management Services

Sporbarhed og Rapportering i Quality Center. Kim Stenbo Nielsen NNIT Application Management Services Sporbarhed og Rapportering i Quality Center Kim Stenbo Nielsen NNIT Application Management Services Indhold INTRODUKTION Hvem er jeg Hvad vil jeg fortælle om QC std. rapporteringsfaciliteter EXCEL RAPPORTER

Læs mere

LESSOR-5. Inquiry (teknisk beskrivelse) Tilgængelighed for andre systemer

LESSOR-5. Inquiry (teknisk beskrivelse) Tilgængelighed for andre systemer LESSOR-5 Inquiry (teknisk beskrivelse) Effektive og fleksible IT-løsninger til LØN, TID og HR Tilgængelighed for andre systemer LESSOR-5 Inquiry har til formål at gøre data i LESSOR-5 tilgængelig for andre

Læs mere

Udvikling af DOTNET applikationer til MicroStation i C#

Udvikling af DOTNET applikationer til MicroStation i C# Udvikling af DOTNET applikationer til MicroStation i C# Praktiske tips for at komme i gang. Gunnar Jul Jensen, Cowi Hvorfor nu det? Mdl og Vba kan det hele Fordelene er : udviklingsmiljøet er eksternt

Læs mere

Database design for begyndere

Database design for begyndere Denne guide er oprindeligt udgivet på Eksperten.dk Database design for begyndere Denne artikel beskriver hvordan man kommer fra ide til database design. Den stopper inden normal former. Den forudsætter

Læs mere

Databasesystemer fra forskellige synsvinkler

Databasesystemer fra forskellige synsvinkler Databasesystemer fra forskellige synsvinkler Kim Skak Larsen kslarsen@imada.sdu.dk IMADA DM534 Introduktion til datalogi, 8/10 2015 p.1/60 Oversigt Introduktion Del 1: en designers synsvinkel Del 2: en

Læs mere

2. udgave April 2008 Tilpasset FirstClass version 8.3, dansk

2. udgave April 2008 Tilpasset FirstClass version 8.3, dansk Installation af SPAM-filter 2. udgave April 2008 Tilpasset FirstClass version 8.3, dansk Indhold Installation af SkoleKoms SPAM-filter... 3 Hvilke mails bliver placeret i SPAM mail-mappen?... 4 Hvordan

Læs mere

KIH Database. Systemdokumentation for KIH Databasen. 1. maj 2013. Side 1 af 13

KIH Database. Systemdokumentation for KIH Databasen. 1. maj 2013. Side 1 af 13 KIH Database Systemdokumentation for KIH Databasen 1. maj 2013 Side 1 af 13 Indholdsfortegnelse Indholdsfortegnelse... 2 Indledning... 3 Systemoverblik... 3 KIH Database applikationsserver... 5 Forudsætninger

Læs mere

Anne Randorff Højen

Anne Randorff Højen Anne Randorff Højen arra@hst.aau.dk Forelæsning og opgaver: Introduktion til SQL pause Forlæsning og Opgaver: SQL 2. del pause Introduktion til PhPMyAdmin Opgaver SQL Der modelleres ud fra reelle relationer

Læs mere

Buildvejledning (Release, patch og testversion)

Buildvejledning (Release, patch og testversion) Buildvejledning (Release, patch og testversion) 1. Opdater Post deployment filen for SBSYS hoved databasen. 2. Deploy til SBSYS databasen. 3. Build - fra og med version 1.95.00.00 4. Udarbejd historik

Læs mere

Kom godt igang med Inventar registrering

Kom godt igang med Inventar registrering Kom godt igang med Inventar registrering (InventoryDB) (Med stregkodesupport) programmet fra PetriSoft Introduktion... 1 Inventar registrering... 2 Værktøjsudleje... 3 Service database til reperationer

Læs mere

EasyIQ ConnectAnywhere Release note

EasyIQ ConnectAnywhere Release note EasyIQ ConnectAnywhere Release note Version 2.4 Der er over det sidste år lavet en lang række forbedringer, tiltag og fejlrettelser. Ændringer til forudsætningerne: o Klienten skal ved førstegangs login

Læs mere

Dagens program. Domæner. change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog. Hvad er widgets.

Dagens program. Domæner. change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog. Hvad er widgets. Dagens program Har alle fået? Har nogen betalt for meget? Hav jeres koder klar Domæner change log- screen shots hver gang I har arbejdet med themet. Arkitekturen bag en wp blog Hvad er widgets Hvad er

Læs mere

HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE

HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE HELLO INSTALLATIONS GUIDE - DANSK RACKPEOPLE 1 Tekniske Krav 1.1 Hardware krav: En skærm gerne med touch Hvis skærmen ikke har touch, skal du bruge et tastatur og en mus Webcam Gerne i HD En ekstern lydenhed

Læs mere

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1 IBM Network Station Manager esuite 1.5 / NSM Integration IBM Network Computer Division tdc - 02/08/99 lotusnsm.prz Page 1 New esuite Settings in NSM The Lotus esuite Workplace administration option is

Læs mere

MS Dynamics NAV 5.0 SP1 Update 2

MS Dynamics NAV 5.0 SP1 Update 2 Side 1 af 23 MS Dynamics NAV 5.0 SP1 Update 2 05. januar 2011 ØKO/MAC/MAG/ CRA/CPS SystemInfo Økonomistyrelsen udgiver, ved hver Navision Stat frigivelse, en beskrivelse af den samlede installation sammen

Læs mere

Vejledning til Autodesk Account - Subscription

Vejledning til Autodesk Account - Subscription Vejledning til Autodesk Account - Subscription Denne vejledning beskriver, hvordan du logger på Autodesk Account samt de vigtigste funktioner, bl.a. download af software, hvor du finder serienumre, tildeling

Læs mere

Digital Print Room Implementering og tilretning. 11. Sep. 2001 TMC Plot-SIG

Digital Print Room Implementering og tilretning. 11. Sep. 2001 TMC Plot-SIG Digital Print Room Implementering og tilretning 11. Sep. 2001 TMC Plot-SIG Agenda. Priser. Forskellen mellem de 3 versioner. Hardware og software. Sikkerheden og opsætning af rettigheder. Opgradering fra

Læs mere