» »

Uporaba SQL brez serverja v Javi

Uporaba SQL brez serverja v Javi

B-D_ ::

Ideja je takšna, da bi se baza marshalla v xml datoteko in potem unmarshalla iz xml datoteke v pomnilnik, potem pa bi nad tabelami, ki bi bile objekti v Javi, izvajal SQL stavke.

V bistvu bi moral Java programček sam implementirati neko knjižnico, ki bi znala izvajati SQL stavke nad pravilno oblikovanimi objekti v lastnem pomnilniku brez pomoči neke zunanje baze in sql strežnika.

Implementacija je možna seveda tudi ročno z brskanjem po vektorjih v katerih je kompletna baza shranjena, toda z SQLom bi se lahko razvoj analitičnih modulov aplikacije krepko poenostavil, da iskanja in sortiranja ne omenjam.

Če ima kdo ideje katere knjižnice bi bile lahko uporabne v ta namen oz. kakšno drugačno vrsto implementacije baze z aplikacijo, ki naj bi delovala "out of the box" brez zahtev po kaki prednameščeni MySQL bazi, naj ne špara linkov. ;)

p.s.: Bistvo je v tem, da naj bi se datoteke baze shranjevale v xml datotekah, ne v neki pravi bazi (razlog je enostavna copy-paste prenosljivost). Zato želim implementirati delo z bazo na način kot je zastavljen v prvem odstavku.

b ::

po mojem je zate primeren SQLite... V osnovi sicer ne podpira Jave, ampak obstaja third-party JDBC gonilnik. Preizkusi in porocaj.

Na disku so sicer baze v njegovem formatu, ne XML, ampak jih lahko prenasas okrog kakor ti pase. XML verjetno ni dovolj efficient za R/W :) In ce ravno rabis XML, ti gotovo ne bo prevelik problem napisat dumperja.

Zgodovina sprememb…

  • spremenilo: b ()

OwcA ::

@b: saj SQLLite lahko dela tudi z bazo, ki je samo v pomnilniku, če prav razumem, za njegove potrebe to zadošča.

@B-D_: kaj modeliraš s temi tabelami? Ne bi bil mogoče kakšen DSL bolj primeren ( klik), če moraš definirati tudi različne relacije med podatki?
Morda ti tudi tole pride prav.
Otroška radovednost - gonilo napredka.

Zgodovina sprememb…

  • spremenilo: OwcA ()

MaCoFaCo ::

Včeraj sem slučajno naletel na tole: hsqldb

s_bostjan ::

Probaj 'derby' - bivši Cloudscape. Ima možnost tako standalone server kot tudi embedded. Pri nas se zelo dobro obnaša (na začetku smo preverili tudi SQLLite in HSQLDB - so pa bile počasnejše za naše potrebe).

Preveri tudi BerkleyDB in One$DB - al pa si poglej na: Performance Benchmark of Embedded Databases

B-D_ ::

kaj modeliraš s temi tabelami?

V bistvu so tabelice primarno namenjene za log in za brskanje ter iskanje po USDA, ki pa je malce preobsežna za enostavno premetavanje zgolj s procedurami, ki brskajo po vektorjih, zato iščem alternativo ki jo lahko vgradim v program (za linke se zahvaljujem, moram še pregledati zadeve, HSQLDB izgleda fenomenalen po performansih).

V log tabelice se ob timestamp shrani samo še nekaj integerjev, to je pa tudi vse, zato aktualne xml datoteke ne bodo obsegale na milijone vrstic katere bi marshalling težko prebavljal. Morda pa bi vseeno USDA bazo (ki se ne spreminja) raje skonvertal v kak drug database format in samo log pustil v XMLu...

http://weightwatcher.sourceforge.net/
Projekt je v popolni alpha fazi in je zamišljen kot neki "FitnessSuite", ki logira kaj bašeš vase, kako ti niha teža in v bodoče bo dodan tudi še kakšen log treningov, obsegov čela ipd... Kako bo šlo naprej in kakšne analitične in druge funkcije so potrebne, bo pokazal čas in debugger uporabniki. Sourcov še nisem objavil, ker trenutno razvijam prvi delujoč prototip in nisem še našel ustreznega pogona za bazo.

Morda bo res najbolje, da samo uporabniške fajle shranjujem v XML, te datoteke pa potem takoj, ko uporabnik izbere svoj username, unmarshallam in insertam v neko blank memory-based tabelo, od tam naprej pa počnem z njimi isto kot bi z ostalimi tabelami v bazi. Le pri uporabnikovem insertu bi takoj po commitu marshallal datoteko nazaj v XML, da bi se podatki shranili, drugače pa program XMLa ne bi šlatal zaradi performansov.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Ne-relacijska baza

Oddelek: Programiranje
193861 (2484) mitjaR
»

namizna aplikacija v javi

Oddelek: Programiranje
371787 (1300) urosz
»

[Delphi] Izbira podatkovne baze

Oddelek: Programiranje
222443 (1903) zhigatsey
»

[VB.Net] Baze

Oddelek: Programiranje
101594 (1432) Porker
»

C# database

Oddelek: Programiranje
131294 (1137) FXMagic

Več podobnih tem