04-13-2014, 02:08 PM
با سلام خدمت تمامي کاربران گرامي در زير آموزش تصويري SQL Server 2012 را بررسي ميکنيم توجه کنيد که شما ميتوانيد نرم افزار آموزش SQL Server را به همراه چند بخش آموزشي ديگر که بصورت تعاملي و شبيه سازي شده با صدا و متن فارسي درس داده شده است و رايگان نيز ميباشد از لينک آموزش SQL Server دانلود کنيد. در نرم افزارهاي آموزشي کارهاي بيان شده را بايد در محيط شبيه سازي شده انجام دهيد. در انتهاي اين آموزش تصويري نيز کل آموزش (هم متن و هم تصويري) در يک فايل PDF پيوست است.
دانلود فایل pdf آموزش تصویری SQL Server
دانلود فایل Word آموزش تصویری SQL Server
همانطور که ميدانيد SQL Server 2012 يک پايگاه داده رابطهاي است که ميتواند داراي چندين نمونه باشد. هر نمونه ميتواند شامل چندين پايگاه داده رابطهاي باشد و هر پايگاه داده ميتواند حاوي چندين جدول باشد. هر جدول نيز ميتواند يک رابطه منطقي با جدولهاي ديگر داشته باشد. هر جدول هم شامل صفر يا چندين رکورد است.
با استفاده از نرمافزار 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 کليک کنيد.
در ابتدا بايد سرور يا نمونه مورد نظر را انتخاب کنيم. در اينجا فقط يک نمونه به نام Eniac-PC2 وجود دارد با کليک بر روي هر نمونه اطلاعات مربوط به آن نمونه در پنجره 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 اندازه اوليه فايل تعيين ميشود. بصورت پيش فرض اندازه فايل دادهها برابر 5MB و اندازه فايل Log برابر 1MB است. در صورتيکه فکر ميکنيد حجم اطلاعات شما زياد است ميتوانيد مقدار اوليه اين فايل را افزايش دهيد. البته با قرار گرفتن اطلاعات در اين فايل بصورت خودکار حجم آن افزايش خواهد يافت. روي دکمه OK کليک کنيد.
مشاهده ميکنيد که يک پايگاه داده به نام Eniac در پايين ليست Databases اضافه شده است. در صورتيکه بعد از ايجاد پايگاه داده نام آن را مشاهده نکرديد روي گزينه Database راست کليک کنيد و گزينه Refresh را انتخاب نمائيد. در ادامه به همين ترتيب يک پايگاه داده ديگر به نام PA نيز تعريف ميکنيم.
مقادير پيش فرض در زمان تعريف پايگاه داده از تنظيمات مربوط به پايگاه داده Model واقع در قسمت System Database خوانده ميشود. براي تغيير اين خصوصيات ميتوانيد روي پايگاه داده Model راست کليک کرده و گزينه Properties را انتخاب نمائيد. اکنون با تغيير خصوصيات پايگاه داده Model مقادير پيش فرض جهت تعريف پايگاه داده نيز تغيير خواهد يافت.
اکنون دو پايگاه داده به نامهاي PA و Eniac تعريف شدهاند. به ياد داريد که در پايگاه داده Eniac ميخواهيم سه جدول ايجاد کنيم. پس قدم بعد از ايجاد پايگاه داده ايجاد يک جدول در پايگاه داده است تا دادهها را در آن ذخيره کنيم. براي مشاهده جداول موجود در پايگاه داده Eniac روي علامت + کنار گزينه Eniac کليک کنيد.
روي علامت + کنار گزينه Tables کليک کنيد.
مشاهده ميکنيد که فقط جدول مربوط به سيستم در اين قسمت وجود دارد. براي ايجاد يک جدول جديد روي گزينه Tables راست کليک کنيد.
روي گزينه New 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 کليک کنيد.
مشاهده ميکنيد که يک علامت کليد در سمت چپ فيلد ظاهر شده است به اين ترتيب فيلد 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 2012 پنج روش براي ايجاد جامعيت داده وجود دارد. جامعيت داده را در فصل نهم بيشتر بررسي ميکنيم.
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 نيز يک جدول را ميتوانيد از نمودار حذف کنيد.
کاربرگرامي، شما اکنون در پايان اين بخش قرار داريد.
دانلود فایل pdf آموزش تصویری SQL Server
دانلود فایل Word آموزش تصویری SQL Server
دانلود فایل pdf آموزش تصویری SQL Server
دانلود فایل Word آموزش تصویری SQL Server
همانطور که ميدانيد SQL Server 2012 يک پايگاه داده رابطهاي است که ميتواند داراي چندين نمونه باشد. هر نمونه ميتواند شامل چندين پايگاه داده رابطهاي باشد و هر پايگاه داده ميتواند حاوي چندين جدول باشد. هر جدول نيز ميتواند يک رابطه منطقي با جدولهاي ديگر داشته باشد. هر جدول هم شامل صفر يا چندين رکورد است.
با استفاده از نرمافزار 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 کليک کنيد.
در ابتدا بايد سرور يا نمونه مورد نظر را انتخاب کنيم. در اينجا فقط يک نمونه به نام Eniac-PC2 وجود دارد با کليک بر روي هر نمونه اطلاعات مربوط به آن نمونه در پنجره 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 اندازه اوليه فايل تعيين ميشود. بصورت پيش فرض اندازه فايل دادهها برابر 5MB و اندازه فايل Log برابر 1MB است. در صورتيکه فکر ميکنيد حجم اطلاعات شما زياد است ميتوانيد مقدار اوليه اين فايل را افزايش دهيد. البته با قرار گرفتن اطلاعات در اين فايل بصورت خودکار حجم آن افزايش خواهد يافت. روي دکمه OK کليک کنيد.
مشاهده ميکنيد که يک پايگاه داده به نام Eniac در پايين ليست Databases اضافه شده است. در صورتيکه بعد از ايجاد پايگاه داده نام آن را مشاهده نکرديد روي گزينه Database راست کليک کنيد و گزينه Refresh را انتخاب نمائيد. در ادامه به همين ترتيب يک پايگاه داده ديگر به نام PA نيز تعريف ميکنيم.
مقادير پيش فرض در زمان تعريف پايگاه داده از تنظيمات مربوط به پايگاه داده Model واقع در قسمت System Database خوانده ميشود. براي تغيير اين خصوصيات ميتوانيد روي پايگاه داده Model راست کليک کرده و گزينه Properties را انتخاب نمائيد. اکنون با تغيير خصوصيات پايگاه داده Model مقادير پيش فرض جهت تعريف پايگاه داده نيز تغيير خواهد يافت.
اکنون دو پايگاه داده به نامهاي PA و Eniac تعريف شدهاند. به ياد داريد که در پايگاه داده Eniac ميخواهيم سه جدول ايجاد کنيم. پس قدم بعد از ايجاد پايگاه داده ايجاد يک جدول در پايگاه داده است تا دادهها را در آن ذخيره کنيم. براي مشاهده جداول موجود در پايگاه داده Eniac روي علامت + کنار گزينه Eniac کليک کنيد.
روي علامت + کنار گزينه Tables کليک کنيد.
مشاهده ميکنيد که فقط جدول مربوط به سيستم در اين قسمت وجود دارد. براي ايجاد يک جدول جديد روي گزينه Tables راست کليک کنيد.
روي گزينه New 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 کليک کنيد.
مشاهده ميکنيد که يک علامت کليد در سمت چپ فيلد ظاهر شده است به اين ترتيب فيلد 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 2012 پنج روش براي ايجاد جامعيت داده وجود دارد. جامعيت داده را در فصل نهم بيشتر بررسي ميکنيم.
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 نيز يک جدول را ميتوانيد از نمودار حذف کنيد.
کاربرگرامي، شما اکنون در پايان اين بخش قرار داريد.
دانلود فایل pdf آموزش تصویری SQL Server
دانلود فایل Word آموزش تصویری SQL Server