Schema پایگاه داده در SQL Server

در این بخش مفاهیم و نحوه کار با Schema شامل نحوه ایجاد آن از طریق T-SQL و SSMS، همچنین نحوه تغییر و حدف Schema توضیح داده می شود.

Schema پایگاه داده در  SQL Server

Schema پایگاه داده در SQL Server

در SQL Server مفهوم schema مجموعه ای منطقی از اشیاء پایگاه داده مانند جداول ، views ، stored procedures ، indexes ، triggers و توابع است. می توان آن را به عنوان یک ظرف در نظر گرفت که توسط یک کاربر پایگاه داده ایجاد شده است. کاربر پایگاه داده ای که یک schema ایجاد می کند، مالک schema است.

به عبارت دیگر، Schema ظرف یا Container ای است که کلیه اشیاء یک بانک اطلاعاتی را در برمی گیرد. هدف استفاده از Schema، قرار گرفتن اشیاء مختلف بانک اطلاعاتی درون آن است، در واقع به وسیله Schema می توانیم، اشیاء مختلف بانک اطلاعاتی را دسته بندی کنیم.

به نکات زیر را در رابطه با Schema توجه کنید:

1- یک schema می تواند تنها به یک پایگاه داده تعلق داشته باشد در حالی که یک پایگاه داده می تواند یک یا چند schema داشته باشد.

2- هیچ محدودیتی برای تعداد اشیاء در یک schema وجود ندارد.

3- SQL Server چند schema داخلی مانند dbo ، guest ، sys و غیره را در اختیار ما قرار می دهد.

4- schema پایگاه داده می تواند متعلق به پایگاه داده یا برنامه همراه با کاربر پایگاه داده باشد. به آنها صاحبان schema می گویند.

5- dbo در واقع schema پیش فرض یک پایگاه داده جدیدی است که تازه ایجاد شده است.

6- مالکیت schema می تواند از یک کاربر به کاربر دیگر در همان پایگاه داده منتقل شود.

7- یک کاربر پایگاه داده می تواند بدون حذف اشیاء پایگاه داده متعلق به کاربر حذف شود. اما اگر این schema دارای اشیاء پایگاه داده باشد، نمی توان آن را حذف کرد.

ایجاد schema با استفاده از T-SQL

یک schema را می توان با استفاده از T-SQL ایجاد کرد.

ایجاد schema با استفاده از T-SQL

در سینتکس بالا، schema_name نام schema ای است که می خواهید ایجاد کنید. به صورت اختیاری، می توانید مالک schema را به عنوان AUTHORIZATION owner_name تعیین کنید.

آنچه که در ادامه می بینید یک schema جدید به نام hrdbo ایجاد می کند و کاربر پیش فرض dbo مالک schema خواهد بود.

Schema پایگاه داده در  SQL Server

آنچه که در زیر می بینید یک schema جدید به نام hrdbo با کاربر Steve به عنوان مالک schema ایجاد می کند.

آموزش SQL Server

آنچه که در بالا می بینید یک طرح hrdbo جدید ایجاد می کند. همانطور که در زیر نشان داده شده است می توانید این را در SSMS در پوشه Security -> Schemas مشاهده کنید.

ایجاد یک schema

پس از ایجاد یک schema، می توانید اشیایی را تحت نظارت این schema ایجاد کنید و به کاربران دیگر مجوز بدهید.

به عنوان مثال، شکل زیر یک جدول جدید تحت نظارت hrdbo schema ایجاد می کند.

مفاهیم و نحوه کار با Schema

موارد بالا یک جدول جدید به نام Consultant در hrdbo schema ایجاد می کند، همانطور که در زیر نشان داده شده است.

مفاهیم و نحوه کار با Schema

تغییر schema

از دستور ALTER SCHEMA برای انتقال اشیاء پایگاه داده از یک schema به یک schema دیگر در یک پایگاه داده استفاده کنید.

تغییر schema

در سینتکس ALTER SCHEMA بالا:

1- schema_name نام schema ای در پایگاه داده فعلی است که قابلیت ایمن سازی (جدول، view ، stored procedure و غیره) به آن منتقل می شود.

2- entity_type می تواند Object ، Type یا XML Schema Collection باشد.

3- securable_name نام شی db (جدول، view، stored procedure و غیره) است که باید به اسکیمای schema_name مشخص شده منتقل شود.

شکل زیر جدول Employee را از dbo schema پیش فرض به schema hrdbo منتقل می کند.

تغییر schema

آنچه که در زیر می بینید جدول hrdbo.Employee را نشان می دهد.

تغییر schema

توجه : می توانید از دستور ALTER AUTHORIZATION برای تغییر مالک schema مانند شکل زیر استفاده کنید:

تغییر schema

حذف یک schema

DROP SCHEMA یک schema را از دیتابیبس حذف می کند. یک schema که در حال حذف شدن است نباید حاوی هیچ شی پایگاه داده باشد. اگر schema حاوی اشیاء باشد، دستور DROP با شکست مواجه می شود.

حذف یک schema

عبارت زیر hrdbo schema را حذف می کند که هیچ شیئی در آن schema وجود ندارد.

حذف یک schema

ایجاد schema با استفاده از SSMS

یک schema می تواند در ابزار SSMS نیز ایجاد شود.

مرحله 1 : SSMS را باز کنید و به پایگاه داده متصل شوید.

مرحله 2 : در Object Explorer، پوشه Databases را باز کنید و نمونه پایگاه داده را که می خواهید در آن schema جدید ایجاد شود، باز کنید.

مرحله 3 : مطابق شکل زیر بر روی پوشه Security کلیک راست کرده و New -> Schema را انتخاب کنید.

ایجاد schema با استفاده از  SSMS

با این کار کادر محاوره ای Schema New مانند زیر باز می شود. در تب General، مانند شکل زیر، نام schema و مالک schema جدید را وارد کنید.

Schema Owner می تواند نام کاربر پایگاه داده یا نقشی باشد که مالک schema خواهد بود. یا برای انتخاب کاربر/نقش (User/Role)، روی دکمه Search کلیک کنید.

ایجاد schema با استفاده از SSMS

در کادر محاوره ای Search Roles یا User ، روی دکمه Browse کلیک کنید و کاربری را که می خواهید به عنوان مالک schema باشد، انتخاب کنید. Ok را کلیک کنید.

Schema in SQL Server

مرحله 4 : روی صفحه Permissions کلیک کنید تا لیستی از همه موارد امن و مجوزهایی را که می توان به آن اعطا کرد، مطابق شکل زیر مشاهده کنید.

نحوه کار Schema

مرحله 5 : در تب Extended Properties، می توانید ویژگی های سفارشی شده (customized properties) را برای ذخیره اطلاعات اضافی اضافه کنید. هر extended property دارای یک نام و مقدار تعریف شده توسط کاربر است. همانطور که در زیر نشان داده شده است این برای افزودن نظرات برای یک شی پایگاه داده استفاده می شود.

Schema in SQL Server

Extended properties را می توان برای ذخیره اطلاعات version ، یا tooltips برای رابط های کاربر (interfaces)، اطلاعات lineage ، توضیحات ستون ها و بسیاری موارد دیگر مورد استفاده قرار داد.

مرحله 6 : برای ایجادschema و ذخیره آن روی OK کلیک کنید.

مرحله 7 : تب Database instance را ریفرش کنید. schema جدید مطابق شکل زیر در پوشه Security -> Schema ایجاد می شود.

Schema in SQL Server

بنابراین، می توانید schema های پایگاه داده را با استفاده از T-SQL و SSMS ایجاد، ویرایش و حذف کنید.

Schema in SQL Server تغییر Schema حذف Schema ایجاد Schema با استفاده از T-SQL ایجاد Schema با استفاده از SSMS آموزش SQL Server