Apa pilihan database yang baik untuk aplikasi NET kecil? [Tutup]
180
Saya sedang mengembangkan aplikasi kecil dengan C # dalam. NET dan saya ingin memiliki basis data ringan kecil yang tidak menggunakan banyak sumber daya.
Bisakah Anda mendaftar beberapa software database ringan yang paling terkenal .
17/03/2014 Saya masih menerima upvotes untuk ini, perhatikan tanggal ini pada awalnya dijawab. Meskipun tiga item utama yang terdaftar masih sepenuhnya layak, daftar akan cenderung menjadi basi. Ada teknologi basis data lebih lanjut yang tersedia yang tidak terdaftar.
Anda memiliki beberapa opsi yang langsung dapat dikenali dan gratis:
Pengunduhan SQL Server Compact dilengkapi dengan penyedia ADO.NET yang Anda perlu referensi dalam kode. Unduhan SQLite mungkin tidak memilikinya jadi di sini ada tautan:
Ketiganya menggunakan SQL, meskipun kemungkinan dengan beberapa batasan / kebiasaan. Management Studio bekerja dengan Compact dan LocalDB, sedangkan dengan SQLite Anda memerlukan alat UI lain seperti SQLite Administrator:
Secara pribadi saya akan menghindari menggunakan MS Access dalam menghadapi opsi gratis lainnya. Anda tidak dapat salah dengan LocalDB, Compact, atau SQLite. Mereka semua adalah basis data kecil yang indah yang berjalan relatif cepat dalam RAM kecil - preferensi pribadi mengenai aspek keagamaan tentang menyukai produk Microsoft, saya kira :-)
Saya menggunakan Sterling untuk pemrograman Windows Phone karena dibangun untuk menggunakan Penyimpanan Terpencil. Saya hanya melihat artikel di RavenDb, tetapi saya dapat memberitahu Anda bahwa itu adalah kerangka penyimpanan dokumen berbasis JSON.
Bukan untuk membingungkan situasi (pergi dengan SQLite, SQL Server Express LocalDB, atau SQL Server Compact Edition), tetapi ada database lokal / tertanam lainnya di luar sana, beberapa relasional yang lain berorientasi objek:
+1 Untuk SQL Server CE. Daripada menginstal server SQL di samping aplikasi Anda, Anda bisa menggunakan SQL Server CE dll dan memiliki file database di direktori kerja aplikasi Anda. Sederhana.
Phil
2
RavenDB memang merupakan database dokumen tetapi API-nya jauh lebih kuat daripada pasangan nama dan nilai sederhana. Masalahnya adalah itu tidak gratis untuk proyek komersial jika Anda mencari alternatif gratis.
JCallico
@Jallico Saya akui saya generalisasi sedikit dengan ringkasannya, tapi saya ragu ada yang akan menganggap apa yang saya katakan sebagai Injil.
Adam Houldsworth
@ Brendan Long, tidak ada implementasi SQL di luar sana yang bisa Anda katakan standar 100%.
Pop Catalin
1
Alih-alih meninggalkan pesan kecil yang sulit dibaca di bagian atas jawaban Anda yang menjelaskan bahwa informasi tersebut sudah usang. Mungkin lebih mudah untuk memperbarui dan / atau menambahkan jawaban Anda dan menyertakan beberapa contoh opsi yang tersedia saat ini.
James Shaw
58
Saya akan merekomendasikan SQLite . Kami menggunakannya untuk hampir semua aplikasi yang kami kembangkan di tempat saya bekerja.
Ini kecil dan kompak. Memang diperlukan DLL untuk berada di direktori aplikasi, tetapi Anda tidak harus menginstal perangkat lunak lain seperti Access atau SQL Server. Juga, sebagaimana dinyatakan oleh danielkza di bawah ini, "SQLite adalah domain publik, jadi Anda tidak perlu khawatir sama sekali tentang perizinan." Itu benar-benar dapat membuat perbedaan besar.
Anda dapat menggunakan System.Data.SQLite atau csharp-sqlite untuk mengaksesnya di aplikasi C # menggunakan metode yang sama seperti SQL atau OleDB.
Fungsi Kustom: Sebagai tambahan, jika Anda mencari di Fungsi Inti SQLite dan tidak melihat yang Anda sukai, Anda dapat membuat fungsi kustom Anda sendiri. Berikut adalah beberapa contoh: Dari contoh SO Anoter
Satu tambahan: SQLite adalah domain publik, jadi Anda tidak perlu khawatir tentang perizinan.
danielkza
@MikeWebb Akankah Sqlite bekerja dengan aplikasi ClickOnce tanpa perlu menginstal layanan tambahan apa pun? Apakah ini akan berfungsi jika berada di jaringan berbagi untuk beberapa pengguna secara bersamaan?
Prokurors
1
@Prokurors - Semua SQLite yang perlu dijalankan adalah file DLL yang sesuai dengan bahasa yang Anda gunakan dalam program Anda (C ++, C #, dll). Tidak ada layanan atau program lain yang diperlukan. Juga, itu harus bekerja pada jaringan dengan pengguna bersamaan. Kami memiliki salinan dan berjalan di server tempat saya bekerja dan itu berfungsi dengan baik. Anda dapat melihat lebih banyak tentang konkurensi di sini: sqlite.org/lockingv3.html
Versi tertanam adalah variasi luar biasa dari server. Ini adalah server Firebird berfitur lengkap yang dikemas hanya dalam beberapa file. Ini sangat mudah digunakan, karena tidak perlu menginstal server.
SQL Server Compact jika Anda ingin menggunakan solusi microsoft resmi. Ini memiliki keuntungan karena dapat menggunakan replikasi dengan SQL server jika Anda memerlukan hal semacam itu.
SQLite jika Anda ingin sesuatu yang sangat kecil dan sederhana. Inilah yang Android gunakan untuk basis data internal sehingga sangat didukung dengan baik dan ada .NET binding yang sangat baik.
Satu keuntungan berbeda dari SQLite adalah cross-platform. Jadi jika Anda ingin port aplikasi Anda ke Mono.NET maka Anda tidak akan memiliki modifikasi untuk implementasi database.
Saya tidak suka MS Access untuk solusi ini, tetapi banyak orang memasukkannya dalam jawaban mereka. Ini terbatas karena format kepemilikan dan ketergantungan platform. Itu memang memiliki kelebihan itu. Anda dapat memanipulasi data dengan mudah jika Anda memiliki salinan MS Access, Anda dapat membuat kueri secara grafis dan membuat makro. Anda dapat dengan mudah mengintegrasikannya dengan MS Office lainnya.
Dari semua SQLite ini akan menjadi rekomendasi saya karena itu begitu kompak, didokumentasikan dengan baik dan didukung oleh pasukan pengembang yang terus berkembang terlepas dari platform.
EDIT
Saya menyadari bahwa ada pilihan lain yang semua orang di sini lupa untuk disebutkan
Selama Anda tidak memerlukan tabel relasional, Anda dapat menggunakan file CSV yang dibaca sebagai dataset melalui ADO.NET. (Lebih dari saran lulz daripada yang lain tetapi akan cocok dalam beberapa kasus dan tidak memerlukan perpustakaan tambahan untuk penyebaran MS.
Jika Anda sedang membangun proyek dengan .NET 4.0.2 atau lebih tinggi dan ingin dukungan basis data tertanam, pertimbangkan SQL Server Express LocalDB .
Ini merupakan tambahan yang relatif baru untuk keluarga Express yang menampilkan jejak instalasi yang lebih kecil dan pengurangan overhead manajemen (bila dibandingkan dengan edisi Express lainnya), namun tetap mempertahankan aspek programabilitas SQL Server. Artinya, tidak seperti Compact Edition, LocalDB tidak memerlukan instalasi penyedia ADO.NET terpisah untuk berkomunikasi dengan SQL.
Atau khusus untuk .NET, Anda mungkin ingin melihat RavenDB
marc_s
Mongo, walaupun cantik, tidak berjalan tertanam - Anda harus memulai proses server terpisah, yang mungkin sedikit berat untuk tujuan OP.
Mike Woodhouse
Mongodb tidak mendukung sql. si penanya ingin "di mana saya dapat menyimpan dan mengambil catatan berdasarkan permintaan Sql". Dan terlebih lagi, mongodb adalah haus akan memori. Saya tidak merekomendasikannya untuk kasus penggunaan ini.
Peter Long
4
Anda dapat menggunakannya Sql Server Express Editionsecara gratis dan sama-sama kuat hingga dan kecuali Anda menginginkan fungsionalitas seperti mirroringdll . Lihat ini .
Pertanyaannya menyatakan "Saya tidak butuh yang kuat". SQL Server Express BUKAN versi ringan dari SQL Server. Ini adalah versi terbatas ukuran basis data dan memiliki dampak besar pada memulai pengguna PC saat layanan dimulai. Ini berlebihan untuk pertanyaan ini. SQL Server Compact lebih cocok.
Moog
2
Saya telah menggunakan db4o dengan sukses.
Berbasis file, komunitas besar, mudah digunakan.
Lisensi Publik Umum Gratis db4o dilisensikan di bawah GPL secara default.
Lisensi GPL sangat ideal jika Anda berencana untuk menggunakan db4o di rumah atau Anda berencana untuk mengembangkan dan mendistribusikan karya turunan Anda sendiri sebagai perangkat lunak bebas di bawah GPL juga.
Lisensi Komersial Lisensi komersial diperlukan jika Anda ingin menanamkan db4o dalam produk komersial non-GPL. Pemegang lisensi komersial mendapatkan akses ke layanan dan dukungan premium.
Saya menggunakan db4o selama 6 bulan pada tahun 2012. Jika ada beberapa cara untuk menghindari masalah karena tidak dapat mengakses data lama setelah model objek berubah, saya akan menjawab dengan jelas jawaban ini. Sejauh yang saya tahu, sulit untuk menghindari kehilangan data lama jika Anda mengubah objek Anda. Intinya adalah selalu menyimpan salinan cadangan data Anda di tempat lain dalam format yang berbeda, non-db4o (yang merupakan aturan yang cukup umum).
Contango
2
Alternatif yang belum disebutkan jika Anda tidak memerlukannya menjadi database gratis adalah VistaDB. Ini semua dikelola kode, menyediakan banyak fitur untuk database tertanam, dan menawarkan kinerja yang cukup bagus. Jembatan yang cukup bagus antara SQL CE dan SQL Server Express karena sebagian besar prosedur tersimpan VistaDB Anda akan berjalan tanpa modifikasi dalam SQL Server Express. Saya sudah cukup senang dengan layanan pelanggan pada saat ini juga. Saya sudah menggunakannya di tempat kerja. Tidak ada layanan untuk memulai. DB kosong sekitar 1MB dan DLL juga cukup ringan. Memiliki penyedia ADO.NET dan hal-hal semacam itu. Saya menyukainya sedikit.
Hai! Apakah itu berfungsi dalam skenario multi-pengguna? Sebagai contoh, bisakah saya menyimpan VistaDB ini di jaringan berbagi dan mengaksesnya secara bersamaan dari beberapa pengguna?
Prokurors
1
Itu beberapa kemampuan terbatas dalam hal ini. Jelas itu tidak dapat menggantikan database yang sebenarnya berjalan dengan mesin db lokal pada kotak itu tetapi memang menawarkan beberapa opsi transaksional. Kami berencana untuk menggunakannya dalam skenario itu karena sepertinya itu akan menanganinya lebih baik daripada opsi gratis yang kami temui dan pelanggan kami tidak akan mungkin memiliki keahlian untuk memasang sql server atau apa pun. Ini menawarkan lebih banyak fitur daripada sqlce tetapi tidak sebanyak server sql penuh. Ini adalah perangkat lunak kualitas nyata.
Rig
Terimakasih untuk informasinya! Dan diharapkan versi 5 baru mereka terdengar sangat menjanjikan. Sudahkah Anda mencoba Entity Framework dengan VistaDB? Mungkin bahkan membuat file VistaDB dengan Kode EF terlebih dahulu?
Prokurors
1
Saya melakukannya tetapi ini sekitar 3-4 tahun yang lalu. Pada saat itu saya menemukannya berfungsi dengan baik dan itu adalah pengalaman EF pertama saya. Saya menganggap itu lebih baik sekarang. Satu-satunya kekurangan yang dimiliki pada saat itu adalah segmen-segmen tertentu dari dokumentasi itu jarang tetapi itu selama masa transisi setelah dibeli oleh pemiliknya yang sekarang.
Rig
1
PS: Setidaknya pada saat saya menggunakannya mereka lebih dari bersedia untuk memberikan lisensi demo untuk digunakan. Saya sangat menyarankan Anda mencobanya sebelum berkomitmen untuk biaya lisensi.
Rig
1
SQL server Compact Edition terbaik karena gratis dan Ringan dalam Ukuran dan terintegrasi dengan baik
Jawaban:
14/06/2016 Yap ... masih mendapatkan upvotes: - /
17/03/2014 Saya masih menerima upvotes untuk ini, perhatikan tanggal ini pada awalnya dijawab. Meskipun tiga item utama yang terdaftar masih sepenuhnya layak, daftar akan cenderung menjadi basi. Ada teknologi basis data lebih lanjut yang tersedia yang tidak terdaftar.
Anda memiliki beberapa opsi yang langsung dapat dikenali dan gratis:
Pengunduhan SQL Server Compact dilengkapi dengan penyedia ADO.NET yang Anda perlu referensi dalam kode. Unduhan SQLite mungkin tidak memilikinya jadi di sini ada tautan:
http://sqlite.phxsoftware.com/
Ketiganya menggunakan SQL, meskipun kemungkinan dengan beberapa batasan / kebiasaan. Management Studio bekerja dengan Compact dan LocalDB, sedangkan dengan SQLite Anda memerlukan alat UI lain seperti SQLite Administrator:
http://sqliteadmin.orbmu2k.de/
Ada alternatif NoSQL, seperti:
Secara pribadi saya akan menghindari menggunakan MS Access dalam menghadapi opsi gratis lainnya. Anda tidak dapat salah dengan LocalDB, Compact, atau SQLite. Mereka semua adalah basis data kecil yang indah yang berjalan relatif cepat dalam RAM kecil - preferensi pribadi mengenai aspek keagamaan tentang menyukai produk Microsoft, saya kira :-)
Saya menggunakan Sterling untuk pemrograman Windows Phone karena dibangun untuk menggunakan Penyimpanan Terpencil. Saya hanya melihat artikel di RavenDb, tetapi saya dapat memberitahu Anda bahwa itu adalah kerangka penyimpanan dokumen berbasis JSON.
Bukan untuk membingungkan situasi (pergi dengan SQLite, SQL Server Express LocalDB, atau SQL Server Compact Edition), tetapi ada database lokal / tertanam lainnya di luar sana, beberapa relasional yang lain berorientasi objek:
Tidak semuanya gratis. Dukungan SQL / LINQ / in-proc berbeda di semua. Daftar ini hanya untuk rasa ingin tahu.
Sekarang ada juga Karvonite , namun tautan galeri kode rusak. Ketika sudah hidup kembali saya akan mencari yang ini untuk pengembangan WP7.
sumber
Saya akan merekomendasikan SQLite . Kami menggunakannya untuk hampir semua aplikasi yang kami kembangkan di tempat saya bekerja.
Ini kecil dan kompak. Memang diperlukan DLL untuk berada di direktori aplikasi, tetapi Anda tidak harus menginstal perangkat lunak lain seperti Access atau SQL Server. Juga, sebagaimana dinyatakan oleh danielkza di bawah ini, "SQLite adalah domain publik, jadi Anda tidak perlu khawatir sama sekali tentang perizinan." Itu benar-benar dapat membuat perbedaan besar.
Anda dapat menggunakan System.Data.SQLite atau csharp-sqlite untuk mengaksesnya di aplikasi C # menggunakan metode yang sama seperti SQL atau OleDB.
Anda juga akan memerlukan aplikasi untuk mengedit / mengelola basis data. Yang terbaik menurut saya adalah SQLite Studio . Berikut adalah beberapa lainnya:
SQLite Admin
SQLite 2009 Pro (bawah halaman)
Pembaruan - 7/25/11 - Lebih banyak aplikasi SQLite (pertanyaan di SO)
Berikut ini lebih lanjut tentang SQLite:
SQLite di Wikipedia
Company yang menggunakan SQLite
Fungsi Kustom: Sebagai tambahan, jika Anda mencari di Fungsi Inti SQLite dan tidak melihat yang Anda sukai, Anda dapat membuat fungsi kustom Anda sendiri. Berikut adalah beberapa contoh:
Dari contoh SO
Anoter
sumber
Embedded Firebird bisa menjadi pilihan yang bagus
Ada beberapa driver dot net yang sangat bagus
sumber
SQL Server Compact jika Anda ingin menggunakan solusi microsoft resmi. Ini memiliki keuntungan karena dapat menggunakan replikasi dengan SQL server jika Anda memerlukan hal semacam itu.
SQLite jika Anda ingin sesuatu yang sangat kecil dan sederhana. Inilah yang Android gunakan untuk basis data internal sehingga sangat didukung dengan baik dan ada .NET binding yang sangat baik.
Satu keuntungan berbeda dari SQLite adalah cross-platform. Jadi jika Anda ingin port aplikasi Anda ke Mono.NET maka Anda tidak akan memiliki modifikasi untuk implementasi database.
Saya tidak suka MS Access untuk solusi ini, tetapi banyak orang memasukkannya dalam jawaban mereka. Ini terbatas karena format kepemilikan dan ketergantungan platform. Itu memang memiliki kelebihan itu. Anda dapat memanipulasi data dengan mudah jika Anda memiliki salinan MS Access, Anda dapat membuat kueri secara grafis dan membuat makro. Anda dapat dengan mudah mengintegrasikannya dengan MS Office lainnya.
Dari semua SQLite ini akan menjadi rekomendasi saya karena itu begitu kompak, didokumentasikan dengan baik dan didukung oleh pasukan pengembang yang terus berkembang terlepas dari platform.
EDIT
Saya menyadari bahwa ada pilihan lain yang semua orang di sini lupa untuk disebutkan
Selama Anda tidak memerlukan tabel relasional, Anda dapat menggunakan file CSV yang dibaca sebagai dataset melalui ADO.NET. (Lebih dari saran lulz daripada yang lain tetapi akan cocok dalam beberapa kasus dan tidak memerlukan perpustakaan tambahan untuk penyebaran MS.
sumber
Jika Anda sedang membangun proyek dengan .NET 4.0.2 atau lebih tinggi dan ingin dukungan basis data tertanam, pertimbangkan SQL Server Express LocalDB .
Ini merupakan tambahan yang relatif baru untuk keluarga Express yang menampilkan jejak instalasi yang lebih kecil dan pengurangan overhead manajemen (bila dibandingkan dengan edisi Express lainnya), namun tetap mempertahankan aspek programabilitas SQL Server. Artinya, tidak seperti Compact Edition, LocalDB tidak memerlukan instalasi penyedia ADO.NET terpisah untuk berkomunikasi dengan SQL.
Lihat yang berikut untuk detail lebih lanjut:
SQL Express v LocalDB v Edisi Compact SQL (Blog MSDN)
SQL LocalDB vs SQL Server CE (Stack Overflow)
sumber
bagaimana dengan http://en.wikipedia.org/wiki/NoSQL_(RDBMS) ?
khususnya MongoDB untuk .Net
http://www.mongodb.org/display/DOCS/Home
sumber
Anda dapat menggunakannya
Sql Server Express Edition
secara gratis dan sama-sama kuat hingga dan kecuali Anda menginginkan fungsionalitas sepertimirroring
dll . Lihat ini .sumber
Saya telah menggunakan db4o dengan sukses.
Berbasis file, komunitas besar, mudah digunakan.
http://www.db4o.com/
Detail Perizinan
sumber
Alternatif yang belum disebutkan jika Anda tidak memerlukannya menjadi database gratis adalah VistaDB. Ini semua dikelola kode, menyediakan banyak fitur untuk database tertanam, dan menawarkan kinerja yang cukup bagus. Jembatan yang cukup bagus antara SQL CE dan SQL Server Express karena sebagian besar prosedur tersimpan VistaDB Anda akan berjalan tanpa modifikasi dalam SQL Server Express. Saya sudah cukup senang dengan layanan pelanggan pada saat ini juga. Saya sudah menggunakannya di tempat kerja. Tidak ada layanan untuk memulai. DB kosong sekitar 1MB dan DLL juga cukup ringan. Memiliki penyedia ADO.NET dan hal-hal semacam itu. Saya menyukainya sedikit.
VistaDB
sumber
SQL server Compact Edition terbaik karena gratis dan Ringan dalam Ukuran dan terintegrasi dengan baik
sumber
SQL Server Express atau MS Access
sumber