Δημοσιεύτηκε: 11 Φεβ 2012, 19:56
από medigeek
Ilias95 έγραψε:Δεν υπάρχει κάποιο θέμα σχετικό με τις βάσεις δεδομένων οπότε είπα να ανοίξω ένα.

Ποια/ποιες εκ των SQL, MySQL, SQLite (ή κάποια άλλη που μου διαφεύγει) χρησιμοποιείτε συχνότερα, ποια επικρατεί γενικώς, ποιες οι διαφορές τους και ποια τα πλεονεκτήματα της κάθε μίας; Κάποια καλά tutorial που θα προτείνατε σε κάποιον που δεν έχει ξανά ασχοληθεί με βάσεις δεδομένων;


MySQL / MariaDB (GPL "community mysql") / PostgreSQL (αν θυμάμαι καλά, ήταν και είναι ακόμη open source) / Oracle database (Κλειστού κώδικα λογισμικό) - Αυτές οι βάσεις δεδομένων είναι RDBMS: http://en.wikipedia.org/wiki/Relational ... ent_system
έγραψε:A short definition of an RDBMS is: a DBMS in which data is stored in tables and the relationships among the data are also stored in tables. The data can be accessed or reassembled in many different ways without having to change the table forms.


Υπάρχει ακόμη μια κατηγορία βάσης δεδομένων εκτός από (Ο)RDBMS, αλλά δεν μπορώ να θυμηθώ το όνομα.

Οι περισσότερες RDBMS βασίζονται στη γλώσσα "SQL": http://en.wikipedia.org/wiki/SQL
Από εκεί, η καθεμιά προσθέτει τα δικά της "χαρακτηριστικά" (εντολές, μεθόδους, variables κτλ). Μπορείς να κάνεις import/export τη βάση σου από μια βάση mysql σε μια άλλη mysql. Μπορείς επίσης να κάνεις import/export τη βάση σου από σύστημα (mysql) σε σύστημα (mariadb ;; ), αν φυσικά υποστηρίζουν και οι δύο την αρχική SQL γλώσσα.

Η sqlite είναι από τις πιο γρήγορες και είναι public domain. Φορτώνει το αρχείο της βάσης την πρώτη φορά που το διαβάζει στη μνήμη (άρα την πρώτη φορά αργεί λίγο, ανάλογα με το μέγεθος της βάσης δεδομένων). Μετά όλα γίνονται στη μνήμη απ'ό,τι θυμάμαι.

έγραψε:
Θέλουμε όμως επίσης το πρόγραμμα να είναι multi-user. Δηλαδή να μπορούν να συνδέονται διαφορετικοί χρήστες και να έχει ο καθένας τις δικές του κατηγορίες και επαφές.
Πως θα υλοποιηθεί αυτό;

Αυτό δεν γίνεται στην sqlite: http://www.sqlite.org/omitted.html (GRANT / REVOKE) - το sqlite είναι βάση δεδομένων σε ένα αρχείο. Το αρχείο θα είναι readable σε όλους τους χρήστες, ο καθένας μπορεί να διαβάσει τα δεδομένα ολόκληρης της βάσης δεδομένων.

Αν επιλέξεις το sqlite, το μόνο που μπορείς να κάνεις είναι να φτιάξεις ξεχωριστές sqlite βάσεις δεδομένων για κάθε χρήστη στο ~/.config/myproject/mydb.db :)

Αν η βάση δεδομένων πρόκειται να έχει πολλά στοιχεία, πολλούς χρήστες, που αλληλοσυνδέονται μεταξύ τους, τότε επέλεξε mysql. Για την ώρα είναι ξακουστή η mysql, μέχρι που η Sun την παρέδωσε στην Oracle. Ακόμη υπάρχει ευτυχώς, αλλά το μέλλον της δεν είναι σίγουρο.