واضح آرشیو وب فارسی:سایت ریسک: taftan200910-09-2009, 12:25 AMبا عرض سلام, انجمن بسیار وزینی و پرباری هست اما برای من که تازه شروع به کار کردم سوالاتی هست که شاید خیلی ابتدایی بنظر برسن اما متاسفانه تو کتابها به جوابشون نرسیدم .... اگه دوستان لطف کنن مارو شیر فهم کنن ممنون میشم. در سطح مقدماتی با VB.net و بانک های اکسس کار کردم و حالا می خوام SQL سرور رو شروع کنم منتها چند سوال آغازین دارم که ............. این واژه "سرور به همراه SQL" چی هست؟ برای ساخت یه بانک SQL و استفاده از اون در برنامه مون باید کدوم نسخه SQL رو نصب کنیم. فقط برای وارد کردن اطلاعات توسط کاربر و نمایش اطلاعات در فرم ها و گزارش گیری از اونها کاربری که از نرم افزار دارای بانک اطلاعاتی SQL استفاده می کنه آیا باید همین نسخه کامل SQL رو رو سیستمش نصب کنه یا فقط فریمورکی .... چیزی باید نصب کنه نه نسخه کامل SQL رو فعلا همین ها رو اگه جواب بدبد ممنون میشم _H2_10-09-2009, 01:58 AMسلام این واژه "سرور به همراه SQL" چی هست؟ SQL زبان استاندارد کار با بانکهای اطلاعاتی است که در خود Access و موتور JET و سایر بانک های اطلاعاتی موجود وجود دارد. ولی Microsoft SQL Server نام تجاری یک محصول است. البته کلمات این نام مفهوم صحیح انگلیسی هم دارند. SQL Server با Access که کار کردید اصلاً قابل قیاس نیست. Access در واقع هیچ امکاناتی ندارد ولی SQL Server انواع قابلیت ها و سرویس ها را دارد. از بزرگترین مزیتهای SQL Server که در نامش متجلی است، قابلیت کارکرد شبکه ای و سروری است. یعنی من میتوانم در رایانه ای در کاندا SQL Server نصب و پیکر بندی کنم و آن را به اینترنت وصل خودم. و خودم از رایانه در ایران (حتی بدون نصب SQL Server) به سرور کانادا متصل شوم و نکته جالب این است که دستورات برناموه نویسی ام در مقابل شرایط کارکرد عادی بانک در رایانه خودم فرقی نمیکند!!! یعنی اگر بانک در رایانه خودم باشد در ConnectionString از یک نقطه یا کلمه (local) استفاده میکنم و اگر سرور در کانادا باشد، کافی است ip سرور را به جای نقطه قرار دهم و یک خط کدنویسی تغییر نمیکند. ضمن اینکه SQL Server میتواند مدیریت چند سروری هم داشته باشد. اصولاً چون بانک های تجاری SQL Server میتوانند حجم های نجومی هزاران و حتی چند صد هزار ترابایتی داشته باشد(!)، منطقی نیست که فقط روی یک رایانه قرار گیرد و ... در کل داشتن این امکانات میتواند دلیل اضافه شدن واژه Server به نام تجاری برنامه فوق از طرف شرکت مایکروسافت باشد. بحرحال نام این محصول SQL Server است و این نامش است، مثل Photoshop و حتماً لازم نیست دلیلی داشته باشد! ===== برای ساخت یه بانک SQL و استفاده از اون در برنامه مون باید کدوم نسخه SQL رو نصب کنیم آیا باید همین نسخه کامل SQL رو رو سیستمش نصب کنه ... بحث سر وجود نسخه ورژنی و نگارشی مختلف است. از نظر ورژن استفاده کننده نباید از ورژن پایین تری استفاده کند. یعنی اگر شما بانک را با SQLServer2005 طراحی کرده اید در رایانه مشتری باید SQLServer2005 یا SQLServer2008 نصب شود و نمیتوان SQLServer2000 نصب کرد. از نظر نگارشی مشکل خاصی وجود ندارد، مگر آنکه از امکانات خاصی استفاده کرده باشید. مثلاً SQL Server Express کاملاً رایگان است در عوض محدودیت هایی دارد و مثلاً نمیتواند بانکش از 2G یا 4G بزرگتر شود. برخی از سرویس های خیلی خاص هم در آن در دسترس نیست. ولی برای عموم برنامه های عادی برنامه نویسان معمولاً همان نگارش Express خوب است. به هرحال کاربر و مشتری میتواند هر نگارشی را مشروط به شمول امکانات استفاده شده نصب کند. البته اگر برنامه شما شبکه ای باشد و مثلاً رایانه سرور در طبقه و اتاق خاصی از ساختمان شرکت باشد و بقیه رایانه های آن شرکت در شبکه محلی همان ساختمان از بانک اطلاعاتی سرور بخواهند استفاده کنند در حالت عادی و معمول کلاینتها نیازی به نصب SQLServer ندارند. ===== نسخه SQLServer Express را میتوان به سادگی و بدون نمایش دیالوگ خاصی و با زمان کم همراه برنامه و Framework و... نصب کرد. و امکانات همین نسخه رایگان به ذات خیلی فراتر از Access و موتور JET و فایلهای mdb است ، ضمن اینکه این نسخه رایگان توانایی اتصال با دادن مسیر فایل را هم دارد که برای کربران قدیمی access روشی آشنا است. با وجود نسخه رایگان SQLServer Express و داشتن امکانات بیشتر دلیل خاصی برای استفاده از Access نمیبینم. ===== موفق باشید. taftan200910-09-2009, 02:32 AMمنون از پاسخ شما, جامع و خلاصه بود ............... اما من سوال سومم رو درست متوجه نشدم یا شاید من درست مطرح نکردم منظور من اینه که : برنامه می نویسم که از بانک اطلاعاتی SQL استفاده می کنه . کاربر نهایی که می خواد این برنامه رو رو سیستمش اجرا کنه حتما باید SQL رو سیستمش نصب باشه یا نه (من قبلا یه همچین برنامه ای داشتم که دانلودش کرده بودم خودش هم گفته بود که از بانک SQL استفاده کرده منتها حجم کل برنامه 30 مگابایت بیشتر نبود یعنی SQL رو سیستم من نصب نبود و عالی کار می کرد). _H2_10-09-2009, 03:40 AMسلام حتما باید SQL رو سیستمش نصب باشه یا نه مجدد تاکید میکنم که SQL برابر نیست با SQLServer و این دو با هم فرق دارند. برای یک برنامه عادی SQLServer باید در رایانه نصب شود. (ولی برای برنامه شبکه ای نصب SQLServer در رایانه سرور کافی است.) ===== یعنی اگر شما بانک را با SQLServer2005 طراحی کرده اید در رایانه مشتری باید SQLServer2005 یا SQLServer2008 نصب شود ... البته اگر برنامه شما شبکه ای باشد ... در حالت عادی و معمول کلاینتها نیازی به نصب SQLServer ندارند. taftan200910-09-2009, 06:25 PMبا تشکر از شما : خوب نصب کامل SQL server بر روی کامپیوتر کاربر نهایی به نظر شخصی من دو عیب اساسی داره 1 - کاربر رو مجبور می کنیم که چند صد مگابایت اضفی رو بر روی سیستم خودش نصب کنه, البته اگه سیستم فضای کافی داشته باشه که مشکلی نیست, در غیر اینصورت فحشی هم نصیب خودمون میشه 2 - مشکل دوم هم اینجاست که ما اگه از نسخه 2005 نرم افزار SQL server استفاده کرده باشیم ............ بنابه گفته شما ................... کاربر هم باید نسخه 2005 نرم افزار SQL server رو روی سیستم خود نصب کنه. یعنی سیستم کاربر نهایی باید در سطحی باشد که از نظر سخت افزاری SQL server 2005 رو ساپورت کنه. یعنی عملا ما تعداد زیادی از مشتریان خود را کنار می گذاریم ( البته در ایران خودمون حداقل واسه نرم افزار هزینه ای پرداخت نمی شه). ادامه سوالات فرضا اگر از SQL server 2005 استفاده کرده باشیم, کاربر باید حتما همین نسخه را بر روی سیستم خود نصب کند یا نه می تواند از نسخه پایین تر مثلا 2000 می تواند استفاده کند. این قضیه attach کردن بانک به برنامه یا شاید سرور چی هست ..... من درست متوجه این موضوع نشده ام _H2_12-09-2009, 12:41 AMسلام 1) الف) شما نصب فوق را در برنامه خودتان قرار میدهد و الآن خیلی عادی است که برنامه ها را در DVD عرضه میکنند در حالی که مباحث ما در CD میگنجد! آیا Photoshop و Nero و 3DMax و Word و... یک یا دو مگابایتی هستند؟ ب) میتوانید از SQL Server 2005 Express الستفاده کنید که برای بیشتر موارد به خوبی جواب میدهد و کمتر از 40M است. 2) اصولاً برنامه های دات نتی با سیستم های زیر XP مشکل دارند. و اگر رایانه شما XP و Vista و Win7 و Server و... داشته باشد یعنی عموماً حداقل سخت افزار لازم برای کار عمومی تحت دات نت و ابزارآلات آن را هم دارد. فرضا اگر از SQL server 2005 استفاده کرده باشیم, کاربر باید حتما همین نسخه را بر روی سیستم خود نصب کند یا نه می تواند از نسخه پایین تر مثلا 2000 می تواند استفاده کند. الف) در حالت عادی این امکان وجود ندارد ولی به شرط عدم استفاده از امکانات جدید 2005 و 2008 میتوان کارهایی کرد تا برنامه با نسخه کمتر هم کار کند ولی دردسر دارد! ولی در کل و در حال حاضر به هیچ وجه نسخه SQLServer زیر 2005 را پیشنهاد نمیکنم و توجیح منطقی ای ندارد. ب) من نمیدانم چرا به این مطلب ناچیز گیر داده اید!!! اصولاً Setup برنامه شما موظف است چیزهایی که برنامه نیاز دارد را نصب کند. برای برنامه های غیر شبکه ای و غیر بزرگ، اصولاً این منطقی نیست که برنامه شما به کاربر بگوید، تو باید SQLServer را هم نصب کنی!! مسئله خیلی ساده است! برنامه شما Setup میشود و هر چیزی که لازم دارد را خودش نصب میکند! کاربر هم لزومی ندارد اصلاً نام SQLServer را بشنود یا بداند SQLServer جزء موارد غذایی است یا جزء پوشاک ! این قضیه attach کردن بانک به برنامه یا شاید سرور چی هست ..... من درست متوجه این موضوع نشده ام همانطور که گفتم بانکهای اطلاعاتی SQLServer میتوانند در مکان های دیگر و دور باشند و حتی در بین چند رایانه پخش شوند، نتیجتاً دیگر منطقی نیست که با دادن مسیر فایل به آن وصل شوید و مثلاً بنویسید C:file.mdf ! attach فقط و فقط یکبار انجام میشود و بانک شما را با مسیر فایلهایش تحویل SQLServer میدهد و یک نام منحصر به فرد برای بانک تخصیص میدهد... نتیجتاً دیگر در زمان اتصال دادن مسیر فایل لازم نیست و باید نام دیتابیس مربوطه را فقط داد. این عمل attach است. ولی نسخه های Express برای سادگی کار با بانکهای کوچک امکان دسترسی به بانک با دادن مسیر را هم میدهند (مثل همان نحوه دسترسی به بانکهای Access) ولی این امکان به ظاهر بدون attach فقط مختص نسخه های Express است. taftan200912-09-2009, 01:11 AMممنون دوست عزیز, خدا آخر و عاقبت همه ماها رو به خیر کنه (آمین) سوئ تفاهمم نسبت به سوال قبلی حل شد, sari-136912-09-2009, 01:18 AMمیشه یه توضیح کوچیک در مورد function ها در sqlserver بدید ؟ اصلا ابنا چی هستن ، چه کار انجام میدن . کاربردشون کجاست ؟ _H2_14-09-2009, 03:10 AMسلام خیلی شبیه SP هستند ولی ... SP ها بیشتر SQL های همه کاره ذخیره شده هستند که هر کاری میکتوانند انجام دهند و البته در متن سایر دستورات SELECT و UTE و ... قابل استفاده نیستند. در عوض Function ها توابعی با ورودی و خروجی مشخص محاسباتی هستند (مثل یک محاسبه ریاضی یا استعلام مقداری خاص از جداول) که هر دستوری در آنها مجاز نیست و مثلاٌ نمیتوانند محتویات دیتابیس را تغییر دهند ولی درعوض در متن سایر دستورات SELECT و UTE و ... قابل استفاده هستند. best_food 3205-04-2011, 12:35 PMمیشه برام توضیح بدی قابلیت execution plan چی هست؟موارد استفاده اش چیه و اصلا کلا به چه درد میخوره و چیکار میشه باهاش کرد؟:37: _H2_15-04-2011, 08:29 PMسلام میشه برام توضیح بدی قابلیت execution plan چی هست؟ من دقیق و مطمئن متوجه نشدم منظورتان چیست. ولی SQL Server یک نرم افزار کمکی مدیریتی به نام SQL Server Management Studio دارد که در آن برنامه امکانی تحت این نام دارد (که اگر منظور شما همان باشد) مربوط به بررسی و تحلیل روند و اجرای یک دستور SQL میشود و منابع و عملیات های مختلفی که برای پردازش یک دستور SQL لازم است را تحلیل و نماش میدهد و میتوان دستورات SQL را تحلیل کرد و حتی نسبت به زمان اجرا و مصرف منابع و... با هم مقایسه کرد تا ضمن درک کارکرد داخلی که به نحوه نوشتن دستورات قدرتمند کمک میکند، بهترین دستور با بالادرین بازدهی را نوشت. (با تاکیده اینکه اگر منظورتان ابزار فوق الذکر است) باید عرض کنم این ابزار بسیار مفید و پرکاربرد است. مخصوصاً که زبان T-SQL سینتکس قوی و منعطفی دارد و گاهاً میتوان یک عملیات را (مثل یک زبان برنامه نویسی واقعی) به اشکال مختلف انجام داد و این ابزار میتواند در درک و تشخیص بهترین کد کمک موثری کند. سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 560]