Schema در SQL Server چیست؟ آشنایی با روش های ایجاد اسکیما

Schema در SQL Server چیست؟ آشنایی با روش های ایجاد اسکیما

نوشته شده توسط: تیم فنی نیک آموز
تاریخ انتشار: ۲۷ اسفند ۱۴۰۲
آخرین بروزرسانی: ۰۶ فروردین ۱۴۰۳
زمان مطالعه: 10 دقیقه
۵
(۵)

Schema در SQL Server نظارت بر پایگاه داده را بهبود می‌بخشد و در کاهش ناسازگاری و مدیریت کارآمد اشیای دیتابیس مفید واقع می‌شود. به‌عنوان سیستم مدیریت پایگاه داده رابطه ای (RDBMS)، نرم‌افزار SQL Server به‌منظور مدیریت، سازماندهی و استخراج حجم وسیعی از داده، مورد استفاده قرار می‌گیرد و شما می‌توانید به‌واسطه اجرای دستور Insert و دستور آپدیت ، همچنین دستور Select و عبارت Where و سایر موارد، این امور را انجام دهید. در این مطلب، به بررسی چگونگی استفاده از اسکیما در SQL Server می‌پردازیم و آن را به زبان قابل درک شرح می‌دهیم. برای درک عمیق‌تر مفاهیم SQL Server ، پیشنهاد می‌کنیم آموزش جامع SQL Server را مطالعه کنید. علاوه‌بر این، برای یادگیری نحوه خودکارسازی تسک‌های تکرارشونده و تسریع فرآیندها، به مقاله اسکریپت های پرکاربرد SQL رجوع کرده و آن را مطالعه کنید.

دوره کوئری نویسی در SQL Server نیک آموز

Schema در SQL Server چیست؟

Schema در SQL Server نوعی کانتینر است که مجموعه‌‌هایی از اشیای منطقی پایگاه داده (Database) را گروه‌بندی می‌کند. ممکن است این اشیا انواع مختلفی از جدول، View، استور پروسیجر (Stored Procedures)، توابع، ایندکس‌ها و تریگرها باشند برای آشنایی بیشتر با این اجزا، پیشنهاد می‌شود مقاله بررسی نحوه ایجاد جدول و روش ایجاد View در SQL Server و همچنین، انواع ایندکس گذاری را مطالعه کنید. درحقیقت، می‌توان Schema را مانند راهی در نظر داشت که پایگاه‌های داده را به فولدرهای مشخصی سازماندهی می‌کند. وجود اسکیما در SQL Server ، به بهبود شفافیت و نگهداری دیتابیس‌ها، افزایش امنیت و جلوگیری از ناسازگاری‌های نام‌گذاری منجر می‌شود.

کاربرد Schema در SQL Server

در این بخش، چند مورد از کاربردهای رایج اسکیما در SQL Server بررسی می‌شوند.

  • اپلیکیشن‌های Multi-Tenant: اگر پایگاه داده به گونه‌ای است که به چند مشتری و سازمان خدمات ارائه می‌دهد، می‌توان از اسکیماهای جداگانه برای جداسازی داده‌های هر Tenant استفاده کرد. این اقدام، امنیت و حریم خصوصی داده‌ها را بهبود خواهد داد.
  • محیط‌های توسعه، تست و تولید: می‌توانید برای هر محیط (توسعه، تست، تولید) اسکیماهای جداگانه ایجاد کنید تا تغییرات توسعه به‌صورت ایزوله نگه‌داری شوند و از Conflict با داده‌های فرآیند تولید اجتناب شود.
  • جداسازی منطقی عملکردها: اگر پایگاه داده شما از قابلیت‌ها یا ماژول‌های مختلف پشتیبانی می‌کند، می‌توانید جداول، ویوها و رویه‌های مرتبط را برای سازماندهی بهتر در اسکیماهای جداگانه گروه‌بندی کنید.
  • داده‌های مخصوص اپلیکیشن: ممکن است اپلیکیشن‌های مختلفی با پایگاه داده تعامل داشته باشند. استفاده از اسکیماهای جداگانه برای داده‌های هر برنامه، کنترل دسترسی را تسهیل می‌دهد و خطر تغییرات تصادفی را کاهش خواهد داد.
  • کنترل دسترسی کاربر: با اختصاص دادن مجوز به انواع Schema در SQL Server ، می‌توانید براساس نیازها، به کاربران دسترسی‌هایی به مجموعه‌ای از اشیا پایگاه داده اعطا کنید.

در مجموع، به‌کارگیری Schema در SQL Server ، سازماندهی بهبودیافته، ایمن‌سازی و مدیریت کارآمدتر پایگاه داده را به‌همراه دارد. این موضوع به‌طور خاص، برای رسیدگی به ساختار داده‌های پیچیده یا کاربران متعدد صادق است.

مزایای ایجاد Schema در SQL Server

مزیت‌های استفاده از Schema در SQL Server عبارتند از:

  • گروه‌بندی منطقی اشیای دیتابیس، تسهیل درک و جابه‌جایی میان پایگاه داده
  • بهبود ساختاردهی و مدیریت شی‌های مختلف در اسکیماها
  • وجود دسترسی کنترل دانه دانه (Granular Access Control)
  • تسهیل مدیریت اشیا
  • قابلیت ایزوله‌سازی کاربران

حال این سؤال پیش می‌آید که ایجاد اسکیما در SQL Server به چه صورت است؟

روش های ایجاد Schema در SQL Server

در این بخش به تشریح اصلی‌ترین روش‌های ایجاد Schema در SQL Server می‌پردازیم.

ایجاد Schema با T-SQL

با فرض اینکه شما از قبل، نصب SSMS را انجام داده‌اید و به آن دسترسی دارید، SQL Server Management Studio را اجرا کنید. در این مطلب، از دیتابیس Northwind به‌منظور اجرای کوئری‌ها استفاده می‌شود.

فرض کنید می‌خواهیم منطق سفارش‌ها و مشتریان را از یکدیگر جدا کنیم تا سازماندهی آن‌ها به شکل بهبودیافته‌تری انجام شده و به‌طور کلی، امنیت بیشتری حاصل شود.

۱- ایجاد اسکیما

روش اول برای ایجاد Schema در SQL Server ، اجرای کوئری زیر است:

 

USE northwind;
GO
CREATE SCHEMA CustomerData;
GO
CREATE SCHEMA OrderData;

 

با اجرای کوئری فوق، یک اسکیما برای داده‌ها مشتریان و یکی برای داده‌ها سفارش‌ها ایجاد می‌شود. توجه کنید که برای جلوگیری از خطا یا مشکلات احتمالی، از جداساز GO به منظور اتمام Batch ها استفاده شده است.

برای آن که بررسی کنید آیا ساخت اسکیما در SQL Server به‌درستی انجام‌شده یا خیر، می‌توانید با اجرای کوئری زیر، لیست تمامی اسکیماهای موجود در دیتابیس Northwind را مشاهده کنید:

 

USE northwind;
SELECT * FROM sys.schemas;

 

پس از اجرای این کوئری، خروجی مشابه زیر مشاهده خواهید کرد.

 

ایجاد اسکیما

 

۲- انتقال جداول مربوطه به Schema ها

برای انتقال جداول مرتبط به Schema های ایجادشده، از دستور Alter Schema استفاده می‌شود. به کوئری زیر توجه کنید:

 

ALTER SCHEMA CustomerData TRANSFER dbo.Customers;
ALTER SCHEMA OrderData TRANSFER dbo.Orders;

 

توجه: اگر اسکیمای شما نام دیگر به‌غیر از dbo دارا است، آن را به جای dbo در کوئری فوق قرار دهید.

برای بررسی اینکه آیا جداول مربوطه به اسکیماها منتقل شده‌اند یا خیر، می‌توانید کوئری پایین را اجرا کنید.

 

SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'CustomerData' AND TABLE_NAME = 'Customers';

SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'OrderData' AND TABLE_NAME = 'Orders';

 

انتقال جداول مربوطه به Schema ها

 

ایجاد Schema با SSMS

روش دوم برای ایجاد Schema در SQL Server ، استفاده از رابط گرافیکی است که در این بخش بررسی خواهد شد.

  1. در ابتدا لازم است SMSS را روی سیستم اجرا کرده و به نمونه SQL Server خود Connect شوید.

 

ایجاد Schema با SSMS

 

  1. از بخش Object Explorer، روی فولدر Databases کلیک کرده و سپس، آن دیتابیسی که می‌خواهید برای آن اسکیما ایجاد کنید را انتخاب نمایید.

 

ایجاد Schema با SSMS

 

  1. روی فولدر Security از پایگاه داده مدنظر کلیک راست کنید، گزینه New و سپس گزینه Schema را از منو انتخاب کنید.

 

ایجاد Schema با SSMS

 

  1. در پنجره Schema – New، یک فیلد متنی برای نام اسکیما در SQL Server و یک فیلد برای تعیین مالک اسکیما (Schema Owner) قرار دارد. در بخش Schema name، نام اسکیمای موردنظر خود را وارد کنید. توجه کنید که وارد کردن Schema Owner انتخابی است. ضمن اینکه در این بخش امکان جستجوی کاربران یا Role ها ازطریق دکمه Search وجود دارد.

 

ایجاد Schema با SSMS

 

فرض کنید بخواهیم یک اسکیما تحت عنوان OrderSchema ایجاد کنیم. این نام را در بخش Schema Name وارد کرده و روی دکمه OK کلیک کنید.

 

ایجاد Schema با SSMS

 

  1. اکنون می‌خواهیم بررسی کنیم آیا Schema موردنظر به‌درستی در پایگاه داده ایجاد شده است یا خیر. برای این کار، کوئری زیر را اجرا کنید:

 

SELECT * FROM sys.schemas;

 

همان‌طور که در تصویر مشاهده می‌کنید، Schema مدنظر با نام OrderSchema و ازطریق SSMS ایجاد شده است.

 

ایجاد Schema با SSMS

 

نکته حائز اهمیت این است که برای ساخت Schema در SQL Server ، دارا بودن پرمیشن Create Schema روی آن دیتابیس ضروری است.

تغییر Schema در SQL Server

برای تغییر Schema در SQL Server ، دو راه پیش روی شما قرار دارد که در ادامه به آن‌ها می‌پردازیم. اما پیش از آن، توصیه می‌شود ویدئو Schema Binding و تاثیر آن بر کارایی Functionهای SQL Server را نیز مشاهده کنید تا شناخت بهتری از مفاهیم پراهمیت مربوط به اسکیما به‌دست آورید.

روش اول: استفاده از عبارات T-SQL

فرض کنید می‌خواهیم دو اسکیمای ایجادشده در بخش پیشین را تغییر دهیم. در چنین شرایطی مراحل زیر را دنبال کنید.

  • ساخت اسکیماهای جدید: با اجرای کوئری زیر، Schema هایی با نام‌های جدید ایجاد کنید:

 

CREATE SCHEMA NewCustomerData;
Go
CREATE SCHEMA NewOrderData;

 

  • انتقال جداول به اسکیماهای جدید: برای انتقال جدول‌ها، کوئری زیر را Run کنید:

 

ALTER SCHEMA NewCustomerData TRANSFER dbo.Customers;
ALTER SCHEMA NewOrderData TRANSFER dbo.Orders;

 

به این ترتیب، شما به تغییر اسکیما در SQL Server پرداختید.

 روش دوم: استفاده از SSMS

شما می‌توانید مشابه ساختن Schema در SQL Server ازطریق SSMS، برای ویرایش آن‌ها اقدام کنید. با دنبال کردن مراحل زیر، می‌توانید اسکیماها را تغییر دهید.

  • یافتن جدول موردنظر: از بخش Object Explorer، پایگاه داده‌ای را انتخاب کنید که قصد تغییر اسکیمای آن را دارید. سپس، روی فولدر Tables از دیتابیس کلیک کنید تا Expand شود.

 

Schema در SQL Server

 

  • دسترسی به Properties جدول: روی جدول مربوطه کلیک راست کرده و گزینه Design را انتخاب کنید.

 

Schema در SQL Server

 

  • تغییر مالکیت اسکیما در SQL Server : پس از ورود به پنجره Design، پنجره Properties را در سمت راست صفحه نمایش پیدا کنید. اگر این پنل در سمت راست صفحه نیست، لازم است دکمه F4 را فشار دهید تا Properties روی صفحه نمایش نمایان شود.

 

Schema در SQL Server

 

  • انتخاب یک اسکیمای جدید: روی منوی Dropdown کنار Schema کلیک کرده و اسکیمای جدید موردنظر خود را از آن انتخاب کنید.

 

Schema در SQL Server

 

  • ذخیره‌سازی تغییرات: زمانی که اسکیمای جدید را انتخاب کردید، می‌توانید پنجره Properties را ببندید. با استفاده از Ctrl+S ، تغییرات را ذخیره‌سازی کنید.
  • توجه به ملاحظات جانبی: باید به این موضوع توجه کرد که ممکن است تغییر مالکیت یک اسکیما در SQL Server ، آپدیت اشیایی را نیاز داشته باشد که به جدول ارجاع داده شده باشند. علاوه‌بر این، پیشنهاد می‌شود پیش از پیاده‌سازی چنین تغییراتی در محیط محصول، آن‌ها را در محیط توسعه تست کنید.

حذف Schema در SQL Server

حذف Schema در SQL Server به‌صورت مستقیم امکان‌پذیر نیست و شما باید اسکیمای موردنظر را با استفاده از عبارت T-SQL ، اصطلاحاً دراپ (Drop) کنید. به‌منظور حذف اسکیما ، اقدامات زیر را انجام دهید:

  1. اطمینان از خالی بودن اسکیما: تنها در شرایطی می‌توان اسکیما را حذف کرد که در آن هیچ اشیایی، مانند جدول، ویو، استور پروسیجر و سایر موارد وجود نداشته باشد. بنابراین، شما باید اشیا موجود در اسکیما را ازطریق یکی از روش‌های زیر حذف کنید:
  • حذف دستی اشیا: روی هر شی کلیک راست کرده و گزینه Delete را انتخاب کنید.
  • حذف مبتنی‌بر اسکریپت: براساس نوع شی، می‌توان با استفاده عبارات Drop Table ،Drop View و… شی‌ها را حذف کرد.
  1. استفاده از عبارت DROP SCHEMA: پس از اطمینان از خالی بودن اسکیما، یک پنجره Query جدید در SSMS باز کرده و با کمک ساختار زیر آن را Drop کنید:

 

DROP SCHEMA [schema_name]

 

قسمت [schema_name] را با نام اصلی اسکیمای خود جایگزین کنید.

  1. بررسی اشیای فعلی (انتخابی): اگر خیالتان از وجود اسکیما راحت نیست، می‌توانید از عبارت IF EXIST استفاده کنید تا از خطاهای احتمالی جلوگیری شود.
DROP SCHEMA IF EXISTS [schema_name];

 

توجه کنید که باید مجوزهای لازم برای Drop کردن اسکیما در SQL Server را داشته باشید. این موضوع ازطریق CONTROL در اسکیما یا ALTER ANY SCHEMA روی دیتابیس امکان‌پذیر است. علاوه‌بر این، دقت کنید که با حذف اسکیما ازطریق Drop، بازگشت از این عمل ممکن نیست. به همین دلیل، بهتر است دراپ را در محیطی غیر از محیط محصول اعمال کنید تا آسیبی به دیتابیس اصلی وارد نشود.

نحوه مشاهده Schema در SQL Server

برای مشاهده Schema در SQL Server ، از ساختار کلی زیر استفاده کنید:

 

SELECT name
FROM sys.schemas;

 

اگر می‌خواهید این بخش را به‌همراه مثال قابل درک متوجه شوید، مقاله لیست Schema های موجود در یک دیتابیس و همچنین، مقاله لیست Schema های ایجاد شده توسط کاربر در یک دیتابیس می‌توانند برایتان مفید باشند.

سخن پایانی: چرا اسکیما در SQL Server پراهمیت است؟

به‌واسطه وجود اسکیما در SQL Server ، امکان مدیریت شی‌های پایگاه داده، از جدول گرفته تا استور پروسیجرها، وجود دارد. در عمل، Schema با گروه‌بندی اشیا براساس کارکرد یا مالکیت، سازماندهی دیتابیس را بهبود می‌بخشد و درک ساختار پایگاه داده را ساده‌سازی می‌کند. ضمن اینکه با کمک آن، به نوعی امنیت و همچنین، کنترل دسترسی به دیتابیس SQL Server تضمین می‌شود. در این مقاله، به بررسی نحوه ایجاد، تغییر و حذف اسکیما در SQL Server پرداخته شد تا شما بتوانید از آن به‌عنوان راهنمای قابل درک بهره‌مند شوید.

چه رتبه ای می‌دهید؟

میانگین ۵ / ۵. از مجموع ۵

اولین نفر باش

title sign
دانلود مقاله
Schema در SQL Server چیست؟ آشنایی با روش های ایجاد اسکیما
فرمت PDF
12 صفحه
حجم 3 مگابایت
دانلود مقاله
title sign
معرفی نویسنده
تیم فنی نیک آموز
مقالات
402 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
تیم فنی نیک آموز
title sign
دیدگاه کاربران