Skip to content

Data laget

Datalaget.

Hvilke alternativer har vi?

RDBMS SQL - Spørringer utenfor domenemodellen. SQL kan være et godt valg. Enkle updates. Ting som du må bygge en stor domenemodell for å få tak i, men hvor du bare er interessert i et subset av data.

ORM - Det politisk korrekte alternativ.

ActiveRecord - Administrasjonsapper

Generelt: Krever at du lever i en strukturert verden. At dataene dine strukturerte. Ofte har du ikke strukturerte data. Relasjonsdatabaser skalerer dårlig på informasjonskopleksitet. Og vi vet jo at informasjonskompleksiteten i verden bare øker. Og dataene blir mindre og mindre strukturerte.

Implementasjoner: MySQL / Postgres - Holder stort sett. Oracle/MS SQLserver. Hvis du ikke har et rikt nok featureset HSQLDB/JavaDB - Effektiv stopper for integrasjon via databasen

Non-relational Document oriented databases - Enkelt å skalere opp. Column og map oriented databases. Object databases - Hierarchical databases - Store datamengder og ad-hoc relasjoner. Yter som bare det. Vanskelig å skalere over 1 CPU. Network databases - Store datamengder og ad-hoc relasjoner. Yter som bare det. Vanskelig å skalere over 1 CPU. GraphDatabaser - neo4J Generelt: Ikke standarder. Små leverandører. Dårlige på strukturerte data. Varierende kvalitet. Høy risk, høy gain for det rette usecaset.

No DB (Skjult persistens) Søkemotor - brukt som persistensmekanisme. Gir gode muligheter for ad-hoc queries. Ustrukturerte data. Grid - Service (not your problem) Flatfil - come on.... Minne -

Generelt: Litt svake på dataintegritet. ;-)

Transaksjoner Skalerer IKKE Så hvis du skalere kan du du bare glemme i transaksjoner: og da kan du enten ikke ha dataintegritet eller gjøre kompenserende tiltak. Ved kompenserende tiltak - Ekstremt viktig med Audit.

Tips: fokuser på krav, ikke på teknolig.

Forsøk på å tegne opp relativt landskap | | NON DB | | | | | Non-relational | | | | RDBMS | | | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | | Søkemotor | Grid | Service | flatfil | minne | document | column | object | graph | SQL | ORM | Active record | | Scalability | 8 | 8 | ? | 4 | 10 | 6 | 8 | 4 | 9 | 6 | 5 | 6 | | Availability | 6 | 9 | ? | 3 | 10 | 7 | 7 | 7 | 7 | 9 | 8 | 9 | | Integritet | 6 | 6 | ? | 2 | ? | 4 | 4 | 8 | 7 | 8 | 9 | 8 | | Query | 9 | 4 | 2 | 2 | ? | 7 | 5 | 4 | 8 | 6 | 4 | 5 | | Latency | 7 | 8 | 10 | 4 | 10 | 6 | 8 | 4 | 9 | 6 | 3 | 6 | | Persistens | 5 | 7 | 7 | 2 | 0 | 7 | 8 | 7 | 9 | 8 | 7 | 8 | | Transaksjoner | 0 | 4 | 0 | 3 | 4 | 6 | 7 | 9 | 6 | 8 |