01-24-2017, 07:19 PM
با سلام خدمت تمامی کاربران گرامی در زیر آموزش تصویری SQL Server 2016 را بررسی میکنیم توجه کنید که شما میتوانید نرم افزار آموزش SQL Server 2016 را به همراه چند بخش آموزشی دیگر که بصورت تعاملی و شبیه سازی شده با صدا و متن فارسی درس داده شده است و رایگان نیز میباشد از لینک آموزش SQL Server 2016 دانلود کنید. در نرم افزارهای آموزشی کارهای بیان شده را باید در محیط شبیه سازی شده انجام دهید. در ابتدا و انتهای این آموزش تصویری نیز کل آموزش (هم متن و هم تصویری) در فایل PDF و Word موجود است.
در لینک آموزش SQL Server میتوانید ورژنهای دیگر آموزش SQL Server را مشاهده و دانلود کنید.
دانلود فایل pdf آموزش تصویری SQL Server 2016
دانلود فایل word آموزش تصویری SQL Server 2016
دانلود آموزش SQL Server 2016 تحت ویندوز و اندروید
همانطور که میدانیدSQL Server یک پایگاه داده رابطهای است که میتواند دارای چندین نمونه باشد. هر نمونه میتواند شامل چندین پایگاه داده رابطهای باشد و هر پایگاه داده میتواند حاوی چندین جدول باشد. هر جدول نیز میتواند یک رابطه منطقی با جدولهای دیگر داشته باشد. هر جدول هم شامل صفر یا چندین رکورد است.
با استفاده از نرمافزار SQL Server Management Studio میتوانید به پایگاه دادههای موجود در یک نمونه از SQL Server و اشیاء موجود در آن دسترسی داشته باشید. هر چیزی که داخل پایگاه داده است مانند جدول، دید، ایندکس، روالهای ذخیره شده و ... اشیاء پایگاه داده هستند. در این بخش میخواهیم به بررسی روش ایجاد پایگاه داده و جدول بپردازیم.
برای آنکه مفهوم پایگاه داده، جدول و رکورد را بهتر متوجه شویم به بررسی یک مثال عملی میپردازیم. در این مثال میخواهیم دو پایگاه داده به نامهای Eniac و PA ایجاد کنیم که به ترتیب حاوی اطلاعات دو شرکت انیاک و پیروز الوان هستند. در پایگاه داده Eniac سه جدول به نام کتاب (Book)، مشتری (Customer) و سفارش (Order) وجود دارد.
در جدول کتاب چهار فیلد به نامهای کد کتاب (ID)، نام کتاب (Name)، مقدار موجودی (Qty) و قیمت (Price) وجود دارد. در جدول مشتری نیز چهار فیلد به نامهای کد مشتری (ID)، نام مشتری (Name)، آدرس (Add) و تلفن (Tel) وجود دارد. جدول سفارش نیز شامل فیلدهای کد مشتری (CID)، کد کتاب (BID) و تعداد (Qty) است.
همانطور که متوجه شدهاید یک رابطه منطقی بین جدول مشتری و جدول سفارش و یک رابطه منطقی بین جدول کتاب و سفارش وجود دارد. برای مثال با توجه به تصویر مشخص است که یک مشتری به نام نیما کتابی به نام هک را به تعداد پنج عدد خریداری کرده است. مشخصات مشتری نیما در جدول مشتری و مشخصات کتاب هک در جدول کتاب وجود دارد.
در ادامه این بخش میخواهیم دو پایگاه داده و سه جدول موجود در پایگاه داده Eniac را تعریف کنیم. برای اجرای برنامه SQL Server Management Studio روی دکمه Start کلیک کنید.
روی گزینه SQL Server Management Studio کلیک کنید.
مشاهده میکنید اطلاعات مربوط به آخرین باری که به یک نمونه وصل شدیم، بصورت خودکار وارد شده است. در فصل قبل با این پنجره آشنا شدید. روی دکمه Connect کلیک کنید.
در ابتدا باید سرور یا نمونه مورد نظر را انتخاب کنیم. در اینجا فقط یک نمونه به نام NIMA وجود دارد با کلیک بر روی هر نمونه اطلاعات مربوط به آن نمونه در پنجره Object Explore نمایش داده میشود. به یاد دارید که در فصل قبل روش اضافه کردن یک نمونه را بررسی کردیم. روی علامت + کنار گزینه Database واقع در پنجره Object Explorer کلیک کنید.
در صورتیکه پنجره Object Explorer نمایان نیست از منوی View گزینه Object Explorer را انتخاب نمائید
در شاخه System Databases چند جدول مربوط به سیستم وجود دارد. برای ایجاد یک پایگاه داده جدید روی گزینه Databases راست کلیک کنید.
روی گزینه New Database کلیک کنید.
با کلیک بر روی گزینه Options میتوانید تنظیمات مختلفی را تغییر دهید. در ابتدا باید نام پایگاه داده را تعیین کنیم، عبارت Eniac را بعنوان نام پایگاه داده وارد نمائید.
در قسمت Database files لیست فایلهای مربوط به این پایگاه داده نمایش داده میشود. بصورت پیشفرض دو فایل ایجاد شده است. یک فایل مخصوص اطلاعات موجود در پایگاه داده که با پسوند mdf ذخیره میشود و یک فایل جهت ذخیره ثبت رویدادهای مختلف (فایل Log) که با پسوند ldf ذخیره میشود. با استفاده از دو دکمهAdd و Remove که در پایین پنجره قرار دارند میتوانید فایلهای جدیدی به پایگاه داده اضافه یا حذف نمائید.
در قسمت Initial Size اندازه اولیه فایل تعیین میشود. بصورت پیشفرض اندازه فایل دادهها برابر 8MB و اندازه فایل Log برابر 8MB است. در صورتیکه فکر میکنید حجم اطلاعات شما زیاد است میتوانید مقدار اولیه این فایل را افزایش دهید. البته با قرار گرفتن اطلاعات در این فایل بصورت خودکار حجم آن افزایش خواهد یافت. روی دکمه OK کلیک کنید.
مشاهده میکنید که یک پایگاه داده به نام Eniac در پایین لیست Databases اضافه شده است. در صورتیکه بعد از ایجاد پایگاه داده نام آن را مشاهده نکردید روی گزینه Databases راست کلیک کنید و گزینه Refresh را انتخاب نمائید. در ادامه به همین ترتیب یک پایگاه داده دیگر به نام PA نیز تعریف میکنیم.
مقادیر پیشفرض در زمان تعریف پایگاه داده از تنظیمات مربوط به پایگاه داده Model واقع در قسمت System Database خوانده میشود. برای تغییر این خصوصیات میتوانید روی پایگاه داده Model راست کلیک کرده و گزینه Properties را انتخاب نمائید. اکنون با تغییر خصوصیات پایگاه داده Model مقادیر پیشفرض جهت تعریف پایگاه داده نیز تغییر خواهد یافت.
حال دو پایگاه داده به نامهای PA و Eniac تعریف شده است. به یاد دارید که در پایگاه داده Eniac میخواهیم سه جدول ایجاد کنیم. پس قدم بعد از ایجاد پایگاه داده ایجاد یک جدول در پایگاه داده است تا دادهها را در آن ذخیره کنیم. برای مشاهده جداول موجود در پایگاه داده Eniac روی علامت + کنار گزینه Eniac کلیک کنید.
روی علامت + کنار گزینه Tables کلیک کنید.
مشاهده میکنید که فقط جدول مربوط به سیستم در این قسمت وجود دارد. برای ایجاد یک جدول جدید روی گزینه Tables راست کلیک کنید.
منوی فرعیNew را باز کنید.
روی گزینه Table کلیک کنید.
با استفاده از گزینه Memory Optimized table برای سرعت بیشتر جدول در حافظه ذخیره میشود
در پایگاه داده رابطهای دادهها در جدول ذخیره میشوند. هر جدول در پایگاه داده رابطهای یک جدول دو در دو است که دارای سطر و ستون میباشد. هر ستون یک فیلد و هر سطر یک رکورد نامیده میشود. ستونها یا فیلدها در این قسمت تعریف شده و در ردیفها یا رکوردها دادهها ذخیره میشوند.
در ابتدا باید نام جدول را تعیین کنیم. نام جدول در پنجره خصوصیات یا Properties تعیین میگردد. در صورتی که پنجره خصوصیات را مشاهده نمیکنید از منوی View گزینه Properties Window را انتخاب کنید. (کلید میانبر F4 است.) در صورتیکه نام جدول را تعیین نکنید بعد از تعریف جدول در زمان ذخیرهسازی نام جدول از شما پرسیده میشود. روی گزینه Name دابل کلیک کنید.
عبارت Book را وارد کنید.
برای تعریف اولین فیلد این جدول در قسمت Column Name کلیک کنید.
اولین فیلد کد مشتری است که آن را میخواهیم ID نامگذاری کنیم. عبارت Id را وارد کنید.
قدم بعد تعیین نوع دادهای است که در این فیلد وارد میشود. روی ستون مربوط به Data Type کلیک کنید.
روی لیست باز شونده کلیک کنید.
در این مثال کد هر کتاب یک عدد از 1 تا 1000 میتواند باشد. در جدول زیر محدوده تعریف چند نوع عدد را مشاهده میکنید. با توجه به جدول باید از نوع Smallint استفاده کنیم. توجه کنید که هر نوع داده مقداری از فضای ذخیره سازی را اشغال میکند و هر چه فضای ذخیره شده کمتر باشد، حجم فایل جدول کمتر شده و عملیاتهایی که میخواهید بر روی جدول انجام دهید سریعتر اجرا میشوند.
روی گزینه Smallint کلیک کنید.
هر فیلد دارای یک مشخصه مهم دیگر نیز میباشد. بصورت پیشفرض هر فیلدی که تعریف میشود میتواند در زمان مقداردهی برابر Null نیز باشد. یعنی هیچ دادهای در آن وارد نشود. در این مثال در صورتیکه رکوردی بخواهد وارد گردد باید حتماً کد کتاب در آن وارد شود. پس خصوصیت Allow Nulls باید برابر باNo باشد. روی جعبه چک
Allow Nulls کلیک کنید.
فیلد بعدی که میخواهیم تعریف کنیم نام کتاب است. در قسمت Column Name کلیک کنید.
عبارت Name را وارد کنید.
روی ستون مربوط به Data Type کلیک کنید.
نوع char(n) به تعدادی که توسط n تعیین میشود کاراکتر قبول میکند. عدد n میتواند بین یک تا هشت هزار باشد. برای مثال با انتخاب نوع char(3) فقط سه کاراکتر میتواند در فیلد قرار بگیرد. میزان مصرف فضای این نوع وابسته به تعداد کاراکترهای آن است هر کاراکتر یک بایت اشغال میکند.
در این مثال نام کتاب یک عبارت به زبان فارسی است. پس باید از نوع دادهای استفاده کنیم که بتواند Unicode را نیز پشتیبانی کند. نوع nchar(n) کاراکترهای Unicode را قبول میکند. (چون Collation Persian را در زمان نصب انتخاب کردیم.)میزان مصرف این نوع داده دو بایت به ازای هر کاراکتر است. عدد n میتواند بین یک تا چهار هزار تعیین شود.
برای ذخیرهسازی رشته دو نوع دیگر به نام varchar(n) و nvarchar(n) نیز وجود دارد. از این دو نوع زمانی استفاده میشود که میزان فضایی که دادهها اشغال میکنند بسیار متغیر است. بجای n میتوانید از عبارت MAX استفاده کنید تا حداکثر فضای امکان پذیر در اختیار باشد.
در این مثال میخواهیم یک فضای ثابت با طول 20 کاراکتر داشته باشیم. پس باید از نوع nchar(20) استفاده کنیم. در ادامه عدد 10 را به 20 تغییر میدهیم.
مشاهده میکنید که در قسمت Length عدد 20 نوشته شده است. در این قسمت نیز میتوانید طول فیلد را تغییر دهید.
این جدول دارای یک فیلد دیگر به نام تعداد نیز است. برای تعریف این فیلد روی قسمت نام ستون کلیک کنید.
عبارت Qty را تایپ کنید.
روی ستون مربوط به Data Type کلیک کنید.
روی لیست باز شونده کلیک کنید.
در فیلد تعداد یا Qty یک عدد وارد میشود. این عدد بین صفر تا 10 هزار است. بنابراین نوع Smallint را باید انتخاب کنیم. روی گزینه Smallint کلیک کنید.
این فیلد نیز نمیتواند خالی باشد، روی جعبه چک Allow Nulls کلیک کنید.
تا اینجا فیلدهای لازم را تعریف کردیم. روی دکمه Save کلیک کنید.
مشاهده میکنید که جدول Book در قسمت جدولهای پایگاه داده Eniac تعریف شده است. روی دکمه Close کلیک کنید.
( در صورتی که شما جدول طراحی شده خود را نمیبینید روی دکمه (Refresh) در پنجره Object Explorer کلیک کنید.)
در ادامه به همین ترتیب دو جدول Order و Customer را تعریف میکنیم. مشخصات فیلدهای این دو جدول به صورت زیر است :
بعد از تعریف جدول میتوانید فیلدهای جدول را تغییر دهید. برای مثال روی جدول Order راست کلیک کنید.
در این منو با انتخاب گزینه Design میتوانید فیلدهای جدول را تغییر دهید. با انتخاب گزینه Edit Top 200 Rows 200 ردیف اول جدول را مشاهده کنید. با انتخاب گزینه Rename میتوانید نام جدول را تغییر دهید و با استفاده از گزینه Delete جدول را حذف کنید. با کلیک بر روی گزینه Select Top 1000 Rows دستور Select برای مشاهده 1000 ردیف اول نمایش داده میشود. این دستور را در بخشهای بعدی بررسی خواهیم کرد. روی گزینه Design کلیک کنید.
اکنون میتوانید تعریف فیلدهای جدول را تغییر دهید. در صورتی که با تغییر اطلاعات جدول و کلیک بر روی دکمه Save پیغام خطای "Saving changes is not permitted" نمایش داده شد وارد منوی tools شده و گزینه Options را انتخاب کنید. سپس روی Designer کلیک کرده و گزینه Prevent saving changes that require table re-creation را غیر فعال کنید. اکنون میتوانید ساختار جدید را ذخیره کنید.
تمامی اطلاعات مربوط به سفارشات، مشتریان و کتابها در این سه جدول ذخیره میشود. درصورتیکه بخواهیم تمامی اطلاعات را در یک جدول ذخیره کنیم افزونگی دادهها بسیار زیاد میشود. برای مثال فرض کنید که در یک رکورد باید اطلاعات مشتری، تعداد سفارش و اطلاعات کتاب وارد شود. در یک رکورد دیگر دوباره باید اطلاعات همان مشتری، میزان سفارش و اطلاعات یک کتاب دیگر وارد شود. به این ترتیب در دو رکورد، دو بار باید مشخصات مشتری وارد شود.
پایگاه داده رابطهای توسط رابطهای که بین جداول تعیین میشود معنی میگیرد. این رابطه کمک میکند تا از افزونگی دادهها و تکراری شدن آنها جلوگیری شود. برای تعریف رابطه از کلیدهای Primary (اصلی) و Foreign (خارجی) استفاده میکنیم.
یک کلید اصلی یک شاخص یکتا است که یک ردیف را مشخص میکند. برای مثال کد کتاب در جدول کتاب یک کلید اصلی میتواند باشد. هر کتاب دارای یک کد است که کتابهای دیگر دارای آن کد نیستند. در بعضی از حالات ممکن است که یک جدول دارای دو کلید اصلی نیز باشد. پس در این مثال دو فیلد کد کتاب از جدول کتاب و فیلد کد مشتری از جدول مشتری کلید اصلی هستند.
در این مثال یک رابطه بین فیلد کد کتاب از جدول کتاب با فیلد کد کتاب در جدول سفارش نیز وجود دارد. فیلد کد کتاب در جدول سفارش یک کلید خارجی است. پس یک فیلد که در یک جدول کلید خارجی است در یک جدول دیگر یک کلید اصلی میباشد. در ادامه روش تعیین کلید اصلی و رابطه را بررسی میکنیم.
در اولین قدم فیلد کد کتاب در جدول کتاب را میخواهیم به عنوان کلید اصلی تعریف کنیم. روی جدول Book راست کلیک کنید.
روی گزینه Design کلیک کنید.
روی فیلد Id راست کلیک کنید.
با استفاده از دو گزینه Insert Column و
Delete Column به ترتیب میتوانید یک فیلد جدید اضافه و فیلدی که بر روی آن راست کلیک کردید را حذف نمائید. روی گزینه Set Primary Key کلیک کنید.
( یک راه دیگر انتخاب فیلد و کلیک بر روی دکمه Primary Key Set است)
مشاهده میکنید که یک علامت کلید در سمت چپ فیلد ظاهر شده است به این ترتیب فیلد Id بعنوان یک فیلد کلید اصلی تعیین شده است. در زمان تعریف جدول نیز میتوانید این فیلد را بعنوان کلید اصلی تعریف نمائید. روی دکمه Save کلیک کنید.
روی دکمه Close کلیک کنید.
به همین ترتیب فیلد Id جدول Customer را نیز بهعنوان یک کلید اصلی تعریف کردهایم. حال نوبت به تعریف رابطه بین فیلدها رسیده است. در هر محلی واقع در قسمت تعریف فیلدها راست کلیک کنید.
روی گزینه Relationships کلیک کنید.
روی دکمه Add کلیک کنید.
بصورت خودکار یک رابطه ایجاد شده است. در قسمت Table And Columns Specification کلیک کنید.
روی دکمه مشخص شده کلیک کنید.
در ابتدا میخواهیم رابطه جدول سفارش با جدول کتاب را تعریف کنیم. در ادامه عبارت FK_Order_Book را بعنوان نام این رابطه وارد میکنیم.
در قسمت Primary Key Table باید نام جدول و نام فیلدی که دارای کلید اصلی میباشد را تعیین کنیم. روی لیست باز شونده کلیک کنید.
روی گزینه Book کلیک کنید.
در قسمت فیلدهای این جدول کلیک کنید.
روی لیست باز شونده فیلدها کلیک کنید.
روی گزینه Id کلیک کنید.
حال باید کلید خارجی را تعیین کنیم. روی قسمت فیلدهای جدول Order کلیک کنید.
روی لیست باز شونده فیلدها کلیک کنید.
روی گزینه BId کلیک کنید.
روی دکمه OK کلیک کنید.
به همین ترتیب نیز یک رابطه بین فیلد Id جدول Customer و فیلد Cid جدول Order ایجاد میکنیم.
حال دو رابطه در این جدول تعریف شده است. روی دکمه Close کلیک کنید.
روی دکمه Save کلیک کنید
برای ذخیره تغییرات انجام شده، روی دکمه Yes کلیک کنید.
در یک پایگاه داده برای درستی، دقت و سازگاری داده یعنی جامعیت داده (Data Integrity) میتوانید یک یا چند قانون تعیین نمائید. در SQL Server پنج روش برای ایجاد جامعیت داده وجود دارد. جامعیت داده را در فصل نهم بیشتر بررسی میکنیم.
1) Null : زمانی که این محدودیت اعمال شود. یک فیلد حتماً باید حاوی داده باشد.
2) Check : توسط این محدودیت میتوانید تعیین کنید که مقدار یک فیلد معتبر است یا خیر. برای مثال ممکن است که بخواهید سن کارمندان یک شرکت بین 18 تا 60 سال باشد.3) Unique : توسط این قید تعیین میکنید که مقدار یک فیلد در هیچکدام از فیلدهای دیگر در یک ستون قابل تکرار نیست.
4) Primary Key (کلید اصلی): این محدودیت باعث میشود تا مقدار یک فیلد در ردیفهای دیگر تکرار نشود. برای مثال کتابی با کد 1 دیگر نباید در هیچ کدام از ردیفها تکرار شود.
5) Foreign Key (کلید خارجی) : این قید به یک مقدار یکتا در یک جدول دیگر در همان پایگاه داده اشاره دارد. مانند فیلد کد کتاب یا کد مشتری در جدول سفارش.
همیشه سعی کنید که قواعد جامعیت داده را در زمان طراحی جدول تعیین کنید. اگر این قواعد را بخواهید بعد از ورود داده در جدول تعیین کنید ممکن است که نیاز به حذف مقداری از دادهها داشته باشید که کار زمانگیری است.
میخواهیم با استفاده از Check یک محدودیت برای جدول سفارش ایجاد کنیم تا هیچ مشتری نتواند در یک سفارش بیش از 100 کتاب را سفارش دهد. برای این کار روی فیلد Qty راست کلیک کنید.
روی گزینه Check Constraints کلیک کنید.
روی دکمه Add کلیک کنید.
در جعبه متن Expression باید عبارت مورد نظر خود را وارد نمائیم. در جعبه متن Expression کلیک کنید.
عبارت Qty<=100 را وارد کنید.
در این قسمت میتوانید از اپراتورهای شرطی نظیر AND، Or و Not استفاده نمائید. بصورت پیشفرض نام این محدودیت عبارت CK_Order است که میتوانید آن را تغییر دهید. به همین ترتیب میتوانید محدودیتهای دیگر نیز برای دادهها تعیین نمائید. روی دکمه Close کلیک کنید.
روی دکمه Close کلیک کنید.
برای ذخیره تغییرات انجام شده، روی دکمه Yes کلیک کنید.
زمانیکه بر روی یک فیلد راست کلیک میکنید در منوی ظاهر شده یک گزینه به نام Index وجود دارد. اگر یک فیلد را به عنوان یک Index تعریف کنید باعث میشود که دادههای مربوط به آن سریعتر دریافت شود. یک Index میتواند بر اساس یک یا چند فیلد باشد ولی توجه کنید که طول فیلدهائی که میخواهید بر اساس آنها Index ایجاد کنید نباید بیشتر از 900 بایت بشود. در این مثال بهتر است که فیلدهای کد کتاب و کد مشتری را در هر سه جدول بصورت Index تعریف نمائید.
در انتهای این بخش میخواهیم چند داده در جدول اضافه کنیم. روی جدول Book راست کلیک کنید.
در این قسمت در صورتیکه روی گزینه View Dependencies کلیک کنید، میتوانید لیست جدول یا جدولهایی که به جدول Book وابسته هستند را مشاهده کنید. در این مثال جدول Order به جدول Book وابسته است.
برای افزودن داده به جدول Book روی گزینه Edit Top 200 Rows کلیک کنید.
اکنون میتوانید مقادیر لازم را در رکورد وارد نمائید. برای مثال در قسمت Id کلیک کنید.
عدد یک را تایپ کنید.
دکمه Tab صفحه کلید را فشار دهید یا روی فیلد Name کلیک کنید.
اکنون عبارت شبکه را وارد کردهایم. دکمه Tab صفحه کلید را فشار دهید یا روی فیلد Qty کلیک کنید.
عدد 3000 را تایپ کنید.
علامتهای قرمز نشان دهنده این است که هنوز اطلاعات در جدول ذخیره نشده است. دکمه Enter صفحه کلید را فشار دهید.
با این کار یک رکورد به جدول Book اضافه شده است.
دراینجا یک رکورد دیگر وارد کردهایم. توجه کنید که کد کتاب در رکورد دوم با کد کتاب در رکورد اول برابر است و این شرط خلاف شرط کلید اصلی برای فیلد Id میباشد. برای مشاهده آنچه رخ میدهد کلید Enter صفحه کلید را فشار دهید.
مشاهده میکنید که خطا رخ داده است و رکورد در جدول ذخیره نمیشود. مطابق این خطا محدودیت موجود در یک کلید اصلی به نام PK_Book باعث شده تا این رکورد نتواند در جدول ذخیره شود. روی دکمه OK کلیک کنید.
کلید Escape صفحه کلید را دوبار فشار دهید.
روی جدول Order راست کلیک کنید.
روی گزینه Edit Top 200 Rows کلیک کنید
روی فیلد Cid کلیک کنید.
عدد یک را وارد کنید.
روی فیلد BId کلیک کنید یا کلید Tab صفحه کلید را فشار دهید.
عدد یک را وارد کنید.
روی فیلد Qty کلیک کنید یا کلید Tab صفحه کلید را فشار دهید.
عدد 200 را وارد کنید.
دکمه Enter صفحه کلید را فشار دهید.
با این کار یک خطا روی داده است. در این خطا بیان شده که مقدار فیلد Qty معتبر نیست. زیرا قاعده جامعیت داده به نام CK_Order برقرار نمیباشد. به یاد دارید که طبق این قاعده هیچ سفارشی نمیتواند بیش از 100 باشد. بر روی دکمه OK کلیک کنید.
عدد دو را وارد کنید.
دکمه Enter صفحه کلید را فشار دهید
مشاهده میکنید که دوباره یک خطا نمایش داده شده است. توسط این خطا بیان شده که توسط قاعده جامعیت داده به نام FK_Order_Customer شرایط کلید خارجی مهیا نیست. در ادامه نیز بیان شده است که این خطا در پایگاه داده Eniac جدول Customer، فیلد Id رخ داده است. روی دکمه OK کلیک کنید.
همانطور که به یاد دارید یک رابطه (به همراه کلید خارجی) بین جدول سفارش و جدول مشتری ایجاد کردیم. در این رکورد تعیین شده است که یک مشتری با کد شماره یک، سفارش را انجام داده ولی همانطور که میدانید در جدول مشتری هنوز دادهای وارد نشده است و چنین مشتری وجود ندارد.
مشاهده کردید که با استفاده از قواعد جامعیت داده توانستیم محدودیتهایی در ورود دادهها ایجاد کنیم تا درستی، دقت و سازگاری در اطلاعات پایگاه داده حفظ شود.
در صورتی که این رکوردها را با استفاده از یک
نرمافزار که مثلاً به زبان Visual Basic نوشتهایم میخواستیم وارد کنیم ( با استفاده از دستور Insert که در بخشهای بعدی بررسی میشود.) امکان درج رکورد وجود نداشته و خطا رخ میدهد پس در برنامه خود باید حتماً این خطاها را بررسی کنید و پیغامی مناسب به کاربر نمایش دهید
با استفاده از شاخه Database Diagram میتوانید چندین نمودار پایگاه داده ایجاد نمائید. توسط این نمودارها رابطه بین جداول بیشتر مشخص میشود. روی شاخه Database Diagram راست کلیک کنید.
( در صورتی که در این قسمت خطای Database diagram support objects cannot be installed because this database does not have a valid owner نمایش داده شد مبنی بر این است که صاحب پایگاه داده معتبر نیست برای این کار روی پایگاه داده (در اینجا Eniac) راست کلیک کرده و گزینه Properties را انتخاب کنید و سپس روی گزینه Files در سمت چپ کلیک کند و در قسمت Owner روی دکمه … کلیک کنید در ادامه روی دکمه Browse کلیک کنید و کاربر sa را انتخاب نمایئد و سه بار روی سه دکمه OK کلیک کنید. با این کار شما صاحب این پایگاه داده را کاربر sa تعیین کردهاید.) روی گزینه
New Database Diagram کلیک کنید.
روی دکمه Yes کلیک کنید.
( در صورتی که در این قسمت خطای Database diagram support objects cannot be installed because this database does not have a valid owner نمایش داده شد مبنی بر این است که صاحب پایگاه داده معتبر نیست برای این کار روی پایگاه داده (در اینجا Eniac) راست کلیک کرده و گزینه Properties را انتخاب کنید و سپس روی گزینه Files در سمت چپ کلیک کند و در قسمت Owner روی دکمه … کلیک کنید در ادامه روی دکمه Browse کلیک کنید و کاربر sa را انتخاب نمایئد و سه بار روی سه دکمه OK کلیک کنید. با این کار شما صاحب این پایگاه داده را کاربر sa تعیین کردهاید.)
اکنون لیست جدولهای موجود در این پایگاه داده نمایش داده شده است. میخواهیم سه جدول Book، Customer و Orders را به این جدول اضافه کنیم. اکنون جدول Book انتخاب شده است. روی دکمه Add کلیک کنید.
جدول Book به نمودار اضافه شده است. روی جدول Customer دابل کلیک کنید.
روی جدول Orders دابل کلیک کنید.
روی دکمه Close کلیک کنید.
روی دکمه Close کلیک کنید.
مشاهده میکنید که رابطه سه جدول بصورت خودکار نمایش داده شده است. با راست کلیک بر روی نمودار و انتخاب گزینه New Text Annotation میتوانید توضیحاتی را بصورت متن بر روی نمودار بنویسید.
با استفاده از این نمودار ساختار پایگاه داده و رابطه بین جدولهای آن بسیار واضح میشود. به همین ترتیب میتوانید چندین نمودار رسم کنید و رابطه بین آنها را نمایش دهید.
با راست کلیک بر روی نمودار و انتخاب گزینه Add Table میتوانید یک جدول دیگر را به این نمودار اضافه کنید. با کلیک بر روی هر جدول و فشردن کلید Delete نیز یک جدول را میتوانید از نمودار حذف کنید.
کاربرگرامی، شما اکنون در پایان این بخش قرار دارید
دانلود آموزش SQL Server 2016 تحت ویندوز و اندروید
در لینک آموزش SQL Server میتوانید ورژنهای دیگر آموزش SQL Server را مشاهده و دانلود کنید.
دانلود فایل pdf آموزش تصویری SQL Server 2016
دانلود فایل word آموزش تصویری SQL Server 2016
دانلود آموزش SQL Server 2016 تحت ویندوز و اندروید
همانطور که میدانیدSQL Server یک پایگاه داده رابطهای است که میتواند دارای چندین نمونه باشد. هر نمونه میتواند شامل چندین پایگاه داده رابطهای باشد و هر پایگاه داده میتواند حاوی چندین جدول باشد. هر جدول نیز میتواند یک رابطه منطقی با جدولهای دیگر داشته باشد. هر جدول هم شامل صفر یا چندین رکورد است.
با استفاده از نرمافزار SQL Server Management Studio میتوانید به پایگاه دادههای موجود در یک نمونه از SQL Server و اشیاء موجود در آن دسترسی داشته باشید. هر چیزی که داخل پایگاه داده است مانند جدول، دید، ایندکس، روالهای ذخیره شده و ... اشیاء پایگاه داده هستند. در این بخش میخواهیم به بررسی روش ایجاد پایگاه داده و جدول بپردازیم.
برای آنکه مفهوم پایگاه داده، جدول و رکورد را بهتر متوجه شویم به بررسی یک مثال عملی میپردازیم. در این مثال میخواهیم دو پایگاه داده به نامهای Eniac و PA ایجاد کنیم که به ترتیب حاوی اطلاعات دو شرکت انیاک و پیروز الوان هستند. در پایگاه داده Eniac سه جدول به نام کتاب (Book)، مشتری (Customer) و سفارش (Order) وجود دارد.
در جدول کتاب چهار فیلد به نامهای کد کتاب (ID)، نام کتاب (Name)، مقدار موجودی (Qty) و قیمت (Price) وجود دارد. در جدول مشتری نیز چهار فیلد به نامهای کد مشتری (ID)، نام مشتری (Name)، آدرس (Add) و تلفن (Tel) وجود دارد. جدول سفارش نیز شامل فیلدهای کد مشتری (CID)، کد کتاب (BID) و تعداد (Qty) است.
همانطور که متوجه شدهاید یک رابطه منطقی بین جدول مشتری و جدول سفارش و یک رابطه منطقی بین جدول کتاب و سفارش وجود دارد. برای مثال با توجه به تصویر مشخص است که یک مشتری به نام نیما کتابی به نام هک را به تعداد پنج عدد خریداری کرده است. مشخصات مشتری نیما در جدول مشتری و مشخصات کتاب هک در جدول کتاب وجود دارد.
در ادامه این بخش میخواهیم دو پایگاه داده و سه جدول موجود در پایگاه داده Eniac را تعریف کنیم. برای اجرای برنامه SQL Server Management Studio روی دکمه Start کلیک کنید.
روی گزینه SQL Server Management Studio کلیک کنید.
مشاهده میکنید اطلاعات مربوط به آخرین باری که به یک نمونه وصل شدیم، بصورت خودکار وارد شده است. در فصل قبل با این پنجره آشنا شدید. روی دکمه Connect کلیک کنید.
در ابتدا باید سرور یا نمونه مورد نظر را انتخاب کنیم. در اینجا فقط یک نمونه به نام NIMA وجود دارد با کلیک بر روی هر نمونه اطلاعات مربوط به آن نمونه در پنجره Object Explore نمایش داده میشود. به یاد دارید که در فصل قبل روش اضافه کردن یک نمونه را بررسی کردیم. روی علامت + کنار گزینه Database واقع در پنجره Object Explorer کلیک کنید.
در صورتیکه پنجره Object Explorer نمایان نیست از منوی View گزینه Object Explorer را انتخاب نمائید
در شاخه System Databases چند جدول مربوط به سیستم وجود دارد. برای ایجاد یک پایگاه داده جدید روی گزینه Databases راست کلیک کنید.
روی گزینه New Database کلیک کنید.
با کلیک بر روی گزینه Options میتوانید تنظیمات مختلفی را تغییر دهید. در ابتدا باید نام پایگاه داده را تعیین کنیم، عبارت Eniac را بعنوان نام پایگاه داده وارد نمائید.
در قسمت Database files لیست فایلهای مربوط به این پایگاه داده نمایش داده میشود. بصورت پیشفرض دو فایل ایجاد شده است. یک فایل مخصوص اطلاعات موجود در پایگاه داده که با پسوند mdf ذخیره میشود و یک فایل جهت ذخیره ثبت رویدادهای مختلف (فایل Log) که با پسوند ldf ذخیره میشود. با استفاده از دو دکمهAdd و Remove که در پایین پنجره قرار دارند میتوانید فایلهای جدیدی به پایگاه داده اضافه یا حذف نمائید.
در قسمت Initial Size اندازه اولیه فایل تعیین میشود. بصورت پیشفرض اندازه فایل دادهها برابر 8MB و اندازه فایل Log برابر 8MB است. در صورتیکه فکر میکنید حجم اطلاعات شما زیاد است میتوانید مقدار اولیه این فایل را افزایش دهید. البته با قرار گرفتن اطلاعات در این فایل بصورت خودکار حجم آن افزایش خواهد یافت. روی دکمه OK کلیک کنید.
مشاهده میکنید که یک پایگاه داده به نام Eniac در پایین لیست Databases اضافه شده است. در صورتیکه بعد از ایجاد پایگاه داده نام آن را مشاهده نکردید روی گزینه Databases راست کلیک کنید و گزینه Refresh را انتخاب نمائید. در ادامه به همین ترتیب یک پایگاه داده دیگر به نام PA نیز تعریف میکنیم.
مقادیر پیشفرض در زمان تعریف پایگاه داده از تنظیمات مربوط به پایگاه داده Model واقع در قسمت System Database خوانده میشود. برای تغییر این خصوصیات میتوانید روی پایگاه داده Model راست کلیک کرده و گزینه Properties را انتخاب نمائید. اکنون با تغییر خصوصیات پایگاه داده Model مقادیر پیشفرض جهت تعریف پایگاه داده نیز تغییر خواهد یافت.
حال دو پایگاه داده به نامهای PA و Eniac تعریف شده است. به یاد دارید که در پایگاه داده Eniac میخواهیم سه جدول ایجاد کنیم. پس قدم بعد از ایجاد پایگاه داده ایجاد یک جدول در پایگاه داده است تا دادهها را در آن ذخیره کنیم. برای مشاهده جداول موجود در پایگاه داده Eniac روی علامت + کنار گزینه Eniac کلیک کنید.
روی علامت + کنار گزینه Tables کلیک کنید.
مشاهده میکنید که فقط جدول مربوط به سیستم در این قسمت وجود دارد. برای ایجاد یک جدول جدید روی گزینه Tables راست کلیک کنید.
منوی فرعیNew را باز کنید.
روی گزینه Table کلیک کنید.
با استفاده از گزینه Memory Optimized table برای سرعت بیشتر جدول در حافظه ذخیره میشود
در پایگاه داده رابطهای دادهها در جدول ذخیره میشوند. هر جدول در پایگاه داده رابطهای یک جدول دو در دو است که دارای سطر و ستون میباشد. هر ستون یک فیلد و هر سطر یک رکورد نامیده میشود. ستونها یا فیلدها در این قسمت تعریف شده و در ردیفها یا رکوردها دادهها ذخیره میشوند.
در ابتدا باید نام جدول را تعیین کنیم. نام جدول در پنجره خصوصیات یا Properties تعیین میگردد. در صورتی که پنجره خصوصیات را مشاهده نمیکنید از منوی View گزینه Properties Window را انتخاب کنید. (کلید میانبر F4 است.) در صورتیکه نام جدول را تعیین نکنید بعد از تعریف جدول در زمان ذخیرهسازی نام جدول از شما پرسیده میشود. روی گزینه Name دابل کلیک کنید.
عبارت Book را وارد کنید.
برای تعریف اولین فیلد این جدول در قسمت Column Name کلیک کنید.
اولین فیلد کد مشتری است که آن را میخواهیم ID نامگذاری کنیم. عبارت Id را وارد کنید.
قدم بعد تعیین نوع دادهای است که در این فیلد وارد میشود. روی ستون مربوط به Data Type کلیک کنید.
روی لیست باز شونده کلیک کنید.
در این مثال کد هر کتاب یک عدد از 1 تا 1000 میتواند باشد. در جدول زیر محدوده تعریف چند نوع عدد را مشاهده میکنید. با توجه به جدول باید از نوع Smallint استفاده کنیم. توجه کنید که هر نوع داده مقداری از فضای ذخیره سازی را اشغال میکند و هر چه فضای ذخیره شده کمتر باشد، حجم فایل جدول کمتر شده و عملیاتهایی که میخواهید بر روی جدول انجام دهید سریعتر اجرا میشوند.
روی گزینه Smallint کلیک کنید.
هر فیلد دارای یک مشخصه مهم دیگر نیز میباشد. بصورت پیشفرض هر فیلدی که تعریف میشود میتواند در زمان مقداردهی برابر Null نیز باشد. یعنی هیچ دادهای در آن وارد نشود. در این مثال در صورتیکه رکوردی بخواهد وارد گردد باید حتماً کد کتاب در آن وارد شود. پس خصوصیت Allow Nulls باید برابر باNo باشد. روی جعبه چک
Allow Nulls کلیک کنید.
فیلد بعدی که میخواهیم تعریف کنیم نام کتاب است. در قسمت Column Name کلیک کنید.
عبارت Name را وارد کنید.
روی ستون مربوط به Data Type کلیک کنید.
نوع char(n) به تعدادی که توسط n تعیین میشود کاراکتر قبول میکند. عدد n میتواند بین یک تا هشت هزار باشد. برای مثال با انتخاب نوع char(3) فقط سه کاراکتر میتواند در فیلد قرار بگیرد. میزان مصرف فضای این نوع وابسته به تعداد کاراکترهای آن است هر کاراکتر یک بایت اشغال میکند.
در این مثال نام کتاب یک عبارت به زبان فارسی است. پس باید از نوع دادهای استفاده کنیم که بتواند Unicode را نیز پشتیبانی کند. نوع nchar(n) کاراکترهای Unicode را قبول میکند. (چون Collation Persian را در زمان نصب انتخاب کردیم.)میزان مصرف این نوع داده دو بایت به ازای هر کاراکتر است. عدد n میتواند بین یک تا چهار هزار تعیین شود.
برای ذخیرهسازی رشته دو نوع دیگر به نام varchar(n) و nvarchar(n) نیز وجود دارد. از این دو نوع زمانی استفاده میشود که میزان فضایی که دادهها اشغال میکنند بسیار متغیر است. بجای n میتوانید از عبارت MAX استفاده کنید تا حداکثر فضای امکان پذیر در اختیار باشد.
در این مثال میخواهیم یک فضای ثابت با طول 20 کاراکتر داشته باشیم. پس باید از نوع nchar(20) استفاده کنیم. در ادامه عدد 10 را به 20 تغییر میدهیم.
مشاهده میکنید که در قسمت Length عدد 20 نوشته شده است. در این قسمت نیز میتوانید طول فیلد را تغییر دهید.
این جدول دارای یک فیلد دیگر به نام تعداد نیز است. برای تعریف این فیلد روی قسمت نام ستون کلیک کنید.
عبارت Qty را تایپ کنید.
روی ستون مربوط به Data Type کلیک کنید.
روی لیست باز شونده کلیک کنید.
در فیلد تعداد یا Qty یک عدد وارد میشود. این عدد بین صفر تا 10 هزار است. بنابراین نوع Smallint را باید انتخاب کنیم. روی گزینه Smallint کلیک کنید.
این فیلد نیز نمیتواند خالی باشد، روی جعبه چک Allow Nulls کلیک کنید.
تا اینجا فیلدهای لازم را تعریف کردیم. روی دکمه Save کلیک کنید.
مشاهده میکنید که جدول Book در قسمت جدولهای پایگاه داده Eniac تعریف شده است. روی دکمه Close کلیک کنید.
( در صورتی که شما جدول طراحی شده خود را نمیبینید روی دکمه (Refresh) در پنجره Object Explorer کلیک کنید.)
در ادامه به همین ترتیب دو جدول Order و Customer را تعریف میکنیم. مشخصات فیلدهای این دو جدول به صورت زیر است :
بعد از تعریف جدول میتوانید فیلدهای جدول را تغییر دهید. برای مثال روی جدول Order راست کلیک کنید.
در این منو با انتخاب گزینه Design میتوانید فیلدهای جدول را تغییر دهید. با انتخاب گزینه Edit Top 200 Rows 200 ردیف اول جدول را مشاهده کنید. با انتخاب گزینه Rename میتوانید نام جدول را تغییر دهید و با استفاده از گزینه Delete جدول را حذف کنید. با کلیک بر روی گزینه Select Top 1000 Rows دستور Select برای مشاهده 1000 ردیف اول نمایش داده میشود. این دستور را در بخشهای بعدی بررسی خواهیم کرد. روی گزینه Design کلیک کنید.
اکنون میتوانید تعریف فیلدهای جدول را تغییر دهید. در صورتی که با تغییر اطلاعات جدول و کلیک بر روی دکمه Save پیغام خطای "Saving changes is not permitted" نمایش داده شد وارد منوی tools شده و گزینه Options را انتخاب کنید. سپس روی Designer کلیک کرده و گزینه Prevent saving changes that require table re-creation را غیر فعال کنید. اکنون میتوانید ساختار جدید را ذخیره کنید.
تمامی اطلاعات مربوط به سفارشات، مشتریان و کتابها در این سه جدول ذخیره میشود. درصورتیکه بخواهیم تمامی اطلاعات را در یک جدول ذخیره کنیم افزونگی دادهها بسیار زیاد میشود. برای مثال فرض کنید که در یک رکورد باید اطلاعات مشتری، تعداد سفارش و اطلاعات کتاب وارد شود. در یک رکورد دیگر دوباره باید اطلاعات همان مشتری، میزان سفارش و اطلاعات یک کتاب دیگر وارد شود. به این ترتیب در دو رکورد، دو بار باید مشخصات مشتری وارد شود.
پایگاه داده رابطهای توسط رابطهای که بین جداول تعیین میشود معنی میگیرد. این رابطه کمک میکند تا از افزونگی دادهها و تکراری شدن آنها جلوگیری شود. برای تعریف رابطه از کلیدهای Primary (اصلی) و Foreign (خارجی) استفاده میکنیم.
یک کلید اصلی یک شاخص یکتا است که یک ردیف را مشخص میکند. برای مثال کد کتاب در جدول کتاب یک کلید اصلی میتواند باشد. هر کتاب دارای یک کد است که کتابهای دیگر دارای آن کد نیستند. در بعضی از حالات ممکن است که یک جدول دارای دو کلید اصلی نیز باشد. پس در این مثال دو فیلد کد کتاب از جدول کتاب و فیلد کد مشتری از جدول مشتری کلید اصلی هستند.
در این مثال یک رابطه بین فیلد کد کتاب از جدول کتاب با فیلد کد کتاب در جدول سفارش نیز وجود دارد. فیلد کد کتاب در جدول سفارش یک کلید خارجی است. پس یک فیلد که در یک جدول کلید خارجی است در یک جدول دیگر یک کلید اصلی میباشد. در ادامه روش تعیین کلید اصلی و رابطه را بررسی میکنیم.
در اولین قدم فیلد کد کتاب در جدول کتاب را میخواهیم به عنوان کلید اصلی تعریف کنیم. روی جدول Book راست کلیک کنید.
روی گزینه Design کلیک کنید.
روی فیلد Id راست کلیک کنید.
با استفاده از دو گزینه Insert Column و
Delete Column به ترتیب میتوانید یک فیلد جدید اضافه و فیلدی که بر روی آن راست کلیک کردید را حذف نمائید. روی گزینه Set Primary Key کلیک کنید.
( یک راه دیگر انتخاب فیلد و کلیک بر روی دکمه Primary Key Set است)
مشاهده میکنید که یک علامت کلید در سمت چپ فیلد ظاهر شده است به این ترتیب فیلد Id بعنوان یک فیلد کلید اصلی تعیین شده است. در زمان تعریف جدول نیز میتوانید این فیلد را بعنوان کلید اصلی تعریف نمائید. روی دکمه Save کلیک کنید.
روی دکمه Close کلیک کنید.
به همین ترتیب فیلد Id جدول Customer را نیز بهعنوان یک کلید اصلی تعریف کردهایم. حال نوبت به تعریف رابطه بین فیلدها رسیده است. در هر محلی واقع در قسمت تعریف فیلدها راست کلیک کنید.
روی گزینه Relationships کلیک کنید.
روی دکمه Add کلیک کنید.
بصورت خودکار یک رابطه ایجاد شده است. در قسمت Table And Columns Specification کلیک کنید.
روی دکمه مشخص شده کلیک کنید.
در ابتدا میخواهیم رابطه جدول سفارش با جدول کتاب را تعریف کنیم. در ادامه عبارت FK_Order_Book را بعنوان نام این رابطه وارد میکنیم.
در قسمت Primary Key Table باید نام جدول و نام فیلدی که دارای کلید اصلی میباشد را تعیین کنیم. روی لیست باز شونده کلیک کنید.
روی گزینه Book کلیک کنید.
در قسمت فیلدهای این جدول کلیک کنید.
روی لیست باز شونده فیلدها کلیک کنید.
روی گزینه Id کلیک کنید.
حال باید کلید خارجی را تعیین کنیم. روی قسمت فیلدهای جدول Order کلیک کنید.
روی لیست باز شونده فیلدها کلیک کنید.
روی گزینه BId کلیک کنید.
روی دکمه OK کلیک کنید.
به همین ترتیب نیز یک رابطه بین فیلد Id جدول Customer و فیلد Cid جدول Order ایجاد میکنیم.
حال دو رابطه در این جدول تعریف شده است. روی دکمه Close کلیک کنید.
روی دکمه Save کلیک کنید
برای ذخیره تغییرات انجام شده، روی دکمه Yes کلیک کنید.
در یک پایگاه داده برای درستی، دقت و سازگاری داده یعنی جامعیت داده (Data Integrity) میتوانید یک یا چند قانون تعیین نمائید. در SQL Server پنج روش برای ایجاد جامعیت داده وجود دارد. جامعیت داده را در فصل نهم بیشتر بررسی میکنیم.
1) Null : زمانی که این محدودیت اعمال شود. یک فیلد حتماً باید حاوی داده باشد.
2) Check : توسط این محدودیت میتوانید تعیین کنید که مقدار یک فیلد معتبر است یا خیر. برای مثال ممکن است که بخواهید سن کارمندان یک شرکت بین 18 تا 60 سال باشد.3) Unique : توسط این قید تعیین میکنید که مقدار یک فیلد در هیچکدام از فیلدهای دیگر در یک ستون قابل تکرار نیست.
4) Primary Key (کلید اصلی): این محدودیت باعث میشود تا مقدار یک فیلد در ردیفهای دیگر تکرار نشود. برای مثال کتابی با کد 1 دیگر نباید در هیچ کدام از ردیفها تکرار شود.
5) Foreign Key (کلید خارجی) : این قید به یک مقدار یکتا در یک جدول دیگر در همان پایگاه داده اشاره دارد. مانند فیلد کد کتاب یا کد مشتری در جدول سفارش.
همیشه سعی کنید که قواعد جامعیت داده را در زمان طراحی جدول تعیین کنید. اگر این قواعد را بخواهید بعد از ورود داده در جدول تعیین کنید ممکن است که نیاز به حذف مقداری از دادهها داشته باشید که کار زمانگیری است.
میخواهیم با استفاده از Check یک محدودیت برای جدول سفارش ایجاد کنیم تا هیچ مشتری نتواند در یک سفارش بیش از 100 کتاب را سفارش دهد. برای این کار روی فیلد Qty راست کلیک کنید.
روی گزینه Check Constraints کلیک کنید.
روی دکمه Add کلیک کنید.
در جعبه متن Expression باید عبارت مورد نظر خود را وارد نمائیم. در جعبه متن Expression کلیک کنید.
عبارت Qty<=100 را وارد کنید.
در این قسمت میتوانید از اپراتورهای شرطی نظیر AND، Or و Not استفاده نمائید. بصورت پیشفرض نام این محدودیت عبارت CK_Order است که میتوانید آن را تغییر دهید. به همین ترتیب میتوانید محدودیتهای دیگر نیز برای دادهها تعیین نمائید. روی دکمه Close کلیک کنید.
روی دکمه Close کلیک کنید.
برای ذخیره تغییرات انجام شده، روی دکمه Yes کلیک کنید.
زمانیکه بر روی یک فیلد راست کلیک میکنید در منوی ظاهر شده یک گزینه به نام Index وجود دارد. اگر یک فیلد را به عنوان یک Index تعریف کنید باعث میشود که دادههای مربوط به آن سریعتر دریافت شود. یک Index میتواند بر اساس یک یا چند فیلد باشد ولی توجه کنید که طول فیلدهائی که میخواهید بر اساس آنها Index ایجاد کنید نباید بیشتر از 900 بایت بشود. در این مثال بهتر است که فیلدهای کد کتاب و کد مشتری را در هر سه جدول بصورت Index تعریف نمائید.
در انتهای این بخش میخواهیم چند داده در جدول اضافه کنیم. روی جدول Book راست کلیک کنید.
در این قسمت در صورتیکه روی گزینه View Dependencies کلیک کنید، میتوانید لیست جدول یا جدولهایی که به جدول Book وابسته هستند را مشاهده کنید. در این مثال جدول Order به جدول Book وابسته است.
برای افزودن داده به جدول Book روی گزینه Edit Top 200 Rows کلیک کنید.
اکنون میتوانید مقادیر لازم را در رکورد وارد نمائید. برای مثال در قسمت Id کلیک کنید.
عدد یک را تایپ کنید.
دکمه Tab صفحه کلید را فشار دهید یا روی فیلد Name کلیک کنید.
اکنون عبارت شبکه را وارد کردهایم. دکمه Tab صفحه کلید را فشار دهید یا روی فیلد Qty کلیک کنید.
عدد 3000 را تایپ کنید.
علامتهای قرمز نشان دهنده این است که هنوز اطلاعات در جدول ذخیره نشده است. دکمه Enter صفحه کلید را فشار دهید.
با این کار یک رکورد به جدول Book اضافه شده است.
دراینجا یک رکورد دیگر وارد کردهایم. توجه کنید که کد کتاب در رکورد دوم با کد کتاب در رکورد اول برابر است و این شرط خلاف شرط کلید اصلی برای فیلد Id میباشد. برای مشاهده آنچه رخ میدهد کلید Enter صفحه کلید را فشار دهید.
مشاهده میکنید که خطا رخ داده است و رکورد در جدول ذخیره نمیشود. مطابق این خطا محدودیت موجود در یک کلید اصلی به نام PK_Book باعث شده تا این رکورد نتواند در جدول ذخیره شود. روی دکمه OK کلیک کنید.
کلید Escape صفحه کلید را دوبار فشار دهید.
روی جدول Order راست کلیک کنید.
روی گزینه Edit Top 200 Rows کلیک کنید
روی فیلد Cid کلیک کنید.
عدد یک را وارد کنید.
روی فیلد BId کلیک کنید یا کلید Tab صفحه کلید را فشار دهید.
عدد یک را وارد کنید.
روی فیلد Qty کلیک کنید یا کلید Tab صفحه کلید را فشار دهید.
عدد 200 را وارد کنید.
دکمه Enter صفحه کلید را فشار دهید.
با این کار یک خطا روی داده است. در این خطا بیان شده که مقدار فیلد Qty معتبر نیست. زیرا قاعده جامعیت داده به نام CK_Order برقرار نمیباشد. به یاد دارید که طبق این قاعده هیچ سفارشی نمیتواند بیش از 100 باشد. بر روی دکمه OK کلیک کنید.
عدد دو را وارد کنید.
دکمه Enter صفحه کلید را فشار دهید
مشاهده میکنید که دوباره یک خطا نمایش داده شده است. توسط این خطا بیان شده که توسط قاعده جامعیت داده به نام FK_Order_Customer شرایط کلید خارجی مهیا نیست. در ادامه نیز بیان شده است که این خطا در پایگاه داده Eniac جدول Customer، فیلد Id رخ داده است. روی دکمه OK کلیک کنید.
همانطور که به یاد دارید یک رابطه (به همراه کلید خارجی) بین جدول سفارش و جدول مشتری ایجاد کردیم. در این رکورد تعیین شده است که یک مشتری با کد شماره یک، سفارش را انجام داده ولی همانطور که میدانید در جدول مشتری هنوز دادهای وارد نشده است و چنین مشتری وجود ندارد.
مشاهده کردید که با استفاده از قواعد جامعیت داده توانستیم محدودیتهایی در ورود دادهها ایجاد کنیم تا درستی، دقت و سازگاری در اطلاعات پایگاه داده حفظ شود.
در صورتی که این رکوردها را با استفاده از یک
نرمافزار که مثلاً به زبان Visual Basic نوشتهایم میخواستیم وارد کنیم ( با استفاده از دستور Insert که در بخشهای بعدی بررسی میشود.) امکان درج رکورد وجود نداشته و خطا رخ میدهد پس در برنامه خود باید حتماً این خطاها را بررسی کنید و پیغامی مناسب به کاربر نمایش دهید
با استفاده از شاخه Database Diagram میتوانید چندین نمودار پایگاه داده ایجاد نمائید. توسط این نمودارها رابطه بین جداول بیشتر مشخص میشود. روی شاخه Database Diagram راست کلیک کنید.
( در صورتی که در این قسمت خطای Database diagram support objects cannot be installed because this database does not have a valid owner نمایش داده شد مبنی بر این است که صاحب پایگاه داده معتبر نیست برای این کار روی پایگاه داده (در اینجا Eniac) راست کلیک کرده و گزینه Properties را انتخاب کنید و سپس روی گزینه Files در سمت چپ کلیک کند و در قسمت Owner روی دکمه … کلیک کنید در ادامه روی دکمه Browse کلیک کنید و کاربر sa را انتخاب نمایئد و سه بار روی سه دکمه OK کلیک کنید. با این کار شما صاحب این پایگاه داده را کاربر sa تعیین کردهاید.) روی گزینه
New Database Diagram کلیک کنید.
روی دکمه Yes کلیک کنید.
( در صورتی که در این قسمت خطای Database diagram support objects cannot be installed because this database does not have a valid owner نمایش داده شد مبنی بر این است که صاحب پایگاه داده معتبر نیست برای این کار روی پایگاه داده (در اینجا Eniac) راست کلیک کرده و گزینه Properties را انتخاب کنید و سپس روی گزینه Files در سمت چپ کلیک کند و در قسمت Owner روی دکمه … کلیک کنید در ادامه روی دکمه Browse کلیک کنید و کاربر sa را انتخاب نمایئد و سه بار روی سه دکمه OK کلیک کنید. با این کار شما صاحب این پایگاه داده را کاربر sa تعیین کردهاید.)
اکنون لیست جدولهای موجود در این پایگاه داده نمایش داده شده است. میخواهیم سه جدول Book، Customer و Orders را به این جدول اضافه کنیم. اکنون جدول Book انتخاب شده است. روی دکمه Add کلیک کنید.
جدول Book به نمودار اضافه شده است. روی جدول Customer دابل کلیک کنید.
روی جدول Orders دابل کلیک کنید.
روی دکمه Close کلیک کنید.
روی دکمه Close کلیک کنید.
مشاهده میکنید که رابطه سه جدول بصورت خودکار نمایش داده شده است. با راست کلیک بر روی نمودار و انتخاب گزینه New Text Annotation میتوانید توضیحاتی را بصورت متن بر روی نمودار بنویسید.
با استفاده از این نمودار ساختار پایگاه داده و رابطه بین جدولهای آن بسیار واضح میشود. به همین ترتیب میتوانید چندین نمودار رسم کنید و رابطه بین آنها را نمایش دهید.
با راست کلیک بر روی نمودار و انتخاب گزینه Add Table میتوانید یک جدول دیگر را به این نمودار اضافه کنید. با کلیک بر روی هر جدول و فشردن کلید Delete نیز یک جدول را میتوانید از نمودار حذف کنید.
کاربرگرامی، شما اکنون در پایان این بخش قرار دارید
دانلود آموزش SQL Server 2016 تحت ویندوز و اندروید