Upload
others
View
2
Download
0
Embed Size (px)
Citation preview
INF 3100
Databasesystemer
PER ØYVIND ØVERLI
SENIOR IT RÅDGIVER AIBEL A/S
Tema: Databaser i praksis
• INF3100 – intro
• Designvalg og eksempler i relasjonsverden
• Primær nøkkel
• NULL
• Hastighet/Fleksibilitet
• Framover ?
www.aibel.com
www.aibel.com
Ca. 4000 ansatte
Aibel - projects
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
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
Mapping av virkelighet til datamodell:
?
Tema: Databaser i praksis
Normal
former
SQL
INF
3100Algebra
DDL
(create)
DML
table,trigger
view, index
select
insert
delete
update
NoSQLRDF,
SPARQL
Functions,
packages+ +
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
Hva er godt design?
Må balansere
Hastighet
Fleksibilitet
Robusthet
Vedlikeholdsvennlighet
Klassiske valg
Normalisert med mange tabeller «normaliserings tro» (SAP)
Få brede tabeller (mange kolonner)
Transponert – kolonnene flyttes til rader (SPF)
Alternativer
R2
E1 E2
E3
R3
R2
E1 E2
R2
Pk,
Attrbute,
value
E1
(pk)
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
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
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!
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
)
Litt spørring:
EQTAGEQ_DATA
(key,attr,val)
Litt spørring:
EQTAG• Self join
• Outer join
Litt spørring:
EQTAG• Self join
• Outer join
Trigger:
EQ_DOC_REF
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
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
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")
RDF/Owl
Subject Predicate Object
MMD – Material Master DataMulti-modell for krav og produktdata
Fordeler: mye mer fleksibel
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:
MMD – sem_match *
*) Oracle only
MMD – x-path
MMD – hybrid
X-queryDL
Sparql
SQL
Avslutning
• INF3100
• Relasjonsbasene vil leve lenge
• Ny teknologi bygges inn og komplenterer
(logikk, resonering)
Lykke til på eksamen !