همه اشیای اصلی اسکیمای PostgreSQL — ساختار، جدولها، نماها، ایندکسها، نوعها، هویت، روتینها، امنیت و همانندسازی — در یک مرجع فشرده.
PostgreSQL دادهها را در اشیای نامدار اسکیما ذخیره میکند. هر شیء یک وظیفه دارد: جدول ردیفها را نگه میدارد، ایندکس جستجوها را سریع میکند، روتین منطق را نگه میدارد. قبل از اینکه انتخاب کنید کدام را اضافه کنید، بدانید هر شیء چیست، و قیدها و سیاستها را قوانینی بدانید که دادهها را سالم نگه میدارند.
جدول مرجع · 45 مورد
اشیای پایگاه دادهExplained
45 of 45 rows
ساختار
یک کاتالوگ ایزوله از اسکیماها داخل یک کلاستر.
جدا کردن اپلیکیشنها یا محیطهایی که نباید داده مشترک داشته باشند.
یک فضاینام نامدار داخل پایگاه داده که اشیای مرتبط را گروهبندی میکند.
سازماندهی اشیا بر اساس قابلیت یا مالک و جلوگیری از تداخل نامها.
یک مکان نامدار روی دیسک که فایلهای جدول و ایندکس در آن قرار میگیرند.
هدایت جدولهای داغ به ذخیرهسازی سریع و نگهداشتن دادههای سرد روی دیسکهای ارزان.
تنظیمی که تعیین میکند نام شیء بدون پیشوند به کدام اسکیماها تفکیک شود.
هدایت نشست به اسکیمای درست تا پرسوجوها بتوانند از نامهای کوتاه استفاده کنند.
توضیحاتی که با دستور COMMENT ON روی هر شیء پایگاه داده ذخیره میشود.
مستندسازی جدولها و ستونها در جایی که نویسنده بعدی پرسوجو پیدایشان میکند.
جدولها و نماها
یک رابطه نامدار که ردیفها را در ستونهای نوعدار ذخیره میکند.
محل اصلی نگهداری دادههای پایدار.
جدولی که ردیفهایش در پایان نشست یا تراکنش از بین میروند.
نگهداری دادههای موقت یا مرحلهای که نباید از عمر اتصال بیشتر بمانند.
جدول والد که بر اساس کلید تعریفشده به پارتیشنهای فرزند تقسیم میشود.
قابلمدیریت نگهداشتن جدولهای بسیار بزرگ با پخش ردیفها بر اساس بازه یا فهرست میان پارتیشنها.
جدولی که ردیفهایش در سیستم بیرونی هستند و از طریق foreign data wrapper دسترسی میشوند.
پرسوجو از یک پایگاه داده یا فایل راهدور انگار که جدول محلی است.
یک پرسوجوی ذخیرهشده که بهصورت جدول مجازی ارائه میشود.
نمایش همان ردیفها از طریق فیلترها یا اتصالهای متفاوت.
نمای سادهای که INSERT، UPDATE و DELETE را به جدول پایه خود منتقل میکند.
ارائه بخشی فیلترشده یا اتصالیافته از جدول که قابلنوشتن میماند.
نمایی که مجموعه نتیجه آن روی دیسک نوشته میشود و در صورت نیاز تازهسازی میشود.
ذخیره موقت تجمیعها یا اتصالهای پرهزینه و خواندن سریع آنها.
تابعی که مجموعهای از ردیفها را برمیگرداند و همهجایی که جدول جایز باشد قابل استفاده است.
بسط یک مجموعه محاسبهشده درجا، همانطور که unnest یک آرایه را به ردیف تبدیل میکند.
ایندکسها
ایندکس درخت متوازن برای جستجوهای تساوی و بازهای.
سریعکردن WHERE، JOIN و ORDER BY روی ستونهای قابلمرتبسازی.
ایندکسی که مقادیر تکراری در کلیدش را رد میکند.
اعمال یکتایی روی یک ستون یا ترکیبی از ستونها.
ایندکسهای معکوس یا درخت جستجوی تعمیمیافته برای مقادیر غیر اسکالر.
ایندکسکردن آرایهها، JSONB، جستجوی متن کامل یا دادههای هندسی.
ایندکسی که فقط روی ردیفهای منطبق با شرط WHERE ساخته میشود.
ایندکسکردن زیرمجموعه داغ و رد کردن بقیه برای صرفهجویی در فضا.
نوعها و افزونهها
یک نوع تعریفشده توسط کاربر که مقادیرش از فهرست ثابتی از برچسبها میآیند.
محدودکردن یک ستون به مجموعه بسته مانند کدهای وضعیت.
یک نوع پایه بههمراه قید بررسی، نامگذاریشده برای استفاده مجدد بهعنوان نوع ستون.
اشتراکگذاری یک تعریف اعتبارسنجیشده، مثل متن غیرخالی، میان ستونهای زیاد.
مجموعه قواعدی که تعیین میکند رشتهها چگونه مقایسه و مرتب میشوند.
دریافت ترتیب درست برای بزرگی و کوچکی حروف، اعراب یا یک locale مشخص.
بسته نصبشدنی که به پایگاه داده تابع، نوع یا عملگر اضافه میکند.
بهکارگیری ابزارهای اثباتشده مانند PostGIS یا pg_trgm در یک قدم.
هویت و تولیدشدهها
یک شیء شمارنده مستقل که اعداد صحیح متوالی تولید میکند.
تغذیه کلید سریالی وقتی چند جدول یک مولد مشترک دارند.
ستون جدولی که طبق استاندارد SQL پشتیبان آن یک sequence داخلی است.
کلید اصلی با افزایش خودکار مدرن، ترجیحدادهشده بر SERIAL.
ستونی که مقدارش از ستونهای دیگر همان ردیف محاسبه میشود.
ذخیره یا نمایش یک مقدار مشتقشده بدون نوشتن دستی.
روتینها
بلوک نامدار SQL که یک مقدار یا ردیف برمیگرداند.
کپسولهکردن منطق قابل استفاده مجدد و فراخوانی آن داخل پرسوجوها.
بلوک نامداری که عملها را اجرا میکند و تراکنش خودش را کنترل میکند.
ETL چندمرحلهای که در آن روتین بهصورت داخلی commit یا rollback میکند.
روتینی که ردیفهای ورودی زیاد را از طریق توابع وضعیت و نهایی به یک مقدار میرساند.
تعریف کاهشهای سفارشی مانند میانگین وزنی.
نمادی که به یک یا چند تابع برای نوعهای عملوند خاص متصل است.
دادن سینتکس طبیعی به نوعهای خودتان مانند a + b یا @>.
مسیر تبدیل تعریفشده از یک نوع به نوع دیگر.
کنترل نحوه تغییر نوع مقادیر، از جمله اینکه کدام تبدیلها بهصورت ضمنی انجام شوند.
روتینی متصل به رخداد جدول که بهطور خودکار اجرا میشود.
حسابرسی، اعتبارسنجی یا آبشاریکردن تغییرات در INSERT، UPDATE یا DELETE.
تریگری که روی رخدادهای سطح پایگاه داده مانند فرمانهای DDL اجرا میشود.
ثبت، مسدودکردن یا حسابرسی تغییرات اسکیما در کل پایگاه داده.
پرسوجوی تجزیهشده و ذخیرهشده برای اجرای مکرر با پارامترهای مقید.
استفاده مجدد از یک تجزیه و برنامه در اجراهای متعدد همان پرسوجو.
دستهای که مجموعه نتیجه را برای بازیابی ردیفبهردیف باز نگه میدارد.
صفحهبندی نتایج بزرگ یا پیمایش ردیفها داخل یک روتین.
امنیت و قوانین
هویتی نامدار که امتیازها را در اختیار دارد؛ کاربر نقشی است که میتواند وارد شود.
گروهبندی مجوزها یکبار، سپس اعطای آنها به افراد، سرویسها یا نقشهای دیگر.
دستورهایی که امتیازهای اشیا را به نقشها میدهند یا آنها را پس میگیرند.
تعیین اینکه کدام نقش میتواند هر شیء را بخواند، بنویسد یا اجرا کند.
حقوق ذاتی سازنده برای تغییر یا حذف یک شیء، جدا از grantها.
نامبردن نقش مسئول چرخه حیات یک شیء.
دستور دائمی که بهطور خودکار روی اشیایی که نقش بعداً میسازد امتیاز میدهد.
پیشتنظیم حقوق تا جدولهای جدید بدون grant دستی برای نقش اپلیکیشن کار کنند.
قاعدهای که نوشتنهایی را که شرط تعریفشده را نقض کنند رد میکند.
اعمال تضمینهای NOT NULL، CHECK، UNIQUE، PRIMARY KEY و FOREIGN KEY.
قاعدهای برای هر نقش که ردیفهایی را که نشست نباید ببیند پنهان میکند.
جداسازی مستأجر یا دسترسی هر کاربر بدون بازنویسی پرسوجوهای اپلیکیشن.
نام مستعاری که یک نام را به شیئی در جای دیگر تفکیک میکند؛ بومی Oracle و SQL Server.
منتقلکردن چیدمان اسکیما؛ در PostgreSQL بهجای آن از search_path استفاده کنید.
تعریفی از اینکه کدام عملها برای بازبینی ثبت شوند، از طریق pgaudit یا ابزار فروشنده.
اثبات اینکه چه کسی چه چیزی را خواند یا تغییر داد، برای انطباق و بررسی.
دستوری که پرسوجوی ورودی را به فرمان دیگری بازنویسی میکند.
بازگردانی قدیمی نوشتنها؛ PostgreSQL امروز تریگرها یا نماهای قابلبهروزرسانی را ترجیح میدهد.
همانندسازی
تعریف سمت فرستنده از اینکه کدام جدولها و نوع تغییرات به replicaها جریان مییابند.
اعلام اینکه پایگاه داده چه چیزی به مشترکین همانندسازی منطقی ارائه میدهد.
گیرندهای که به یک publication وصل میشود و تغییراتش را روی جدولهای محلی اعمال میکند.
کشیدن تغییرات از یک پایگاه داده PostgreSQL دیگر به این یکی.
نشانهای که primary را وادار میکند WAL را نگه دارد تا وقتی مصرفکننده آن را بخواند.
تضمین اینکه یک standby یا مشترک بتواند بدون از دست دادن تغییرات ادامه دهد.