Page 1 of 1

Stored in System

Posted: Sun Jun 08, 2008 8:16 am
by madMax
Καλημέρα,

Χρειάζομαι να αποθηκεύω κάποιες πληροφορίες σχετικά με τις ενέργειες που έχουν γίνει απο το πρόγραμμα (java) μέχρι τη στιγμή που θα γίνει έξοδος απο την εφαρμογή ( ή/και τερματισμός του λειτουργικού <windows>) ώστε να μην ξαναγίνονται τα ίδια πράγματα όταν ξανατρέξει η εφαρμογή.
Μια λύση αλλά πάρα πολυ αργή θα ήταν να γράφονται σε αρχεία οι πληροφορίες και να ενημερόνονται κατάλληλα και κάποια vectors, να ξαναγεμίζονται τα vectors από τα αρχεία όταν ξεκινά η εφαρμογή κοκ.
Ενα προβλημα είναι ότι κάποιες πληροφορίες πρέπει να διαγράφονται απο τα αρχεία όταν π.χ. διαγράφονται κάποια αρχεία απο το δίσκο. Για μικρές συλλογές απο αρχεία είναι OK αλλά....

Υπάρχει κάποια δομή του συστήματος που μπορώ να αποθηκεύσω δεδομένα ?
Κάποιος τρόπος να αποθηκέυσω μια δομή δεδομένων στο σύστημα?
Καμια ιδέα...

Re: Stored in System

Posted: Mon Jun 09, 2008 10:24 am
by PaP
XML
ή παίξε με SQLite
H δομές δεδομένων μπορούν να αποθηκευτούν σαν serialized objects και να γινουν απλά files στο δίσκο δεν συνηθίζεται όμως

Re: Stored in System

Posted: Mon Jun 09, 2008 10:48 am
by rose
Αν την κάνεις για σένα θα έλεγα να χρησιμοποίησεις το http://www.db4o.com για να κάνεις store και retrieve τις δομές που θα κρατάνε το prev
state.Αφου κάνεις retrieve ,γεμίζεις τα objects με τις προηγούμενες τιμές και με αυτο το τροπο επανέρχεται στο state που θέλεις.

Ναι είναι λίγο βαρύ αλλα το κάνεις μια φορα οταν ανεβαίνει η εφαρμογή.

Re: Stored in System

Posted: Mon Jun 09, 2008 11:23 am
by PaP
ee | Παρουσιάσεις |

sqlitelogo

Βλέπoντας πρόσφατα πως η default βάση δεδομένων για το Ruby On Rails έγινε η SQLite, θυμήθηκα ότι και η PHP 5 έχει ενσωματωμένη τη βάση αυτή. Χρειάστηκε να φτιάξω μια μικρή εφαρμογή και ως συνήθως την έφτιαξα σε web περιβάλλον αλλά για χρήση desktop και θεώρησα ότι δε χρειάζεται το overhead οποιασδήποτε παραδοσιακής σχεσιακής βάσης. Οπότε τα 250ΚΒ ήταν δελεαστικά για να της κάνω ένα test drive. Με έκπληξη μου διαπίστωσα ότι υποστηρίζει το 75% της ISO SQL και ότι δίνει τη δυνατότητα για πολλαπλούς πίνακες, triggers, views.

Μερικά άλλα χαρακτηριστικά είναι:

* Δεν είναι server, δηλαδή εκτελείται μόνο ανα request, οπότε δεν πιάνει χώρο στη μνήμη ούτε καταναλώνει επεξεργαστική ισχύ.
* Στην έκδοση Windows, υπάρχει μόνο ένα dll και ένας command line client, δε χρειάζεται απολύτως τίποτα άλλο
* Δε χρειάζεται καμία ρύθμιση
* Αποθηκεύει μια βάση σε ένα μόνο αρχείο οπότε είναι πολύ εύκολη η μεταφορά
* Εξαιρετικά γρήγορη (βέβαια όχι για πολύ μεγάλο αριθμό εγγραφών)

Σίγουρα η SQLite δεν αποτελεί αντίπαλο δέος της Oracle αλλά είναι τέλεια για desktop και embedded εφαρμογές, μάλιστα χρησιμοποιείται από το Adobe Air, Firefox, Safari, iPhone, Skype κλπ. Επίσης θεωρώ ότι είναι αρκετά καλή και για χρήση web αν σε ένα μηχάνημα θέλετε να στείσετε κάποιο wordpress, joomla, drupal και έχετε μικρή προς μέτρια επισκεψημότητα.

Τέλος θα ήθελα να αναφερθώ στο πολύ καλό GUI administrator/browser που υπάρχει και αποτελεί ένα απλό extension του Firefox


http://www.webz.gr/2008/03/14/sqlite/

Re: Stored in System

Posted: Mon Jun 09, 2008 11:41 am
by rose
Το να σώνεις το state σε db ειναι επίσημη λύση αλλα αρκετα δύσκολη και ανούσια για ενα regular app.(πχ εργασία μαθήματος).

Re: Stored in System

Posted: Mon Jun 09, 2008 11:51 am
by PaP
To SQLite δεν είναι db server
Από την άλλη θα πρέπει να γράψει SQL
Αλλά σύνολο δεν είναι μεγάλη λύση

Re: Stored in System

Posted: Mon Jun 09, 2008 1:01 pm
by rose
Με το http://www.db4o.com κάνεις query σε Serialized Objects. :smt002

Re: Stored in System

Posted: Mon Jun 09, 2008 6:51 pm
by madMax
ευχαριστώ για την ανταπόκριση,
όντως για εργασία μαθήματος είναι λιγο παρατραβηγμένο

Re: Stored in System

Posted: Mon Jun 09, 2008 8:35 pm
by rose
Ελπίζω να βοηθήσαμε,δες το παρακάτω tutorial για db4o.

http://developer.db4o.com/Resources/view.aspx/Formula_One_Tutorial