31
INF 3100 Databasesystemer PER ØYVIND ØVERLI SENIOR IT RÅDGIVER AIBEL A/S

INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

INF 3100

Databasesystemer

PER ØYVIND ØVERLI

SENIOR IT RÅDGIVER AIBEL A/S

Page 2: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Tema: Databaser i praksis

• INF3100 – intro

• Designvalg og eksempler i relasjonsverden

• Primær nøkkel

• NULL

• Hastighet/Fleksibilitet

• Framover ?

Page 3: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

www.aibel.com

Page 4: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

www.aibel.com

Ca. 4000 ansatte

Page 5: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Aibel - projects

Page 6: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Kurset dekker mye:

Normal

former

SQL

INF

3100

1,2,3(4) NF EKNF, BCNF, FD

Algebra

Låsing Hastighet RAID

Logisk

ModellDBMS CPU (OS) Disk/Nettverk

DDL

(create)

DML

table,triggerview, index

Select, insert, delete, update

Page 7: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Tidslinje

1970 1980 1990 2000 2010

E.F

.Co

dd

: R

ela

tio

na

lth

eo

ry

Ko

mm

ers

ielle

DB

MS In

gre

s O

rac

le

SQ

L 92

XM

L

SP

AR

QL

Eksempel

Resonering , AI,…

De

ep

Blu

e v

s G

arr

iK

asp

aro

v

IBM

co

mp

ute

r W

ats

on

win

s

Je

op

ard

y c

lash

1 2Moor’s lov: x2/18mnd

16000 mer power i

2010 ifht 1990V

isC

alc

PC

Page 8: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Mapping av virkelighet til datamodell:

?

Page 9: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Tema: Databaser i praksis

Normal

former

SQL

INF

3100Algebra

DDL

(create)

DML

table,trigger

view, index

select

insert

delete

update

NoSQLRDF,

SPARQL

Functions,

packages+ +

Page 10: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Normalisering:

Finnes bare en regel:

«To be dependent on the key,

and nothing but the key,

so help me Codd»

Tips: Pugg 1NF, 2NF, 3NF

Page 11: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Hva er godt design?

Må balansere

Hastighet

Fleksibilitet

Robusthet

Vedlikeholdsvennlighet

Page 12: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Klassiske valg

Normalisert med mange tabeller «normaliserings tro» (SAP)

Få brede tabeller (mange kolonner)

Transponert – kolonnene flyttes til rader (SPF)

Page 13: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Alternativer

R2

E1 E2

E3

R3

R2

E1 E2

R2

Pk,

Attrbute,

value

E1

(pk)

Page 14: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Eksempler:

Engineering Information System - EIS

Typisk 90talls design

Ca 700 tabeller

Ca 1500 views

Ca 1000 menyer

Brukt i mange år og fungerer greit

MMD – Material master data

Tuftet på ontologier i RDF/OWL

Ca 45000 aksiomer

I startfasen

Page 15: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

EIS – Engineering Information SystemIndeks over alle komponenter på en oljeplattform

Krav og produktreferanser med dokumenter

Tags

• Motorer

• Pumper

• Lyskastere

• Kabler

• Dører

• Etc …

Typisk 3,5 millioner dataverdier/platform

Gymsal med dokumentasjon i papir

Page 16: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Modelleringsmønster?

Gjengangere i relasjonsverden:

➢ Nøkler (naturlige eller system genererte) ?

➢ Hvor legges integritetsreglene?

➢ En tabell og mange kolonner ?

➢ Mangler tabeller ?

➢ Transponerte tabeller (nøkkel, attributt,verdi)

➢ Type (referanse/kode) tabeller ?

➢ Navn på tabeller (entall/flertall prefix, suffix)?

➢ Navn på kolonner ?

➢ Hva med inndeling i scope?

➢ Hva med taksonomi?

EQTAG

EQ_PIPE

EQ_STRUCT

CABLE

EQ_DATA

(key,attr,val) EQ_TYPICAL

Slik ble det den gang (forenklet):

DOC_REF

DOC_REF

PACK

PACK_EQ

Mao et kompromiss av alt!

Page 17: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

EQTAGCREATE TABLE eqtag (eq_id NUMBER(10,0) NOT NULL,deleted VARCHAR2(1) DEFAULT 'N' NOT NULL,eq_group VARCHAR2(20) DEFAULT 'EQUIPMENT' NOT NULL,eq_type VARCHAR2(100) NOT NULL,eqtag VARCHAR2(35) NOT NULL,des1 VARCHAR2(100) NULL,eq_main_pointer NUMBER(10,0) NULL,eq_parent_pointer NUMBER(10,0) NULL,load_parent_pointer NUMBER(10,0) NULL,eq_main_flag VARCHAR2(1) NULL,eq_cost_flag VARCHAR2(1) DEFAULT 'N' NULL,eq_load_flag VARCHAR2(1) DEFAULT 'N' NULL,cor VARCHAR2(4) NOT NULL,system VARCHAR2(10) NOT NULL,discipline VARCHAR2(10) NOT NULL,area VARCHAR2(16) NOT NULL,site VARCHAR2(16) NULL,line_id VARCHAR2(16) NULL,matr_id VARCHAR2(10) NULL,pack_key VARCHAR2(30) NULL,commodity_code VARCHAR2(50) NULL,eq_remarks VARCHAR2(255) NULL,

eq_desc_long VARCHAR2(2000) NULL,unit VARCHAR2(10) NOT NULL,qty NUMBER(10,3) DEFAULT 1 NOT NULL,loc_x NUMBER(15,5) NULL,loc_y NUMBER(15,5) NULL,loc_z NUMBER(15,5) NULL,glob_x NUMBER(15,5) NULL,glob_y NUMBER(15,5) NULL,glob_z NUMBER(15,5) NULL,weight_dry NUMBER(10,2) NULL,weight_operating NUMBER(10,2) NULL,weight_test NUMBER(10,2) NULL,weight_maint NUMBER(10,2) NULL,weight_trsp NUMBER(10,2) NULL,weight_content NUMBER(10,2) NULL,weight_aux NUMBER(10,2) NULL,weight_usage VARCHAR2(10) NULL,weight_status VARCHAR2(10) NULL,pad_eye VARCHAR2(25) NULL,updated_by VARCHAR2(5) NULL,updated_date DATE NULL,

Alle relasjonsbaser har en «mortabell»

eq_dirty_flag VARCHAR2(1) NULL,report_group VARCHAR2(32) NULL,cust_group VARCHAR2(20) NULL,inst_io_flag VARCHAR2(1) DEFAULT 'N' NULL,

remote_indicator VARCHAR2(1) NULL,doc_ref_dse VARCHAR2(80) NULL,dt_sheet_dse VARCHAR2(16) NULL,doc_ref_dsp VARCHAR2(80) NULL,dt_sheet_dsp VARCHAR2(16) NULL,doc_ref_dsw VARCHAR2(80) NULL,dt_sheet_dsw VARCHAR2(16) NULL,doc_ref_dsn VARCHAR2(80) NULL,dt_sheet_dsn VARCHAR2(50) NULL,source VARCHAR2(25) DEFAULT 'MANUAL' NULL,eq_weight_flag VARCHAR2(1) DEFAULT 'Y' NULL,compensation_code VARCHAR2(25) NULL,dim_height NUMBER(10,3) NULL,dim_length NUMBER(10,3) NULL,dim_width NUMBER(10,3) NULL,dim_diameter NUMBER(10,3) NULL,created_by VARCHAR2(5) NULL,created_date DATE NULL,construction_code VARCHAR2(12) NULL,status_code VARCHAR2(15) DEFAULT 'ND' NULL,tagged_bulk_flag VARCHAR2(1) DEFAULT 'N' NOT NULL,device_typical VARCHAR2(20) NULL,x_min NUMBER(10,0) NULL,y_min NUMBER(10,0) NULL,z_min NUMBER(10,0) NULL,x_max NUMBER(10,0) NULL,y_max NUMBER(10,0) NULL,z_max NUMBER(10,0) NULL,void DATE NULL,void_desc VARCHAR2(100) NULL,hold DATE NULL,hold_desc VARCHAR2(100) NULL,change_flag VARCHAR2(20) NULL,ccon VARCHAR2(15) NULL,dcon VARCHAR2(15) NULL,des2 VARCHAR2(100) NULL,fire_area VARCHAR2(10) NULL,material VARCHAR2(18) NULL,lci_doc_count_flag VARCHAR2(1) NULL

)

Page 18: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Litt spørring:

EQTAGEQ_DATA

(key,attr,val)

Page 19: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Litt spørring:

EQTAG• Self join

• Outer join

Page 20: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Litt spørring:

EQTAG• Self join

• Outer join

Page 21: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Trigger:

EQ_DOC_REF

Page 22: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Relasjonsdatabaser og «problemer»

➢ Trøblete å beskrive taksonomi

➢ Trøblete å beskrive «mylder» variasjoner av attributter➢ Nøklene er umulig å overholde duplikater

➢ Triple store RDF (subjekt, predikat, objekt)/OWL

➢ Ingen begrensing på taksonomi

➢ SPARQL, DL og SQL i samme database

➢ Forenklet logikk (DL)

NYE LØSNINGER

Page 23: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

MMD – Material Master Data

Ontology

Builder

Product

Generator

Reasoner

End-point (Hermit)RDF/OWL RDMS

ETL/WPC

User Interface

WEB/Ruler

User Interface

Export

Service

3D CAD

ERP

Backend Layer

Reasoner

End-points (Hermit)

SQL,Xquery,DL,SPARQL PL/Sql, Java

Page 24: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

XMLTYPE (Xquery, xpath)

CREATE TABLE "RDFTBL"."WIZ_RUNS"

( "RUN_ID" VARCHAR2(40 BYTE) DEFAULT NULL NOT NULL ENABLE,

"WIZ_ID" VARCHAR2(40 BYTE) NOT NULL ENABLE,

"PAYLOAD" "XMLTYPE" NOT NULL ENABLE,

"LABEL" VARCHAR2(64 BYTE) NOT NULL ENABLE,

"DEFINITION" VARCHAR2(255 BYTE),

"REMARKS" VARCHAR2(255 BYTE),

"POSTLUDIUM" VARCHAR2(64 BYTE),

"PARENT_RUN" VARCHAR2(40 BYTE),

"STATUS" VARCHAR2(32 BYTE) DEFAULT 'Started' NOT NULL ENABLE,

"CREATED_DATE" DATE,

"CREATED_BY" VARCHAR2(32 BYTE),

"UPDATED_DATE" DATE,

"UPDATED_BY" VARCHAR2(32 BYTE),

"CALC_PAYLOAD" "XMLTYPE",

"PDC_REV_ID" VARCHAR2(40 BYTE),

"DA_PAYLOAD" "XMLTYPE",

"QN_PAYLOAD" "XMLTYPE",

"QN_PPR_REV_ID" VARCHAR2(40 BYTE),

"QN_Q_TBL_SCHEMA_ID" VARCHAR2(40 BYTE),

"AVC_ID" VARCHAR2(128 BYTE),

CONSTRAINT "LOV_WIZ_RUNS_STATUS" CHECK (status in ('Started','Submitted','Finished','Aborted')) ENABLE,

CONSTRAINT "PK_WIZ_RUNS" PRIMARY KEY ("RUN_ID")

Page 25: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

RDF/Owl

Subject Predicate Object

Page 26: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

MMD – Material Master DataMulti-modell for krav og produktdata

Fordeler: mye mer fleksibel

Page 27: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

MMD – DL and SPARQL

• Deles inn i ontologier og taksonomi

• Henter data med SPARQL og DL

DL: ('Pipe Tee') and ('DN 50 - NPS 2')

SPARQL:

Page 28: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

MMD – sem_match *

*) Oracle only

Page 29: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

MMD – x-path

Page 30: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

MMD – hybrid

X-queryDL

Sparql

SQL

Page 31: INF 3100 Databasesystemer...SQL INF 3100 1,2,3(4) NF EKNF, BCNF, FD Algebra Hastighet Låsing RAID Logisk Modell ... (SAP) Få brede tabeller (mange kolonner) Transponert –kolonnene

Avslutning

• INF3100

• Relasjonsbasene vil leve lenge

• Ny teknologi bygges inn og komplenterer

(logikk, resonering)

Lykke til på eksamen !