PDA

View Full Version : سوال: از جه دیتابیس استفاده کنم؟



thelastphoenix
پنج شنبه 12 شهریور 1388, 11:21 صبح
با سلام بر دوستان عزیز

دوستان عزیز من در یک برنامه c#
نیاز به یک دیتا بیس کوچک دارم..و به دلایلی نمی تتونم از ذخیره اطلاعاتم در فایل و ریجستری
استفاده کنم

یک دیتا بیس کوچک و ساده می خوام...استفاده از sqlserver و mysql برام هزینه بره
هم برای نیاز به نصب بر رئی سیستم کاربر نهایی و ..

آیا دیتا بیس های ساده و نه چندان حرفه هستند که ترجیحا نیاز به نصب برای کاربر
نهایی نداشته باشن مثل دیتا بیس پیش فرض سیستم عامل ...و برای ساختن یک
بانک اطلاعاتی ساده مناسب باشن؟

با تشکر


موفق باشید

Davood_amega
پنج شنبه 12 شهریور 1388, 11:34 صبح
بله که هست.
میتونی از Access استفاده کنی و درگیر Sql و ... نشی.

mahdi_7610
پنج شنبه 12 شهریور 1388, 11:46 صبح
Access میتونه انتخاب خوبی باشه .

موفق باشی

Armin060
پنج شنبه 12 شهریور 1388, 12:30 عصر
خوب SQL Express هم گزينه خوبيه. هم سبكه و كوچيكه و هم از Access قوی تره. ( SQL Express با SQL Server فرق ميكنه )
البته گمونم اگر از Linq استفاده كنيد نياز به نصب هيچی جز DotNet3 نداريد.

thelastphoenix
پنج شنبه 12 شهریور 1388, 22:55 عصر
دوستان عزیز ممنونم از راهنماییتون چند تا سوال برام پیش اومد:لبخند:

امکان داره من یک تیبل دیتابیسم به 5000 رکورد برسه برای کار با اکسس مشکل ساز نیست؟؟
(شرمنده شاید سوالاتم خیلی مبتدی باشه)

اکسس بازم نیاز به نصب بروی سیستم کاربر نهایی داره! درسته؟!

با sql express و linq کار نکردم...
می شه بین این دو راهنماییم کنید؟
این طور که دوسته عزیزمونArmin060 (http://www.barnamenevis.org/forum/member.php?u=76761) فرمودن
linq نیاز به نصب روی سیستم نهایی نداره منم رو .net3.5 کار میکنم
با تشکر از راهنماییتون

solidilos
پنج شنبه 12 شهریور 1388, 23:03 عصر
Access نیاز به نصب نداره. از SQL CE استفاده کن. از Access قویتره و نیاز به نصب هم نداره.

farhaneh
پنج شنبه 12 شهریور 1388, 23:48 عصر
سلام.
به نظر من هم بهترین گزینه sql express و یا linq هستش . linq خیلی بهتره. نیاز به نصب و درگیری های مربوط به برقراری ارتباط با سرور ندارین. یه جورایی با جدولای پایگاه داده مثل به آبجکت رفتار میکنه.

amin-soft
جمعه 13 شهریور 1388, 01:43 صبح
SQL Express اصلا مناسب نیست و sqlserver و Access نسبت به ان بهتره ولی برای کار شما که می خواهید نیازی به نصب نباشد Access است . و برای رفع ادرس دیتابیس ان را در پوشه Debug پروژه قرار بده و ادرس اتصال هم به این صورت بده اگر از Access2003 استفاده می کنید (در پایین است) و برای Access2007 رشته اتصال فرق می کند و برای اطلاعات بیشتر به سایت www.connectionstring.com (http://www.connectionstring.com) مراجعه کنید .



this.con.ConnectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =DBHOME.mdb; Persist Security Info = True";



و اگر برنامه تحت شبکه نیست Access بد نیست و اگر تحت شبکه است از sqlserver استفاده کن و اصلا نگرام نصب نباش . شما همین طوری که برنامه را تحویل نمی دهید و اول Stup باید ایجاد کنید و نرم افزار InstallShield امکانی را در اختیار شما قرار می دهد که بتوانید در هنگام نصب شدن برنامه نرم افزارهای دیگر هم نصب کند که برای یک پروژه c#.net به Microsoft .NET Framework و برای پایگاه sqlserver نیاز به sql script دارید . موفق باشید.

jblaox
چهارشنبه 30 شهریور 1390, 12:14 عصر
سلام

من یک جدول دارم با 10 ستون تقریبا ! اما رکوردهایم (سطر ها) تقریبا میلیاردی ، هر روز حداقل 120.000 رکورد اضافه میشود به جدول و این کار چند سال باید انجام بشود (تقریبا 43.800.000 رکورد سالانه ) ، برنامه من تحت شبکه نیست و روی لینوکس و ویندوز کار میکنه ، کار برنامه هم ذخیره خروجی سنسورهای مختلف است . یوزر فرندلی بودن این برنامه برایم مهم . فیلد هام اینجوری :

شناسه (ID) - تاریخ - زمان - خروجی سنسورها و ....

این هم بگم هر یک ثانیه (و شاید کمتر) من یک بار به این بانک اطلاعاتی وصل میشوم و یک رکورد ذخیره میکنم همچنین خواندن هم انجام میدهم و دستورات سریچ و یا فیلتر و ... من کم است .

یک چند تا سوال دارم :

1- چه بانک اطلاعاتی پیشنهاد میکنید که مطمئن باشد و منابع سیستم کمتر مصرف کند از قبیل رم و CPU و غیره را ؟ ( MySQL , PostgreSQL , Oracle , Microsoft SQL Server , SQLite , Access , CSV )

2- من نوع ذخیره کردن اعداد و تاریخ و ... (همه فیلد هایم) به صورت String است ایا ان باعث افزایش حجم (اندازه) بانک اطلاعاتی میشود ، مثلا اینجوری تقریبا با 40.000 فیلد حجم بانک با Access میشود 5 مگابایت ، اگر به جای String از نوع int استفاده کنم حجم نهایی بانکم من کم میشود یا که نه ؟؟ اصلا تاثیری داره ؟؟

f_pakzad
چهارشنبه 30 شهریور 1390, 13:37 عصر
با توجه به تحت شبکه نبودن برنامه ات SQLITE را پیشنهاد میکنم. نیاز به هیچ نصبی نداره. بسیار سبک هست و به آموزش خاصی هم نیاز ندارید چون تقریباً مشابه sqlserver هست

jblaox
چهارشنبه 30 شهریور 1390, 21:39 عصر
با توجه به تحت شبکه نبودن برنامه ات SQLITE را پیشنهاد میکنم. نیاز به هیچ نصبی نداره. بسیار سبک هست و به آموزش خاصی هم نیاز ندارید چون تقریباً مشابه sqlserver هست

سلام

متشکرم از پاسخ شما ، نظرم تا حدودی با شما یکی از نظر سرعت ، سهولت استفاده ، قابلیت حمل و ...

اما واقعا به نظر شما این دیتا بیس میتواند با 131.400.000 رکورد کار کند ؟؟

موفق پیروز باشد

f_pakzad
چهارشنبه 30 شهریور 1390, 21:43 عصر
مگه قراره همه اینها تو یک table باشه؟ ضمناً فکر نکنم از این نظر محدودیتی داشته باشه. فقط از نظر حجم دیتابیس محدودیت داره که اون هم د رحد چند گیگ هست که یعنی خیلییی
این دو تالینک را ببینید
آشنايي با SQLite : پايگاه داده‌هايي براي تمامي ‌فصول (http://www.developercenter.ir/forum/showthread.php?27086-%D8%A2%D8%B4%D9%86%D8%A7%D9%8A%D9%8A-%D8%A8%D8%A7-SQLite-%D9%BE%D8%A7%D9%8A%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87%E2%80%8C%D9%87%D8%A7%D9%8 A%D9%8A-%D8%A8%D8%B1%D8%A7%D9%8A-%D8%AA%D9%85%D8%A7%D9%85%D9%8A-%E2%80%8C%D9%81%D8%B5%D9%88%D9%84)

SQLite Expert نرم افزاری برای مدیریت دیتابیس های SQL
(http://www.developercenter.ir/forum/showthread.php?23704-SQLite-Expert-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-%D9%87%D8%A7%DB%8C-SQL)

jblaox
چهارشنبه 30 شهریور 1390, 23:58 عصر
مگه قراره همه اینها تو یک table باشه؟ ضمناً فکر نکنم از این نظر محدودیتی داشته باشه. فقط از نظر حجم دیتابیس محدودیت داره که اون هم د رحد چند گیگ هست که یعنی خیلییی
این دو تالینک را ببینید
آشنايي با SQLite : پايگاه داده‌هايي براي تمامي ‌فصول (http://www.developercenter.ir/forum/showthread.php?27086-%D8%A2%D8%B4%D9%86%D8%A7%D9%8A%D9%8A-%D8%A8%D8%A7-SQLite-%D9%BE%D8%A7%D9%8A%DA%AF%D8%A7%D9%87-%D8%AF%D8%A7%D8%AF%D9%87%E2%80%8C%D9%87%D8%A7%D9%8 A%D9%8A-%D8%A8%D8%B1%D8%A7%D9%8A-%D8%AA%D9%85%D8%A7%D9%85%D9%8A-%E2%80%8C%D9%81%D8%B5%D9%88%D9%84)

SQLite Expert نرم افزاری برای مدیریت دیتابیس های SQL
(http://www.developercenter.ir/forum/showthread.php?23704-SQLite-Expert-%D9%86%D8%B1%D9%85-%D8%A7%D9%81%D8%B2%D8%A7%D8%B1%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-%D9%87%D8%A7%DB%8C-SQL)

سلام

متشکرم از لینک های شما ، اما من بلدم با SQLite کار کنم و ... فقط می ترسم وسط کار یک دفعه پس بزنه بعد شرش بیفته گردنم و تعویض دیتابیس و انتقال اطلاعات در این حجم رکورد خطری ...

بله دقیقا تمام آن رکورد ها در یک Table است !! کلا یه Table دارم که 12 فیلد داره که عبارتند از : تاریخ ، زمان ، خروجی سنسور 1 ، خروجی سنسور 2 ، خروجی سنسور 3 و...

و بر طبق محاسبات هم حجم بانک اطلاعاتی هم تقریبا 20 گیگ میشود ، هرچند SQLite به گفته خودش در نسخه 3.5 به بعد ترابایت هم ساپورت میکنه اما خودش میگه سرعت بسیار کم میشود ...

ولی خدا وکیلی برای پروژه های متوسط و کوچک خیلی خیلی وسوسه کننده است .

یک مورد دیگری هم که وجود دارد این که .NET 4 مشکل داره .

f_pakzad
چهارشنبه 30 شهریور 1390, 23:08 عصر
لازمه حتماً از دات نت ۴ استفاده کنید؟ با ۲ کارتون راه نمیفته؟که دیگه کاربر نیاز به نصبش نداشته باشه و اگر هم نیاز شد حجمش خیلی کمتره

seven7777777
پنج شنبه 31 شهریور 1390, 00:34 صبح
دوست عزیز
الان بحث شما یه جوری شده که هم خدا رو می خوای و هم خرمارو ... :لبخند:

هم سرعت بالا ، هم حجم کم و بدون نیاز به نصب و ...
به هر حال امیدوارم اساتید به اینجا سری بزنن و نظر منطقی و با برهان خودشونو بدن .

اما من فارغ از بانکت بهت پیشنهاد میدم الگوریتمی پیاده کنی تا دچار حجم زیاد یک جدول نشی . در یک برنامه اتوماسیون دیدم که برای هر ماه یک جدول جدید در لحظه ایجاد می کرد و داده های جدید وارد اون جدول میشد . با چنین الگوریتمی واکشی و جستجو در این حجم داده عظیم بسیار عالی میشه .

در مورد نوع فیلدها هم منطقا بستگی به نوع داده ، اندازش و ... داره . مثلا برای نگهداری تاریخ در صورتی که از نوع خودش استفاده کنید 8 بایت (به همراه ساعت ، دقیقه و ثانیه ) میشه در حالی که با نوع رشته تاریخ رو در حداقل 16 بایت (البته بسته به نوع ذخیره سازی شما ) پس اکیدا توصیه می کنم نوع داده هاتونمن اصلاح کنید تا در حجم بانک و حتی در جستجو به مشکل برنخورید .

موفق باشید

jblaox
پنج شنبه 31 شهریور 1390, 01:37 صبح
دوست عزیز
الان بحث شما یه جوری شده که هم خدا رو می خوای و هم خرمارو ... :لبخند:

هم سرعت بالا ، هم حجم کم و بدون نیاز به نصب و ...
به هر حال امیدوارم اساتید به اینجا سری بزنن و نظر منطقی و با برهان خودشونو بدن .

اما من فارق از بانکت بهت پیشنهاد میدم الگوریتمی پیاده کنی تا دچار حجم زیاد یک جدول نشی . در یک برنامه اتوماسیون دیدم که برای هر ماه یک جدول جدید در لحظه ایجاد می کرد و داده های جدید وارد اون جدول میشد . با چنین الگوریتمی واکشی و جستجو در این حجم داده عظیم بسیار عالی میشه .

در مورد نوع فیلدها هم منطقا بستگی به نوع داده ، اندازش و ... داره . مثلا برای نگهداری تاریخ در صورتی که از نوع خودش استفاده کنید 8 بایت (به همراه ساعت ، دقیقه و ثانیه ) میشه در حالی که با نوع رشته تاریخ رو در حداقل 16 بایت (البته بسته به نوع ذخیره سازی شما ) پس اکیدا توصیه می کنم نوع داده هاتونمن اصلاح کنید تا در حجم بانک و حتی در جستجو به مشکل برنخورید .

موفق باشید

سلام

تشکر به خاطر پاسخ شما .

بله حرف شما منطقی درباره بحث خدا و خرما ! اما شدنی ، نتیجه داد (فعلا که داده) و اگر زیر تست ها سر بلند شد اینجا شرح میدهم ... (به یک نتایجی با Berkeley DB رسیدم ، بسیار جالب است ...)

و پیشنهاد شما هم جالب است ، اما دردسر کد نویسی بیشتر اما مزایای بیشتری هم دارد ، میروم روش کار میکنم