Loading…

جزیره بانک های اطلاعاتی

ارسال کننده: UNITY
محمد نصیری ، بنیانگذار ITPRO ، کارشناس امنیت اطلاعات و ارتباطات و کشف جرائم رایانه ای ، هکر کلاه سفید ، تخصص در حوزه امنیت سیستم عامل و تست های نفوذسنجی ، لینوکس ، مجازی سازی ، سرویس های کاربردی سرور و ... سابقه همکاری در بیش از 40 سازمان دولتی ، خصوصی و نظامی در حوزه پروژه ، مشاوره و آموزش ، بیش از 10 هزار ساعت سابقه آموزشی در طی 12 سال فعالیت حرفه ای ...
ارسال پیام خصوصی
امتیازات این مطلب
مقاله: گرفتن Query از SQL سرور قسمت نهم : دستورات اولیه کار با داده و مدل های کاری و متغیرها

خلاصه ای از فرآیند Normalization در SQL سرور


خوب در قسمت قبلی در نهایت به یک نتیجه کلی رسیدیم و توانستیم در سطح سوم نیز یک Normalization بر روی داده های خود داشته باشیم ، البته درست است که عنوان مقالاتی که تا کنون نوشته ایم به طراحی Database معروف است اما واقعا ما در اینجا فقط مبانی طراحی Database ها را کار کردیم و برای مباحث پیشرفته دوره های تخصصی خاص وجود دارد که بصورت ویژه فقط در مورد طراحی Database ها توضیح می دهند. Normalization ای که ما انجام دادیم حداقل شما را تا حدودی با این فرآیند آشنا کرد. نکته مهم در خصوص Normalization این است که Normalization فقط یک راهنما است و هیچ قانون یا سیاست قطعی برای استفاده و طراحی آن وجود ندارد ، اگر بخواهیم با شما صادق باشیم باید بگوییم که بسیاری از افراد که با پایگاه های داده کار می کنند حتی شاید واژه Normalization را نیز نشنیده باشند و اصلا به آن فکر نکنند ، اما افرادی که کار طراحی Database را انجام می دهند طبیعی است که بعد از مدتی انجام فرآیند Normalization برایشان مانند یک امر ذاتی می شود و بصورت ناخودآگاه طراحی های خود را Normalize می کنند. توجه کنید که همیشه قرار نیست شما Table های خود را Normalize کنیم ، همانطور که قبلا هم اشاره کردیم برخی اوقات برای اینکه کارایی و سرعت بالا برود شما عکس این عملیات یا فرآیند Denormalization را انجام می دهید ، در واقع اگر شما یک طراح Database حرفه ای و با تجربه بودید به این شکل بصورت گام به گام عملیات Normalization را انجام نمی دادید بلکه به احتمال زیاد اولین نتیجه طراحی شما ، آخرین نتیجه طراحی بود که در این سری مقالات به دست آمد. فراموش نکنید که حفظ کردن در فرآیند Normalization وجود ندارد ، این کار بایستی بصورت یک قانون در کار شما قرار بگیرد و شما نباید برای مثال حفظ کنید که سطح یک Normalization چه می کند و سطح دوم و .... این امر بعد از مدتی بصورت ذاتی در شما نهادینه می شود ( عین این لغات قلمبه سلمبه ای که مسئولین میگن : نهادینه :D )

بصورت خلاصه فرآید Normalization ای که ما در اینجا انجام دادیم چند قانون ساده اما اساسی داشتیم ،قانون اول : ما نباید اطلاعات Column های تکراری داشته باشیم . ما چند کالا داشتیم که سفارش می دادیم ؟ آیا قرار است به ازای هر سفارش یک Column به Table ما اضافه شود ؟ قانون دوم : ما نباید اطلاعات رکوردها یا Row های تکراری داشته باشیم. یک مشتری چند عدد سفارش دارد؟ آیا ما قرار است به ازای هر سفارش مشتری یک رکورد جداگانه ایجاد کنیم ؟ قانون سوم : تا جاییکه ممکن است مقادیر محاسبه شده را در Table های خود ذخیره نکنید. دلیل این امر کاملا مشخص است ، اینکار باعث بالا رفتن Load کاری و پایین آمدن سرعت و کارایی Database می شود، قانون آخر : داده اصلی ما بایستی استوار و پابرجا باقی بماند. چه اتفاقی می افتد اگر قیمت فروش یک کالا تغییر کند ؟ من می خواهم بدانم در ابتدای کار قیمت فروش محصول مورد نظر چقدر بوده است ، فارق از اینکه داده امروزی چه اطلاعاتی به من می دهد. بنابراین بایستی مطمئن شویم که برای این مورد یک Column جداگانه در نظر گرفته شده باشد . اگر شما این چهار قانون ساده را در ذهن داشته باشید و طراحی های خود رعایت کنید ، Database شما خوب طراحی می شود. البته من نمی خواهم بگویم که این طراحی و این قوانین کاملا قطعی و درست هستند و همچنین نمی خواهم بگویم که این قوانین برای همه Database ها و در تمامی سناریو ها قابل اجرا هستند اما به هر حال در بیشتر آنها کاربردی است ، همین فروشگاه انجمن تخصصی فناوری اطلاعات ایران نیز از چنین طراحی Database ای برای حداقل فروشگاه خود استفاده کرده است.

دستورات اولیه کار کردن با داده ها در SQL سرور


حواسم به این موضوع هست که شما خسته شده اید و می خواهید وارد مسائل کاربری تر و عملی مرتبط به SQL سرور بشوید اما عجله نکنید ، این مفاهیم برای ادامه کار شما الزامی است و باید خوب آنها را درک کنید. حال برای اینکه مجموعه این مقالاتی که نوشته ایم را به نوعی تا اینجا خاتمه بدهیم بیایید در مورد کار کردن با داده ها در SQL سرور صحبت های اولیه را بکنیم تا بدانید در آینده قرار است با چه مسائلی مواجه شوید و چگونه قرار است با داده ها کار کنید. بصورت کلی برای کار کردن با Database ها شما با چهار دستور یا Statement بایستی آشنایی داشته باشید :

دستورات مقدماتی کار با SQL سرور


  • دستور SELECT : شما با استفاده از دستور یا Statement ای به نام SELECT که به معنی انتخاب می باشد می توانید داده های موجود در Database خود را بدست بیاورید. در ادامه همین دوره آموزشی به این نتیجه خواهید رسید که بیشتر زمان ما در این دوره های آموزشی صرف خواندن داده ها می شود و این خیلی خوب است چون ماهیت اصلی یک DBA خوب کار کردن و خواندن درست اطلاعات از Database ها می باشد.یکی از مشکلاتی که DBA های تازه کار دارند این است که از دست زدن به اطلاعات ترس دارند ، خبر خوش در اینجا این است که دستور SELECT هیچ تغییری در داده های شما ایجاد نمی کند و همین امر می تواند باعث کمتر شدن ترس شما برای کار کردن با داده ها شود.
  • دستور INSERT : این دستور همانطور که از ترجمه آن نیز پیداست برای درج یا ایجاد کردن داده های جدید استفاده می شود.
  • دستور UPDATE : این دستور برای بروزرسانی و اعمال تغییرات یا Modify کردن داده ها مورد استفاده قرار می گیرد.
  • دستور DELETE : برای حذف اطلاعات از Database های ما از دستور DELETE استفاده می کنیم.

معرفی و مقایسه منطق های Result Set و Row Based در SQL


یکی از مهمترین مسائلی که در خصوص SQL سرور باید بدانید منطق های جستجو و ایجاد تغییرات در Database ها در این RDBMS است. به صورت کلی ما در Database های SQL سرور دو منطق جستجو و ایجاد تغییرات داریم که به منطق Row Based یا بر اساس ردیف یا رکورد و منطق نتیجه یکدست یا Result Set تقسیم بندی می شوند. ساختار SQL سرور به گونه ای است که برای استفاده از منطق Result Set بهینه سازی شده است ، در این منطق شما بعد از تعیین شرط یا دستور مورد نظر به SQL سرور می گویید که تمامی رکوردهایی که دارای فلان شرط هستند را به یکباره تغییر و دستورات مورد نظر را بر روی آنها اعمال کند. SQL سرور بعد از اجرا دستور در منطق Result Set به یکباره و آنی دستور شما را اجرا و نتیجه را اعلام می کند. روش دوم منطقی به نام Row Based است که در آن شما می توانید یک بروز رسانی تکی ، یک حذف تکی یا مسائلی از این مورد را به سادگی انجام دهید.

Cursor در SQL سرور به چه معناست ؟


اگر بخواهیم داده های SQL سرور را بصورت مجزا برای دستور و SQL تک تک اجزا و جزئیاتی که می خواهیم تغییر و بروز رسانی کنیم تعیین کنیم ،برای اینکار از مفهومی به نام Cursor استفاده می کنیم . برای اینکه خیال شما راحت شود و راحت تر بتوانید از SQL سرور استفاده کنید به عنوان یک قانون معمول به شما می گویم که از Cursor ها استفاده نکنید. استفاده از Cursor ها باعث پایین آمدن کارایی و همچنین بالا رفتن پیچیدگی کارهای شما می شود و این قانون را که بنده همیشه می گویم و تبدیل به قانون شبکه کارهای ITPRO شده است را فراموش نکنید : KISS کنید ، البته نه به معنای Kiss معروف بلکه Keep It Simple Sysadmin ، تا جاییکه ممکن است برای خود کارها را ساده انجام دهید و از پیچیدگی ها پرهیز کنید.

متغیر یا Variable در SQL سرور چیست و چگونه تعریف می شود ؟


آخرین چیزی که تا اینجای دوره می خواهم به شما آموزش بدهم مفهومی به نام متغیر یا Variable است که تا انتهای دوره یاد می گیرید که باید بارها از آن استفاده کنید. متغیر ها یا Variable ها برای ذخیره سازی داده های موقتی یا Temporary ساخته شده اند. اگر کمی برنامه نویسی کرده باشید حتما با مفهوم Variable آشنایی دارید ، در SQL سرور Variable دارای سه قسمت مهم است که به شکل زیر می باشد :

  • Name یا نام : تمامی Variable ها در SQL سرور با استفاده از علامت @ یا همان ای دورت بگردم شروع می شوند ، اگر این Variable ها از نوع سیستمی باشند دو بار دورش باید بگردید و با دو علامت @@ آنها را تعریف کنید.
  • Data Type یا نوع داده : همانطور که از نامش پیداست نوع داده ای که قرار است در این Variable قرار بگیرد را تعیین می کند. برای مثال اگر قرار است عدد ذخیره شود از نوع Integer و یا اگر تاریخ و زمان است از نوع Date/Time تعریف می شود
  • Value یا ارزش یا مقدار : اطلاعاتی که قرار است داخل Variable ما ذخیره شوند را Value می گویند. توجه کنید که اگر مقدار Value را NULL قرار بدهید یک Variable یا ارزش تهی یا خالی از ارزش ایجاد کرده اید.
برای اینکه درک بهتری از تعریف یک Variable در SQL سرور داشته باشید می توانید به تعریف زیر نگاهی بیندازید ، البته اصلا عجله نکنید به مرور تمامی این مفاهیم را بصورت عملی با هم آموزش خواهیم دید :
DECLARE @<name> <DataType>;
SET @<Name> = <Value>;


خلاصه ای از درس


ما در این سری مقالاتی که تاکنون داشته ایم نگاهی به انواع Database ها داشتیم و تفاوت Database های Flat و RDBMS ها را با هم یاد گرفتیم. با مفاهیم اولیه Database آشنا شدیم ، مفاهیمی مثل Table ، Row ، Column ، Field ، Primary Key و ... ساختار اولیه Object Type ها در SQL را با هم یاد گرفتیم. کمی در خصوص طراحی پایگاه های داده و همچنین انجام فرآیند Normalization صحبت کردیم و در نهایت با اولین دستورات کاربردی در هنگام استفاده از SQL سرور آشنا شدیم ، تا اینجا هر چیزی که یاد گرفته اید مباحث تئوری بوده است اما به امید خدا در ادامه مقالات مباحث کاربری و عملی می شود و شما درگیر محیط SQL سرور خواهید شد ، اینجاست که مفاهیمی که تا کنون یاد گرفته اید را بصورت عملی در محیط واقعی آزمایش و درک خواهید کرد.با ما تا انتهای مقالات باشید . ITPRO باشید.

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

هیچ دیدگاهی برای این مطلب ارسال نشده است

برای ارسال نظر وارد شوید.