PDA

View Full Version : حرفه ای: چند سوال اساسی در مورد SQL



Omid.R.A.Candy
یک شنبه 24 شهریور 1392, 07:06 صبح
سلام

من تو sql خیلی تازه کارم، و چندتا سوال برام پیش امده:

1-اگه بخواهیم از پایگاه داده sql تو پروژه هامون استفاده کنیم و همچنین بخوایم این برنامه ما در سیستم مشتری به درستی و بدون ایراد کار کنه از کدوم ورژن sql استفاده کنیم؟ منظورم اینه که برای ایجاد پایگاه داده از VS استفاده کنیم یا SQL2005 یا SQL2008 یا SQL2012 ؟


2-من تو اکسس پایگاه داده درست می کنم و می تونم برا اون فایلم پسورد بگذارم. این کار تو SQL به چه صورتی انجام میشه؟ اگه بتونید روش تولید همچین پایگاه داده ای رو با استفاده از VS بگین ممنون می شم، چون هیچ نوع نرم افزار SQL رو سیستمم نصب نیست.

zahedi121
یک شنبه 24 شهریور 1392, 08:45 صبح
سلام
این تاپیک (http://barnamenevis.org/showthread.php?333713-برنامه-نویسی-پایگاه-داده-به-صورت-گام-به-گام&highlight=%D9%BE%D8%A7%DB%8C%DA%AF%D8%A7%D9%87+%D8 %AF%D8%A7%D8%AF%D9%87) را مطالعه کنید .
موفق باشید

r. salehi
یک شنبه 24 شهریور 1392, 15:42 عصر
سلام
دوست عزیز من هم مثل شما کار بانک اطلاعاتی را از اکسس شروع کردم. در این خصوص باید بگم با ورود به SQL وارد دنیای کاملا جدیدی خواهید شد.
بر خلاف اکسس که مشکلات امنیتی داره شما قادرید با VS هر سطح امنیتی را که مایلید ایجاد کنید. علاوه بر این در VS برخلاف اکسس که شما همواره به پایگاه داده خودتون مستقیما متصل هستید، اکثر شما به صورت آفلاین با داده ها کار می کنید. یعنی فقط زمانی که به داده ها نیاز دارید که اونها را بخونید یا تغییر بدید یا اضافه کنید به منبع اطلاعتی خودتون متصل میشید. در خصوص امنیت هم باید یک نکته را عرض کنم که در این حالت شما امنیت را نه در SQL بلکه بیشتر در سطح برنامه نویسی فرمها میتونید ایجاد کنید. مثلا فلان دکمه برای فلان کاربر غیر فعال نشون داده میشه و امثالهم. و ....
در خصوص ورژن SQL هم باید عرض کنم آنچنان فرقی نداره که شما از کدام ویرایش SQL استفاده کنید. هر کدوم از ویرایشها توانمندی هایی بسیار بیشتر از نیازهای ما دارند. اما اگر بخواهید از یک سری ویژگیهای جدید مثل File Stream استفاده کنید لازمه ویرایشهای بالای 2008 را استفاده کنید. این قابلیت امکان ذخیره انواع فایلها را با امنیت کامل به شما خواهد داد بدون اینکه بخواهید خود فایل را مستقیما در بانک ذخیره کنید.
نکته دیگه اینکه برای اتصال به پایگاه داده و برنامه نویسی برای اون تحت ADO.Net روشهای زیادی وجود دارده که قدیمی ترینشون همون کد نویسیهای ConnectionString و ... است. پیشنهاد می کنم LINQ را هم یاد بگیرید.
.
.
.
در آخر هم کتاب ویژال بیسیک 2010 نوشته مهندس محسن مدحج انتشارات مهرگان قلم را بهتون توصیه می کنم که به نظرم بهترین کتاب ویژال بیسیک موجود در بازاره و تمام سوالات شما را پاسخ خواهد داد.
ببخشید که نکاتی را بسیار درهم و دسته بندی نشده ذکر کردم
امیدوارم تونسته باشم کمکی بکنم
موفق باشید

Omid.R.A.Candy
یک شنبه 24 شهریور 1392, 16:11 عصر
سلام
دوست عزیز من هم مثل شما کار بانک اطلاعاتی را از اکسس شروع کردم. در این خصوص باید بگم با ورود به SQL وارد دنیای کاملا جدیدی خواهید شد.
بر خلاف اکسس که مشکلات امنیتی داره شما قادرید با VS هر سطح امنیتی را که مایلید ایجاد کنید. علاوه بر این در VS برخلاف اکسس که شما همواره به پایگاه داده خودتون مستقیما متصل هستید، اکثر شما به صورت آفلاین با داده ها کار می کنید. یعنی فقط زمانی که به داده ها نیاز دارید که اونها را بخونید یا تغییر بدید یا اضافه کنید به منبع اطلاعتی خودتون متصل میشید. در خصوص امنیت هم باید یک نکته را عرض کنم که در این حالت شما امنیت را نه در SQL بلکه بیشتر در سطح برنامه نویسی فرمها میتونید ایجاد کنید. مثلا فلان دکمه برای فلان کاربر غیر فعال نشون داده میشه و امثالهم. و ....
در خصوص ورژن SQL هم باید عرض کنم آنچنان فرقی نداره که شما از کدام ویرایش SQL استفاده کنید. هر کدوم از ویرایشها توانمندی هایی بسیار بیشتر از نیازهای ما دارند. اما اگر بخواهید از یک سری ویژگیهای جدید مثل File Stream استفاده کنید لازمه ویرایشهای بالای 2008 را استفاده کنید. این قابلیت امکان ذخیره انواع فایلها را با امنیت کامل به شما خواهد داد بدون اینکه بخواهید خود فایل را مستقیما در بانک ذخیره کنید.
نکته دیگه اینکه برای اتصال به پایگاه داده و برنامه نویسی برای اون تحت ADO.Net روشهای زیادی وجود دارده که قدیمی ترینشون همون کد نویسیهای ConnectionString و ... است. پیشنهاد می کنم LINQ را هم یاد بگیرید.
.
.
.
در آخر هم کتاب ویژال بیسیک 2010 نوشته مهندس محسن مدحج انتشارات مهرگان قلم را بهتون توصیه می کنم که به نظرم بهترین کتاب ویژال بیسیک موجود در بازاره و تمام سوالات شما را پاسخ خواهد داد.
ببخشید که نکاتی را بسیار درهم و دسته بندی نشده ذکر کردم
امیدوارم تونسته باشم کمکی بکنم
موفق باشید


دوست عزیز اشاره کرده بودین که:



این قابلیت امکان ذخیره انواع فایلها را با امنیت کامل به شما خواهد داد بدون اینکه بخواهید خود فایل را مستقیما در بانک ذخیره کنید.


نمونه کد یا نمونه برنام ای در اختیار دارین که این کارو بکنه؟ من می خوام داده های از نوع صدا رو در دیتا بیس ذخیره و بازخوانیش کنم.در مورد این کدام ورژن sql مفیده و کلا چکار کنم؟

r. salehi
یک شنبه 24 شهریور 1392, 18:57 عصر
سلام مجدد
در لینک زیر و در پاسخ به دوستی که به دنبال روشی برای آرشیو نامه ها در یک نرم افزار اتوماسیون اداری بودند یک نمونه کد که خودم ازش استفاده می کنم، گذاشتم.
شما با همین روش قادر خواهید بود هر نمونه فایلی را با هر اندازه ای در SQL ذخیره کنید و از امنیت کامل هم برخوردار خواهد بود. علاوه بر این در روش فایل استریم خود فایل در SQL ذخیره نمیشه که حجم پایگاه داده را به صورت انفجاری بزرگ کنه و سرعتش را کم کنه.
فایل استریم از SQL2008 به بعد قابل دسترسیه. در ویرایش های بعدی یک قابلیت جدید هم اضافه شده و اون اینطوره که در فولدری که برای ذخیره فایلها ایجاد میشه، اگر شما یک فایل را کپی پیست کنید. اون فایل به صورت خودبه خود در جدوال SQL به عنوان یک رکورد جدید ثبت میشه.
http://barnamenevis.org/showthread.php?416917-%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C-%D8%A8%D9%87-%D9%81%D8%A7%DB%8C%D9%84%D9%87%D8%A7%DB%8C-%DB%8C%DA%A9-%D9%BE%D9%88%D8%B4%D9%87-%D8%B4%DB%8C%D8%B1-%D9%86%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%B4%D8%A8%DA%A9%D9%87&p=1866506#post1866506

موفق باشید

Omid.R.A.Candy
یک شنبه 24 شهریور 1392, 19:11 عصر
سلام مجدد
در لینک زیر و در پاسخ به دوستی که به دنبال روشی برای آرشیو نامه ها در یک نرم افزار اتوماسیون اداری بودند یک نمونه کد که خودم ازش استفاده می کنم، گذاشتم.
شما با همین روش قادر خواهید بود هر نمونه فایلی را با هر اندازه ای در SQL ذخیره کنید و از امنیت کامل هم برخوردار خواهد بود. علاوه بر این در روش فایل استریم خود فایل در SQL ذخیره نمیشه که حجم پایگاه داده را به صورت انفجاری بزرگ کنه و سرعتش را کم کنه.
فایل استریم از SQL2008 به بعد قابل دسترسیه. در ویرایش های بعدی یک قابلیت جدید هم اضافه شده و اون اینطوره که در فولدری که برای ذخیره فایلها ایجاد میشه، اگر شما یک فایل را کپی پیست کنید. اون فایل به صورت خودبه خود در جدوال SQL به عنوان یک رکورد جدید ثبت میشه.
http://barnamenevis.org/showthread.php?416917-%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C-%D8%A8%D9%87-%D9%81%D8%A7%DB%8C%D9%84%D9%87%D8%A7%DB%8C-%DB%8C%DA%A9-%D9%BE%D9%88%D8%B4%D9%87-%D8%B4%DB%8C%D8%B1-%D9%86%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%B4%D8%A8%DA%A9%D9%87&p=1866506#post1866506

موفق باشید


اون چیزی که من از لابه لای حرفهای شما فهمیدم اینه که خود فایل در دیتا بیس ذخیره نمی شه، که این به درد من نمیخوره.من می خوام خود فایل ذخیره بشه.

Omid.R.A.Candy
یک شنبه 24 شهریور 1392, 19:23 عصر
یکی از دوستان یا اساتید لطفا این چهار مقوله رو برام روشن کنید:

1 - تفاوت اس کیو ال سرور با اس کیو ال اکسپرس چیست؟

2- تفاوت فایل mdf ای که با VS تولید میشه با فایلی که توسط SQLServer2005 یا SQLServer2008 در چیست؟

3-آیا فایلی که در SQLServer2008 تولید بشه در SQLServer2005 نمیشه مورد استفاده قرار داد؟

4 - من یه دیتا بیس اس کیو ال با VS ساختم ، حالا چطوری برای اون فایلم رمز بگذارم؟ و یا یوزر پسورد بگذارم؟

5- من خودم یه فایل دیتا بیس با VS ساختم و با کانکشن استرینگ و با کد نویسی تو برنامم لود می کنم، اما وقتی خواستم یه فایل دیتا بیس دیگه که ساخته خودم نبود و از همین سایت دانلود کرده بودم تو دیتا گرید ویوم لودش کنم با خطای زیر مواجه شدم!! می دونم که مربوط به ورژن فایله حالا باید چه کرد؟ تا این فایلم لود کنم؟ آیا باید از کانکشن دیگه ای استفاده کنم؟

کانکشن من:


Dim W_sql As String
W_sql = "Data Source=.\SQLEXPRESS;AttachDbFilename=" & Application.StartupPath & "\ATOM.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
Dim con_sql As New SqlConnection(W_sql)

خطا:

110717

Mani_rf
یک شنبه 24 شهریور 1392, 20:42 عصر
اگه 1کم جستجو کنی همه این سوال ها بارها و بارها پاسخ داده شده اند.

r. salehi
یک شنبه 24 شهریور 1392, 21:19 عصر
سلام مجدد
ببینید دوست عزیز شما امکان این را هم دارید که خود فایل را در بانک ذخیره کنید. اما این کار معایبش بیشتر از محاسنشه. ضمنا برای شما که قصد دارید فایلهای صوتی را در بانک ذخیره و بازیابی کنید، باتوجه به حجم نسبتا بالای اینگونه فایلها، مشکلات دو چندان میشه. حجم بانک بسیار زیاد میشه و بالتبع سرعت هم کاهش پیدا میکنه. در روش فایل استریم SQL یک فولدر با امکان دسترسی ادمین پایگاه داده ایجاد می کنه به انضام یک جدول. وقتی شما فایلی را به پایگاه داده اضافه می کنید در اون جدول به جای اسم فایل به عنوان شاخص و آدرس فایل، یک کد یونیک GUID ایجاد میشه و اسم فایل با اون کد GUID در فولدر مخصوص پایگاه داده جایگزین میشه. در واقع با این تدابیر کسی قادر به دسترسی غیر مجاز به فایلها نخواهد بود مگر اینکه شما این اجازه را بهش بدین.
امکانات امنیتی که این روش برای شما ایجاد میکنه دقیقا با امکانات امنیتی و سطح دسترسی به داده ها و جدوال معمولی کاملا مشابه هست.
اما در مورد سوالاتتون


اس کیو ال اکسپرس یک نسخه محدود و Free از اس کیو ال با حداقل امکاناته
شما وقتی یک DataBase جدید در SQL ایجاد می کنید یک فایل با پسوند MDF در فولدری که اس کیو ال داده ها را ذخیره می کنه ایجاد میشه. این فایل در واقع کل Database شما را در بر داره و شما به راحتی قادر خواهید بود این فایل را (البته با تدابیری) به جای دیگه یا کامپیوتری دیگه روی یک SQL انتقال بدید و Attach کنید. تفاوتی هم بین فایل MDF ایجاد شده توسط VS با SQL وجود نداره. در واقع اگر شما در زمان نصب VS نسخه ای از SQL را هم نصب نکنید، کلا قادر به ایجاد فایل mdf نخواهید بود. در نظر داشته باشید که معمولا به صورت پیش فرض به همراه ویژال استادیو نسخه از SQL هم روی ماشین شما نصب میشه.
معمولا در نرم افزار ها خروجی ویرایش پایین تر نرم افزار برای ویرایش بالاتر قابل خواندن خواهد بود و در اکثر موارد عکس این موضوع صادق نیست. در خصوص فایلهای MDF امتحان نکردم اما احتمالا از همین قانون تبعیت می کنه
در خصوص رمز گذاری باید تنطیمات Security را ست کنید. اما توجه داشته باشید که امنیت فقط قسمتیش در SQL ایجاد میشه و اکثرش و جزییاتش در ساختار فرمها و برنامه نویسی ویژال استادیو تامین خواهد شد.
به نظر میرسه شما با مشکل ویرایشها مواجه هستید

موفق باشید

r. salehi
یک شنبه 24 شهریور 1392, 21:36 عصر
فایل صوتی زیر را گوش کنید. روشهای ذخیره فایل در SQL را شرح میده و نقاط قوت و ضعف هر کدوم را توضیح میده.
http://dl.nikamooz.com/radionikamooz/RadioNikAmooz-BLOBSQL.mp3 (http://dl.nikamooz.com/radionikamooz/RadioNikAmooz-BLOBSQL.mp3)
منبع سایت نیک آموز

Omid.R.A.Candy
یک شنبه 24 شهریور 1392, 21:42 عصر
سلام مجدد
ببینید دوست عزیز شما امکان این را هم دارید که خود فایل را در بانک ذخیره کنید. اما این کار معایبش بیشتر از محاسنشه. ضمنا برای شما که قصد دارید فایلهای صوتی را در بانک ذخیره و بازیابی کنید، باتوجه به حجم نسبتا بالای اینگونه فایلها، مشکلات دو چندان میشه. حجم بانک بسیار زیاد میشه و بالتبع سرعت هم کاهش پیدا میکنه. در روش فایل استریم SQL یک فولدر با امکان دسترسی ادمین پایگاه داده ایجاد می کنه به انضام یک جدول. وقتی شما فایلی را به پایگاه داده اضافه می کنید در اون جدول به جای اسم فایل به عنوان شاخص و آدرس فایل، یک کد یونیک GUID ایجاد میشه و اسم فایل با اون کد GUID در فولدر مخصوص پایگاه داده جایگزین میشه. در واقع با این تدابیر کسی قادر به دسترسی غیر مجاز به فایلها نخواهد بود مگر اینکه شما این اجازه را بهش بدین.
امکانات امنیتی که این روش برای شما ایجاد میکنه دقیقا با امکانات امنیتی و سطح دسترسی به داده ها و جدوال معمولی کاملا مشابه هست.
اما در مورد سوالاتتون



اس کیو ال اکسپرس یک نسخه محدود و Free از اس کیو ال با حداقل امکاناته
شما وقتی یک DataBase جدید در SQL ایجاد می کنید یک فایل با پسوند MDF در فولدری که اس کیو ال داده ها را ذخیره می کنه ایجاد میشه. این فایل در واقع کل Database شما را در بر داره و شما به راحتی قادر خواهید بود این فایل را (البته با تدابیری) به جای دیگه یا کامپیوتری دیگه روی یک SQL انتقال بدید و Attach کنید. تفاوتی هم بین فایل MDF ایجاد شده توسط VS با SQL وجود نداره. در واقع اگر شما در زمان نصب VS نسخه ای از SQL را هم نصب نکنید، کلا قادر به ایجاد فایل mdf نخواهید بود. در نظر داشته باشید که معمولا به صورت پیش فرض به همراه ویژال استادیو نسخه از SQL هم روی ماشین شما نصب میشه.
معمولا در نرم افزار ها خروجی ویرایش پایین تر نرم افزار برای ویرایش بالاتر قابل خواندن خواهد بود و در اکثر موارد عکس این موضوع صادق نیست. در خصوص فایلهای MDF امتحان نکردم اما احتمالا از همین قانون تبعیت می کنه
در خصوص رمز گذاری باید تنطیمات Security را ست کنید. اما توجه داشته باشید که امنیت فقط قسمتیش در SQL ایجاد میشه و اکثرش و جزییاتش در ساختار فرمها و برنامه نویسی ویژال استادیو تامین خواهد شد.
به نظر میرسه شما با مشکل ویرایشها مواجه هستید


موفق باشید

خیلی جامع و کامل بود،

1-شما فرمودین فایل دیتا بیسی رو که SQL ایجاد میکنه تحت تدابیری کپی کرده... منظورتون از تدابیر چیه؟!! مگه نمیشه با یک کپی ساده این کار رو کرد؟

2-در ضمن در مورد اتچ کردن، من الان کل کارهای دیتا بیس اس کیو الم رو بدون هیچ نسخه دیگه sql انجام می دم.(یعنی با خود vs کار می کنم).و در استفاده از دیتابیس mdf اصلا نه اتچ می کنم و نه دی اتچ کاربرد این کجاست مگه؟

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

4- این روش رمز گذاری و امنیتی vs برای محافظت از mdf رو می تونید با یه برنامه توضیح بدین؟

-------------------------

Omid.R.A.Candy
یک شنبه 24 شهریور 1392, 21:48 عصر
اگه 1کم جستجو کنی همه این سوال ها بارها و بارها پاسخ داده شده اند.

من الان سه روزه دارم تالار vb و C#‎ و SQL دنبال سوالم می گردم، نمی دونم تاپیک می زنم و ... به غیر این تاپیک یه تاپیک دیگه جهت لود کردن فایل دیتا بیس mdf زده بودم اما دریغ از جواب مناسب به من.آخرش از یو تیوپ کارم راه افتاد.

الان هم لازم نیست بیاین 10 تا لینک بدین!!!

اصولا بچه هایی که میان ایجا مشکلشونو مطرح می کنند نمی خوان تو یه زمینه ای استاد تمام بشن! مثلا من خودم نیاز به چهار عمل اصلی و یه سری اطلاعات جزیی در مورد SQL می خوام نمی خوام دکترای SQL بگیرم. این هم بدونید من سرچ کردم و در نهایت مجبور ب ایجاد این تاپیک شدم.بعضی از مدیران تالار هم فقط بلدند تاپیک حذف کنند و اخطار بدن !!!

r. salehi
یک شنبه 24 شهریور 1392, 21:55 عصر
1- تدابیری که عرض کردم منظور سطح دسترسی ها است وقتی خودتون فایل ام دی اف را ایجاد کردید و ادمین سیستم هستید، خوب تبعا مشکلی نخواهید داشت.
2- شما در ویژال استادیو یک سری کامپوننت های اس کیو ال را دارید که میتونید از اون استفاده کنید.
3-اون فایل صوتی که لینکش را براتون گزاشتم گوش کنید. اعتبار و امنیتش هم تابع اعتبار و امنیتیه که SQL ایجاد می کنه.
4- این خودش میشه مثنوی هفتاد من. البته نه اینقدر مفصل اما پیشتر که برید خودتون دستتون میاد. در ضمن اگر شما نرم افزارتون اصطلاحا Stand Alone هست نیازی به امنیت ندارید انچنان، چون نرم افزارتون روی یک ماشین مستقلا نصب میشه و یک کاربر داره. اما اگر قراره چند کاربره و تحت شبکه باشه به اون مباحث امنیتی و سطح دسترسی نیاز خواهید داشت. ضمنا می خواهید نرم افزاری چند کاربره تهیه کنید بهتره که یک SQL Server نصب کنید و پایگاه داده خودتون را به SQL Server منتقل کنید و از اونجا به داده ها دسترسی داشته باشید

Omid.R.A.Candy
یک شنبه 24 شهریور 1392, 23:03 عصر
من می خواستم sql2008 رو نصب کنم که این خطا رو گرفن.این هم بگم رو سیستمم هم vs2008 و هم vs2010 نصبه.حالا باید چیکار کنم؟


110725

r. salehi
یک شنبه 24 شهریور 1392, 23:34 عصر
خوب دوست عزیز میگه VS2008 SP1 لازمه دیگه. به عبارتی شما نیاز به Service Pack شماره یک برای ویژال استادیو 2008 دارید

Omid.R.A.Candy
دوشنبه 25 شهریور 1392, 01:52 صبح
خوب دوست عزیز میگه VS2008 SP1 لازمه دیگه. به عبارتی شما نیاز به Service Pack شماره یک برای ویژال استادیو 2008 دارید

خوب من vs2010 رو هم نصب شده دارم.مگه sql2008 مختص vs2010 نیست؟ پس سرویس پک 1 بودن یا نبودنش موضوعیت نداره!