PDA

View Full Version : سوال: راهنمایی در خصوص انتخاب بانک اطلاعاتی یک پروژه از بین اکسس یا SQL



reza1699
چهارشنبه 11 دی 1392, 09:47 صبح
من سفارش یک پروژه دارم که باید حدود 10000 عنوان کتاب توش ثبت بشه.
و همچنین هر کدوم از این کتابها یک فهرست هم داره که اگر به طور میانگین فهرست هر کتاب رو 50 تا در نظر بگیریم ، حدود 500000 رکورد دیگه در یک جدول دیگه نیاز هست.
که در نهایت هم لازمه برای فیلتر کردن یک کتاب و فهرست مربوط بهش ، یک رکورد با 500000 رکورد دیگه اینرجوین بشه ! و همچنین امکان جستجو در 500000 رکورد باید فراهم باشه !

ضمنا اون 10000 رکورد هم یک فیلد از نوع ممو خواهند داشت که خلاصه کتاب در اون وارد میشه و باید امکان جستجو در اون هم فراهم باشه به اشکال مختلف !

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

hmbarnamenevis
چهارشنبه 11 دی 1392, 10:05 صبح
اکسس هم جواب می دهد البته اگر از این تعداد رکورد بیشتر نشود. ولی من برای این پروژه Sql را پیشنهاد می کنیم.

drsina
چهارشنبه 11 دی 1392, 10:37 صبح
اکسس قابلیت 1ترابایت فضا رو داره ولی sql بی نهایت .

مسلما هیچی جای اس کیو ال از لحاظ سرعت و امنیت نمی گیره .

matin.soft
چهارشنبه 11 دی 1392, 10:57 صبح
من با اکسس زیاد کار کردم خطاش بیشتره مثلا هر از چند گاهی یه رکوردو پاک نمی کنه باید بری از تو دیتابیس بگردی می بینی که تو دیتابیس هم وجود نداره باید بری دیتابیس رو دوباره ریپیر کنی بعد برگردی برنامه می بینی درست شده یا یه ایراد دیگه وقتی تعداد تراکنش با جداول زیاد می شه خطای unspecefied error می ده که به سختی قابل حله.پس بهترین پیشنهاد همون اسکیوئله.از لحاظ سرعت هم وقتی حجم دیتابیس به 10 مگابایت می رسه سرعت بصورت قابل ملاحظه ای پایین میاد.

reza1699
چهارشنبه 11 دی 1392, 11:15 صبح
ممنون از نظراتتون !
من با اس کیو ال سرور زیاد کار کردم !
ولی با اس کیو ال اکسپرس تا حالا تجربه ای ندارم !
آیا اگر بخوام از دیتا بیس اس کیو ال استفاده کنم ، حتما باید روی سیستم کاربر کل اس کیو ال سرور نصب بشه؟اگه اینطور باشه که واقعا نشدنی میشه !
در غیر اینصورت اس کیو ال اکسپرس چطور هست و چطور میشه ازش استفاده کرد؟

boysilent
چهارشنبه 11 دی 1392, 11:43 صبح
فقط sqlite

hmbarnamenevis
چهارشنبه 11 دی 1392, 11:43 صبح
برای استفاده از sql سرور باید روی سیستم مقصد جدا sql server را نصب کنی.
ولی اگر از express استفاده کنی (در نسخه 2010 ویژوال استادیو) در موقع ایجاد فایل نصب برنامه تیک sql express را هم می گذاری و در سیستم مقصد قبل از نصب شدن برنامه سرویسش نصب می شود.

reza1699
چهارشنبه 11 دی 1392, 12:23 عصر
طریقه کار با اکسپرس و نحوه کانکت شدن بهش و معرفی بانک اطلاعاتی و ... چجوری هست؟
مثلا در زمان نصب برنامه خودش به طور خودکار بانک اطلاعاتی هم روی اس کیو ال اکسپرسی که نصب میکنه میریزه؟

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

hmbarnamenevis
چهارشنبه 11 دی 1392, 13:36 عصر
نه در سیستم مقصد فقط سرویس sql express نصب می شود. شما باید بانک اطلاعاتی خود را در مسیر نصب برنامه قرار دهید. یا در جای دیگر فقط آدرس و مسیر فایل دیتا بیس مهم است.
شما ابتدا با استفاده از ویزارد یک کانکشن درست می کنید:
از منوی Data و Add new data source
سپس در قسمت New Connection قسمت Source را بر روی Sql server database file قرار می دهید. بعد از اتصال به فایل دیتابیس خود (که می توانید با خود ویژوال یا با sql server درستش کنید) در قسمت Connection String را کپی کرده و پنجره را Cancel کنید و در برنامه خود از این Connection String استفاده کنید. مثل کد زیر:
string MyConnection = @"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\DataBase\DBFactor.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

|DataDirectory| مسیر جاری نرم افزار است.

Abbas Naghdi
چهارشنبه 11 دی 1392, 14:46 عصر
برای استفاده از SqlExpress باید دیتابیس خودتونو در VS ایجاد کنید و نوع Sql File رو انتخاب کنید ... اینطوری روی سیستم مقصد فقط کافی هیست دیتابیس کنار فایل اجرایی باشه و SQl Express هم نصب شده باشه ... برنامه خودش شناسایی و Attach میکنه و بعد از استفاده هم DeAttach و ...

در غیر این صورت یعنی دیتابیس از نوع SQL File نباشه ... (باید خودتون تنظیمات رو انجام بدین و به Express تبدیلش کنید ... و از این Connection String استفاده کنید ...

کانکشن :

connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\ِDatabaseName.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

reza1699
پنج شنبه 12 دی 1392, 01:13 صبح
از راهنمایی های سازنده دوستان بسیار متشکرم
مشکلم با راهنمایی های شما حل شد !
فقط یک سوال !
در زمان ساختن فایل نصبی از طریق ویژوال 2010 ، باید من تیک اکسپرس 2005 رو بزنم یا 2008 R2?
چون من 2008 رو زدم و روی یک سیستم دیگه نصب کردم متأسفانه ارور بانک اطلاعاتی میداد...و نمیتونست اتچ کنه !
البته ناگفته نماند سرویس های اس کیو ال اکسپرس ران نشده بودن و نمیدونم چرا همشون در حالت استاپ بودن و هر کار کردم هم ران نشدن !

reza1699
پنج شنبه 12 دی 1392, 10:58 صبح
آقا یه مسئله دیگه !
حالا من میخوام یه بانک اطلاعاتی که قبلا در اس کیو ال سرور بوده بیارم توی اکسپرس !
چیکار باید بکنم؟

hmbarnamenevis
پنج شنبه 12 دی 1392, 12:04 عصر
کاری نباید انجام بدی. فقط باید به فایل دیتابیس با کانکشن استرینگ express وصل شوی (یعنی نوع اتصال database file هست)

reza1699
پنج شنبه 12 دی 1392, 17:38 عصر
کاری نباید انجام بدی. فقط باید به فایل دیتابیس با کانکشن استرینگ express وصل شوی (یعنی نوع اتصال database file هست)

بقیه دستورات مثل بک آپ گیری و ... همه مثل اس کیو ال سرور هستن دیگه؟آررره؟

reza1699
پنج شنبه 12 دی 1392, 17:43 عصر
کاری نباید انجام بدی. فقط باید به فایل دیتابیس با کانکشن استرینگ express وصل شوی (یعنی نوع اتصال database file هست)

من در زمان اتچ کردن یک دیتابیس که در اس کیو ال سرور 2008 آر 2 بوده ، در اس کیو ال اکسپرس ویژوال 2010 همچین اروری میگیرم :

The database 'C:\USERS\REZA\DESKTOP\APP\WINDOWSFORMSAPPLICATION 1\WINDOWSFORMSAPPLICATION1\BIN\DEBUG\S1391.MDF' cannot be opened because it is version 661. This server supports version 612 and earlier. A downgrade path is not supported.
Could not open new database 'C:\USERS\REZA\DESKTOP\APP\WINDOWSFORMSAPPLICATION 1\WINDOWSFORMSAPPLICATION1\BIN\DEBUG\S1391.MDF'. CREATE DATABASE is aborted.
An attempt to attach an auto-named database for file C:\Users\Reza\Desktop\App\WindowsFormsApplication1 \WindowsFormsApplication1\bin\Debug\s1391.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.

ظاهرا عدم تطابق ورژن هاست !
چیکار باید بکنم؟

hmbarnamenevis
پنج شنبه 12 دی 1392, 18:26 عصر
فکر نکنم دیتابیس ساخته شده در sql server 2008 در ویژوال استادیو 2010 باز نکنه.
شما کانکشن استرینگ و سرویس sql express رو چک کنید.
برای مدیریت بهتر خطا از ویزاردهای اتصال به پایگاه داده در Visual Studio استفاده کنید.

reza1699
پنج شنبه 12 دی 1392, 18:40 عصر
فکر نکنم دیتابیس ساخته شده در sql server 2008 در ویژوال استادیو 2010 باز نکنه.
شما کانکشن استرینگ و سرویس sql express رو چک کنید.
برای مدیریت بهتر خطا از ویزاردهای اتصال به پایگاه داده در Visual Studio استفاده کنید.

والا دقیقا با همین کانکشن استرینگ یک نوع دیتابیس دیگه رو که با خودش ساختم باز میکنم ! و کانکت میشه بدون مشکل !

reza1699
پنج شنبه 12 دی 1392, 18:57 عصر
فکر نکنم دیتابیس ساخته شده در sql server 2008 در ویژوال استادیو 2010 باز نکنه.
شما کانکشن استرینگ و سرویس sql express رو چک کنید.
برای مدیریت بهتر خطا از ویزاردهای اتصال به پایگاه داده در Visual Studio استفاده کنید.

آقا من متوجه شدم به صورت پیشفرض این ویژوال 2010 از اس کیو ال اکسپرس 2005 استفاده میکنه !
چطور باید کاری کنم که از 2008 آر 2 استفاده کنه؟

Mousavmousab
پنج شنبه 12 دی 1392, 22:35 عصر
سلام
من توضیه می کنم از Wizard استفاده نکن. آخه باید بدونی دقیقاٌ چه اتفاقی داره می افته
و پیشنهاد می کنم از SQL R2 استفاده کن که همه دستورات را اجرا کنه.
یه مشکل میمونه : بعد از اینکه برنامه را نوشتی و توی سیستم هدف می خوای ران کنی باید یک نسخه SQL Express R2 را روی سیستم مشتری نصب کنی
خوب نصب میشه و کار می کنه. مشکل اینجاست که SQL Express R2 دستورات مربوط به Bakck Up و Restore را اجرا نمی کنه و با خطا مواجه میشه
اینجا را باید چیکار کنیم ؟
ممنون میشم دوستان کمک کنن.
اون دستوری که نوشتم توی SQL Server R2 اجرا میشه و مشکلی نداره فقط توی سیستم هدف با SQL Express مشکل داره

mamadcity
پنج شنبه 12 دی 1392, 23:57 عصر
اگه سرعت لود و بازیابی اطلاعات واست مهمه و اینک در حجم بالا مشکلی پیش نیاد بهتره از اوراکل استفاده کنی

reza1699
پنج شنبه 12 دی 1392, 23:59 عصر
سلام
من توضیه می کنم از Wizard استفاده نکن. آخه باید بدونی دقیقاٌ چه اتفاقی داره می افته
و پیشنهاد می کنم از SQL R2 استفاده کن که همه دستورات را اجرا کنه.
یه مشکل میمونه : بعد از اینکه برنامه را نوشتی و توی سیستم هدف می خوای ران کنی باید یک نسخه SQL Express R2 را روی سیستم مشتری نصب کنی
خوب نصب میشه و کار می کنه. مشکل اینجاست که SQL Express R2 دستورات مربوط به Bakck Up و Restore را اجرا نمی کنه و با خطا مواجه میشه
اینجا را باید چیکار کنیم ؟
ممنون میشم دوستان کمک کنن.
اون دستوری که نوشتم توی SQL Server R2 اجرا میشه و مشکلی نداره فقط توی سیستم هدف با SQL Express مشکل داره

ببینید ، زیاد برای من بک آپ گیری اهمیتی نداره ! البته این یک مشکل هست ! ولی این پروژه من صرفا یک پروژه اطلاع رسانی هست که کاربر توانایی ویرایش نخواهد داشت !
حالا مشکل من اینجاس که با وجود اینکه من 2008 R2 رو به طور کامل نسخه انترپرایس رو نصب کردم ، ولی ویژوال استادیو 2010 از اس کیو ال اکسپرس 2005 استفاده میکنه و اصلا توی منوهاش چیزی در مورد 2008 نداره !
آیا امکان داره سرور 2008 آر 2 کامل نصب باشه (موقع نصب تمام مواردش رو تیک زدم) بعد اکسپرسش نصب نباشه یا سرویس نده؟
من در حال حاضر توی بخش سرویس های 2008 می بینیم اکسپرس رو ، ولی توی یه قسمتیش همونجا دیدم که یه چیزایی نوشته بود که این ورژن 612 هست ! و آر 2 ورژن 661 !
حالا نمیدونم چرا دیگه توی اون بخش من می بینمش !!!!!! میشه مال همون 2005 باشه و من در تنظیمات 2008 بازم تکرارش رو دارم می بینم؟
والا گیج شدم... !
اینم یک تصویر از تنظیمات و اون متن کذایی !
http://upload7.ir/images/74006885195345194403.jpg

آقا تروخدا یکی منو راهنمایی کنه !
دیگه واقعا دارم کلافه میشم
من اس کیو ال سرور 2008 آر 2 رو به طور کامل نصب دارم.اس کیو ال اکسپرس 2005 هم نصبه.
ویژوال 2008 و 2010 هم نصب هستن.
ویژوال 2010 اصلا اکسپرس 2008 آر2 رو تشخیص نمیده که بخواد کار باهاش بکنه و فقط با 2005 کار میکنه !
از طرفی زمانی که میخوام فایل ستاپ بسازم وقتی تیک 2005 رو میزارم ، میگه وجود نداره و نمیتونه فایل ستاپش رو بسازه.
ولی با 2008 خالی (نه آر 2) میتونه ستاپ رو بسازه !
بعد وقتی میبرمش رو سیستم میزبان و نصب میشه این اکسپرس 2008 ، جواب نمیده !
من واقعا الان نمیدونم باید چیکار کنم.
از طرفی من میخوام اصلا با اکسپرس 2008 آر 2 کار کنم ! از طرفی هم همون 2005 هم بهم خروجی توی ستاپ نمیده !

reza1699
جمعه 13 دی 1392, 16:33 عصر
آقا تروخدا یکی جواب بده !

کامبیز اسدزاده
جمعه 13 دی 1392, 17:27 عصر
موتور دیتابیس فقط MySQL :) دنگو فنگ و بدبختیای Sql Server و Access رو هم نداره و در سیستم های Unix هم به خوبی جواب میدهد.

reza1699
شنبه 14 دی 1392, 09:40 صبح
آقا اینو من درست کردم !
حالا چطور میتونم یک پکیج از اس کیو ال اکسپرس 2008 R2 بگیرم و بریزم تووی ویژوال 2010 تا فایل ستاپ رو براش بسازه !
میدونم باید از بوت استراپر استفاده کنم !
ولی آیا این پکیج به طور آماده حاضر نیست استفاده کنیم ازش؟
چون ظاهرا خیلی دنگ و فنگ داره بوت استراپر !