PDA

مشاهده نسخه کامل : ايجاد کردن ارتباطات:SQL Server



Security
20-05-07, 21:01
بيشتر پايگاه داده در نظر گرفته مي شوند به صورت مدلهايي که در دنيای واقعي وجود دارد که به صورت Problem Space شناخته شده است.در سطح منطقی، شیءها در Problem Space موجوديتها و اجتماع بين آنها می باشد که با هم در ارتباطند. در سطح فيزيکی، SQL Server موجوديتها را به صورت جداول و ارتباط ها به صورت محدوديت کليدهاي خارجي نشان مي دهد که کليدهاي خارجي را تعريف مي کند.

مدل رابطه اي
بيشتر مردم معتقدند که پايگاههاي داده رابطه اي Relational ناميده مي شود زيرا ارتباطات بين جداول ايجاد مي گردد. در حقيقت، توصيف آن از اصلاح Relation مي آيد که Dr .E .F .codd (که او در اصل مدل رابطه اي را در اواخر 1960 گسترش داده) برگزيده شد براي تشريح شئی ها که در SQL Server به صورت جداول به کار برده مي شود.
به صورت منطقي سه نوع ارتباط وجود دارد: يک به يک که هر سطر از يک جدول به صفر يا يک سطر از جدول ديگر ربط مي شود. يک به چند که هر سطر از يک جدول به صفر، يک يا سطرهاي بيشتر در ديگر جداول مربوط مي شود و چند به چند که هر سطر در جدول اول به صفر، يک و چندين سطر از جدول دوم مربوط مي شود. هر سطر در دومين جدول مي تواند به صفر، يک يا سطرهاي بيشتر در جدول اول مربوط شود. ارتباطات يک به يک نسبتاً نادر مي باشد. آنها اغلب زماني که يک مجموعه از مشخصات فقط براي مقداري از نمونه هاي موجوديتها به کار مي رود استفاده مي گردند. براي مثال، فقط يک زير مجموعه کوچکي از کارمندان که در شرکت در تيم Softball بازي مي کنند. يک طراح پايگاه داده ممکن است همه ويژگيهاي تيم Softball را در يک جدول قرار دهد و سپس يک ارتباط يک به يک بين آن و جدول کارمندان ايجاد کند. از طرف ديگر ارتباطات يک به چند کاملاً رايج مي باشند. در پايگاه داده نمونه مان، يک ارتباط يک به چند بين جدول Plant Parts وOils ايجاد می گردد. هر سطر موجود در جدول Plant Parts می تواند به صفر، يک يا سطرهای بيشتر در جدول Oils مربوط شود. ارتباط چند به چند همچنين رايج مي باشند. براي مثال، يک ارتباط چند به چند بين جدول Properties و جدول oils ايجاد مي گردد هر Oil موجود مي تواند چندين Properties داشته باشد و هر Properties به چندين oils تخصيص داده مي شود. SQL Server مانند ديگر موتورهاي پايگاه داده رابطه اي به صورت مدلهاي يک به يک و يک به چند به طور مستقيم به يکديگر مربوط مي شوند. اما آن يک نوع ويژه از جدول را که به صورت Junction Table شناخته شده براي تجزيه کردن جداول چند به چند استفاده مي کند. يک Junction Table شامل کليدهاي اصلي از جداول در دو طرف ارتباط مي باشند. يک ارتباط يک به چند بين جدول Junction و هر جدول اصلي که در شکل 1-7 نشان داده شده ايجاد مي گردد.


ارتباطات انعکاسي
بيشتر ارتباطات در يک پايگاه داده بين جدول متفاوت برپا مي گردد. اگر چه ارتباط يک جدول به خودش امکان پذير است، همچنين ارتباط يک به يک، يا يک به چند. مانند ارتباطاتي که به عنوان ارتباطات انعکاسي شناخته مي شود. ارتباطات انعکاسي مکرراً براي مرتبه بندي مدل استفاده مي شوند. يک مثال رايج مرتبه بندي کارمندان در يک سازمان مي باشد. يک کارمند، يک مدير دارد و مدير يک کارمندي است که ممکن خود نيز يک مدير داشته باشد. اين ارتباط کليد اصلي از جدول کارمندان به صورت يک ستون در جدول مي باشد که مدل سازي مي شود و يک ارتباط انعکاسی يک به چند ايجاد مي کند.

در سطح جدول، يک ارتباط با موجود بودن شناسه واحد که معمولاً کليد اصلي مي باشد، از يک جدول از يک طرف (که جدول کليد اصلي ناميده مي شود) به جداولی از سوي ديگر (که جدول کليد خارجي ناميده مي شود) مدل سازي مي شود. شناسه به صورت کليدهاي خارجي شناخته مي شود.

راهنمايي: شناسه واحد که به صورت کليد خارجي استفاده مي شود معمولاً کليدهاي اصلي از کليد اصلي جدول مي باشد اما آن مي تواند ستون باشد يا مجموعه يا ستونهايی که به صورت واحد آشکار مي گردد. SQL Server مي تواند ارتباطاتي که شما در پايگاه داده ايجاد کرده ايد را اجرا کند. که اين Maintaining Referential in Tearing ناميده مي شود. به طور پيش فرض SQL Server هر تغييري بر روي کليدهاي اصلي از يک ستون از کليد اصلی جدول که به ستونهايي از کليد خارجي جدول مربوط شده را نخواهد پذيرفت. مورد جديد در SQL Server توانايي انتشاری کردن تغييرات براي کليد اصلي جدول مي باشد. اگر شما به SQL Server بگوييد براي حذف درختي ارتباط، حذف يک سطر در کليد اصلي جدول سبب خواهد شد که SQL Server همه سطرها مربوط به کليد خارجي جدول را حذف کند. به همين صورت، اگر شما به SQL Server بگوييد به روز رساني انتشاري را صورت دهد. تغيير کليد اصلي از کليد اصلي جدول سبب خواهد شد که ستونهاي کليد خارجي جدول به روز گردد.
مهم: تعدادي از طرحهاي پايگاه داده مي تواند کاملاً پيچيده باشد. با استفاده از حذف و به هنگام سازي انتشاري، نگهداري ساختار پيچيده داده مي تواند ساده شود. اما SQL Server نياز دارد که انتشارها چرخشی نباشند. برای مثال حذف يک سطر در جدول A می تواند سبب حذف يک سطر در جدول B شود که به اين صورت باعث حذف يک سطر در جدول C می گردد. ولی عکس اين قضيه صادق نيست.

ايجاد ارتباطات
در SQL Server ، ارتباطات از طريق زبانه Relationships در کادر محاوره اي Table Designers Properties ايجاد مي گردد به طور کلي ارتباط يک به يک و يک به چند دقيقاً مثل هم به وجود مي آيند. SQL Server انواع ارتباطات را بر اساس ستونهاي مشخص شده در کليدهاي خارجي جداول معين خواهد کرد. اگر يک ايندکس واحد در ستونهاي کليد خارجي وجود داشته باشد ارتباط يک به يک خواهد بود در غير اين صورت يک به چند خواهد بود.

ايجاد يک ارتباط
1- Table Designer را براي جدول Oilsبه وسيله کليک راست کردن نام جدول در قاب Detailsباز مي کنيم و جدول Design را انتخاب مي کنيم. SQL Server،Table Designer را باز مي کند.

2- دکمه Relation Ships را در نوار ابزار Table Designer کليک کرده SQL Serverکادر محاوره اي Table Designers Properties را با صفحه خصوصيات Relationships نشان داده شده باز مي کند.


3- New را کليک کرده SQL Server اولين جدول درليست جداول را براي ارتباط جديد درخواست مي کند.

4- Planttypes را به عنوان کليد اصلي جدول انتخاب مي کند.FK- Oils- Planttypes , SQL Server را به عنوان نام ارتباط پيشنهاد مي کند.

5- Planttypes ID را به عنوان فيلد کليد اصلي انتخاب مي کنيم.

6- Planttypes ID را به عنوان فيلد کليد خارجي انتخاب مي کنيم.

راهنمايي: اگر شما تنظيمات يا حذفيات انتشاري را براي ارتباط خواستار باشيد، آن را با انتخاب Check box ها در صفحه Property انجام مي دهيم.

7- Close را کليک کرده SQL Server کادر محاوره اي Properties را مي بندد.

8- دکمه Save را در نوار ابزار Table Designer کليک مي کنيم. SQL Server يک کادر محاوره اي را نشان مي دهد که از شما براي تأييد تغييرات که براي دو جدول از پايگاه داده تان ذخيره خواهد شد مي پرسد.

9- Yes را کليک کردهSQL Server ارتباط را ايجاد مي کند.

10- پنجره Table Designer را مي بنديم.

مديريت کردن ارتباطات
ارتباط بين جداول مي تواند به خوبي پايدار گردد اما مانند هر بخش ديگري از طرح پايگاه داده، آنها مي توانند در طي زمان تغيير يابند. Manager Enterpriseکنترل اين تغييرات را آسان مي سازد.

تغيير دادن ارتباطات
تغيير دادن يک ارتباط خيلي مرسوم نيست اما بعضي مواقع يک تغيير در ساختار يکی از جداول مورد نياز خواهد بود که شما می توانيد ستونهايی که در ارتباط درگير می باشند را به وسيله تغيير دادن ساده مشخصات در صفحه خصوصيات Relationships از کادر محاوره ه اي Table Propertiesتغيير دهيد.

تغيير دادن يک ارتباط
1- Table Designer را برای جدول Oils به وسيله کليک راست کردن نام جدول در قاب Detailsباز کرده Table Design را انتخاب می کنيم. Table Designer , SQL Serverرا باز مي کند.

2- دکمه Relationshipsدر نوار ابزارTable Designer را کليک مي کنيم. SQL Server کادر محاوره اي Table Designersرا با صحفه خصوصيات Relationships نشان داده شده باز مي کند.

3- اطمينان حاصل کنيد که FK-Oils-Planttypes در Combo Box انتخاب شده است.SQL Server مشخصاتي از ارتباطات را نشان مي دهد.

4- Plantpart ID را به عنوان فيلد کليد خارجي انتخاب مي کنيم.

5- Close را کليک کرده SQL Server کادر محاوره اي Properties را می بندد.

6- دکمه Save را در نوار ابزار Table Designer کليک می کنيم. SQL Server يک کادر محاوره ای را نشان مي دهد که از شما براي تأييد تغييراتي براي دو جدول که در پايگاه داده تان ذخيره خواهد شد سؤال مي کند.

7-Yes را کليک مي کنيم. SQL Serverارتباط را تغيير مي دهد.

8- پنجرهTable Designer را مي بنديم.

نگهداري ارتباطات
همان طوری که شما احتمالاً تا حال منتظر بوديد ارتباطات با استفاده از کادر محاوره اي Properties که شما براي ايجاد بر آنها استفاده کرده ايد نگهداري مي گردند.

تغيير نام يک ارتباط
1- Table Designer را براي جدول Oils به وسيله کليک راست کردن نام جدول در قاب Details باز مي کنيم. Design Tableرا انتخاب مي کنيم. SQL Server و Table Designer را باز می کند.

2- دکمه Relationships را کليک می کنيم. SQL Server کادر محاوره ای Table Designers Properties را با صفحه خصوصيات Relationships نشان داده شده باز می کند.

3- FK-Oils-Planttypes را در Combo Box ارتباطی انتخاب شده انتخاب می کنيم. SQL Server خصوصيات ارتباط را نشان می دهد.

4- متن را در فيلدRelation Ship Name انتخاب و Delete Me را تايپ می کنيم.

5- Close را کليک کرده SQL Server کادر محاوره ای Properties را می بندد.

6- دکمه Save را کليک کرده SQL Server يک کادر محاوره ای را نشان می دهد و از شما برای تأييد تغييرات برای دو جدول که در پايگاه داده تان ذخيره خواهد شد می پرسد.

7- Yes را کليک کرده SQL Server نام ارتباط را تغيير می دهد.

8- پنجره Table Designer را می بنديم.

حذف کردن يک ارتباط
1- Table Designer را برای جدول Oils با کليک راست کردن نام جدول در قاب Details باز می کنيم و Design Table را انتخاب می کنيم. SQL Server ، Table Designer را باز می کند.

2- دکمه Relation Ships را کليک می کنيم. SQL Server کادر محاوره ای Table Designers Properties را با صفحه خصوصيات Relationships نشان داده شده باز می کنيم.

3- Delete Me را در Combo Box ارتباطی انتخاب شده، انتخاب می کنيم. SQL Server خصوصيات ارتباطی را نشان می دهد.

4- Delete را کليک کرده SQL Server يک متنی که ازشما برای تأييد حذفيات سؤال می کند نشان می دهد.

5- Yes را کليک می کنيم.

6- Close را کليک کرده SQL Server کادر محاوره ای Properties را می بندد.

7- دکمه Save را کليک کرده SQL Server يک کادر محاوره ای را نشان می دهد که از شما برای تأييد تغييرات که برای دو جدول پايگاه داده تان ذخيره خواهد شد سؤال خواهد کرد.

8- Yes را کليک کرده SQL Server ارتباط را حذف می کند.

9- پنجره Table Designer را می بنديم.