ایجاد پایگاه داده یکی از اولین و مهمترین قدمها در مدیریت دادهها است. در PostgreSQL، برای ساخت یک پایگاه داده جدید از دستور `CREATE DATABASE` استفاده میشود. این دستور دارای گزینههای متعددی است که به شما امکان میدهد پایگاه دادهای با تنظیمات دلخواه خود ایجاد کنید.
CREATE DATABASE name [ [ WITH ] [ OWNER [=] user_name ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] [ LC_COLLATE [=] lc_collate ] [ LC_CTYPE [=] lc_ctype ] [ TABLESPACE [=] tablespace ] [ CONNECTION LIMIT [=] connlimit ] [ IS_TEMPLATE [=] boolean ] ];
برای ایجاد یک پایگاه داده ساده، فقط کافی است نام آن را مشخص کنید:
CREATE DATABASE my_db;
اما اگر بخواهید ویژگیهای خاصی برای پایگاه داده خود تعریف کنید، میتوانید از گزینههای اختیاری استفاده کنید. در ادامه، مهمترین این گزینهها را بررسی میکنیم.
۱- تعیین مالک (OWNER)
با استفاده از این گزینه میتوانید مشخص کنید که چه کاربری مالک پایگاه داده باشد. اگر این مقدار تعیین نشود، بهطور پیشفرض کاربری که دستور را اجرا میکند، مالک خواهد بود.
CREATE DATABASE my_db WITH OWNER = myuser;
ویژگیهای مالک پایگاه داده:
۲- استفاده از قالب (TEMPLATE)
با این گزینه میتوانید پایگاه داده خود را از روی یک پایگاه داده دیگر (الگو) ایجاد کنید. در این حالت، تمامی جداول، دادهها و تنظیمات پایگاه دادهی الگو به پایگاه داده جدید منتقل میشود.
CREATE DATABASE my_db2 WITH TEMPLATE = my_template;
نکته: پایگاه دادهای که به عنوان الگو استفاده میشود، نباید دارای سشن فعال باشد.
۳- تعیین کدگذاری (ENCODING)
با این گزینه میتوانید مشخص کنید که پایگاه داده از چه نوع کدگذاری استفاده کند. توصیه میشود مقدار `UTF8` را انتخاب کنید، زیرا از اکثر زبانها پشتیبانی میکند.
CREATE DATABASE mydb WITH ENCODING = 'UTF8';
۴- تعیین نحوه مرتبسازی رشتهها (LC_COLLATE)
این گزینه تعیین میکند که ترتیب مرتبسازی رشتهها (مانند `ORDER BY`) چگونه انجام شود.
CREATE DATABASE my_db WITH LC_COLLATE = 'en_US.UTF-8';
نکته: بعد از ایجاد پایگاه داده، امکان تغییر این مقدار وجود ندارد.
۵- تعیین دستهبندی کاراکترها (LC_CTYPE)
با این گزینه میتوانید نحوه دستهبندی کاراکترها (مانند تبدیل به حروف بزرگ و کوچک) را مشخص کنید.
CREATE DATABASE my_db WITH LC_CTYPE = 'en_US.UTF-8';
نکته: مقدار `LC_CTYPE` و `LC_COLLATE` باید از یک زبان و منطقه باشند تا از مشکلات احتمالی جلوگیری شود.
۶- تعیین محل ذخیرهسازی دادهها (TABLESPACE)
با استفاده از این گزینه میتوانید محل ذخیرهسازی دادههای پایگاه داده را تعیین کنید. اگر بخواهید از فضای ذخیرهسازی غیر از پیشفرض (`pg_default`) استفاده کنید، ابتدا باید یک `TABLESPACE` ایجاد کنید:
CREATE TABLESPACE my_tablespace LOCATION '/path/to/my/tablespace';
و سپس پایگاه داده را در این فضای ذخیرهسازی ایجاد کنید:
CREATE DATABASE my_db WITH TABLESPACE = my_tablespace;
۷- محدودیت تعداد اتصالات (CONNECTION LIMIT)
با این گزینه میتوانید تعداد اتصالات همزمان مجاز به پایگاه داده را محدود کنید. مقدار پیشفرض `-1` است که به معنای نامحدود بودن تعداد اتصالات است.
CREATE DATABASE my_db WITH CONNECTION LIMIT = 100;
۸- تعریف پایگاه داده به عنوان الگو (IS_TEMPLATE)
اگر بخواهید یک پایگاه داده را به عنوان الگو برای ایجاد پایگاه دادههای دیگر تعریف کنید، از این گزینه استفاده کنید. در صورتی که مقدار `TRUE` باشد، پایگاه داده قابل حذف (`DROP`) نخواهد بود.
CREATE DATABASE my_template WITH IS_TEMPLATE = TRUE;
دستور `CREATE DATABASE` در PostgreSQL امکانات زیادی برای سفارشیسازی پایگاه داده دارد. بسته به نیاز خود میتوانید از گزینههایی مانند تعیین مالک، استفاده از قالب، تعیین کدگذاری، محل ذخیرهسازی دادهها و ... استفاده کنید. با استفاده صحیح از این دستورات، میتوانید پایگاه دادههایی بهینه و کارآمد ایجاد کنید.