כל אובייקטי הסכימה המרכזיים של PostgreSQL — מבנה, טבלאות, תצוגות, אינדקסים, טיפוסים, זהות, שגרות, אבטחה ושכפול — במדריך ייחוס צפוף אחד.
PostgreSQL שומר נתונים באובייקטי סכימה בעלי שם. לכל אובייקט תפקיד אחד: טבלה מחזיקה שורות, אינדקס מאיץ חיפושים, שגרה מחזיקה לוגיקה. דעו מהו כל אובייקט לפני שבוחרים איזה להוסיף, והתייחסו לאילוצים ולמדיניות כאל הכללים ששומרים על הנתונים אמינים.
טבלת עיון · 45 ערכים
אובייקטי מסד נתוניםExplained
45 of 45 rows
מבנה
קטלוג מבודד אחד של סכימות בתוך אשכול.
הפרדת אפליקציות או סביבות שלא אמורות לשתף נתונים.
מרחב שמות בעל שם בתוך מסד נתונים, שמקבץ אובייקטים קשורים.
ארגון אובייקטים לפי תכונה או בעלים ומניעת התנגשויות שמות.
מיקום בעל שם על הדיסק שבו ממוקמים קובצי טבלאות ואינדקסים.
הפניית טבלאות חמות לאחסון מהיר והשארת נתונים קרים על דיסקים זולים.
ההגדרה שקובעת לאילו סכימות ייפתר שם אובייקט לא מקושר.
הפניית ההתחברות לסכימה הנכונה כדי ששאילתות יוכלו להשתמש בשמות קצרים.
תיאור הנשמר על כל אובייקט מסד נתונים באמצעות COMMENT ON.
תיעוד טבלאות ועמודות במקום שבו הכותב הבא של השאילתה ימצא אותם.
טבלאות ותצוגות
יחסה (relation) בעלת שם ששומרת שורות בעמודות עם טיפוס מוגדר.
המכל הראשי לנתונים קבועים.
טבלה ששורותיה נעלמות בסוף ההתחברות או הטרנזקציה.
החזקת נתוני טיוטה או ביניים שלא אמורים לחיות מעבר לחיבור.
טבלת אב המחולקת לפרטישנים-בנים לפי מפתח מוגדר.
שמירה על טבלאות ענק נוחות לניהול בחלוקת שורות לפי טווחים או רשימות.
טבלה ששורותיה חיות במערכת חיצונית, הנגישה דרך foreign data wrapper.
תשאול מסד נתונים מרוחק או קובץ כאילו היו טבלה מקומית.
שאילתה שמורה הנחשפת כטבלה וירטואלית.
הצגת אותן שורות דרך מסננים או joinים שונים.
תצוגה פשוטה שמעבירה INSERT, UPDATE ו-DELETE לטבלת הבסיס שלה.
חשיפת פרוסה מסוננת או מחוברת של טבלה שנשארת ניתנת לכתיבה.
תצוגה שערכת התוצאות שלה נכתבת לדיסק ומרעננת לפי דרישה.
שמירת aggregateים או joinים יקרים במטמון וקריאתם המהירה.
פונקציה שמחזירה ערכת שורות הניתנת לשימוש בכל מקום שטבלה מתאימה בו.
הרחבת ערכה מחושבת במקום, כמו ש-unnest הופך מערך לשורות.
אינדקסים
אינדקס עץ מאוזן לחיפושי שוויון וטווח.
האצת WHERE, JOIN ו-ORDER BY על עמודות הניתנות למיון.
אינדקס שדוחה ערכים כפולים במפתח שלו.
אכיפת ייחודיות על עמודה או שילוב עמודות.
אינדקסים הפוכים או עצי חיפוש מוכללים לערכים שאינם סקלריים.
אינדוקס מערכים, JSONB, חיפוש טקסט מלא או נתונים גיאומטריים.
אינדקס שנבנה רק על שורות העונות לתנאי WHERE.
אינדוקס תת-הקבוצה החמה ודילוג על השאר לחיסכון במקום.
טיפוסים והרחבות
טיפוס מוגדר-משתמש שערכיו מגיעים מרשימת תוויות קבועה.
הגבלת עמודה לקבוצה סגורה כמו קודי מצב.
טיפוס בסיס ועליו אילוץ בדיקה, בעל שם לשימוש חוזר כטיפוס עמודה.
שיתוף הגדרה מאומתת אחת, כמו טקסט לא ריק, בין עמודות רבות.
ערכת כללים שמגדירה כיצד מחרוזות מושוות וממוינות.
קבלת סדר נכון לרישיות, ניקוד או locale ספציפי.
חבילה הניתנת להתקנה שמוסיפה פונקציות, טיפוסים או אופרטורים למסד נתונים.
אימוץ כלים מוכחים כמו PostGIS או pg_trgm בצעד אחד.
זהות ועמודות מחושבות
אובייקט מונה עצמאי שמנפיק מספרים שלמים עוקבים.
הזנת מפתח סידורי כשכמה טבלאות חולקות מחולל אחד.
עמודת טבלה הנשענת על sequence פנימי, לפי תקן SQL.
מפתח ראשי עם הגדלה אוטומטית מודרני, מועדף על פני SERIAL.
עמודה שערכה מחושב מעמודות אחרות באותה שורה.
אחסון או חשיפת ערך נגזר בלי כתיבה ידנית.
שגרות
בלוק SQL בעל שם שמחזיר ערך או שורות.
כימוס לוגיקה לשימוש חוזר וקריאה לה מתוך שאילתות.
בלוק בעל שם שמריץ פעולות ושולט בטרנזקציה של עצמו.
ETL רב-שלבי שבו השגרה מבצעת commit או rollback בפנים.
שגרה שמקפלת שורות קלט רבות לערך אחד באמצעות פונקציות מצב וסיום.
הגדרת צמצומים מותאמים אישית כמו ממוצע משוקלל.
סימן הקשור לפונקציה אחת או יותר עבור טיפוסי אופרנד ספציפיים.
מתן תחביר טבעי לטיפוסים שלכם כמו a + b או @>.
נתיב המרה מוצהר מטיפוס אחד לאחר.
שליטה באופן שבו ערכים מחליפים טיפוס, לרבות אילו המרות קורות במרומז.
שגרה הקשורה לאירוע טבלה שמופעלת אוטומטית.
ביקורת, אימות או הפצה של שינויים ב-INSERT, UPDATE או DELETE.
טריגר שמופעל באירועים ברמת מסד הנתונים כמו פקודות DDL.
תיעוד, חסימה או ביקורת של שינויי סכימה בכל המסד.
שאילתה מפורסת ושמורה לביצוע חוזר עם פרמטרים קשורים.
שימוש חוזר בפרסום ובתוכנית אחד לאורך הרצות רבות של אותה שאילתה.
נקודת אחיזה שמחזיקה ערכת תוצאות פתוחה לשליפה שורה-שורה.
דפדוף בתוצאות גדולות או מעבר על שורות בתוך שגרה.
אבטחה וכללים
זהות בעלת שם שמחזיקה הרשאות; משתמש הוא role שיכול להתחבר.
קיבוץ הרשאות פעם אחת, ואז הענקתן לאנשים, לשירותים או ל-roleים אחרים.
פקודות שמקצות הרשאות על אובייקטים ל-roleים, או מסירות אותן.
החלטה איזה role יכול לקרוא, לכתוב או להריץ כל אובייקט.
הזכויות המובנות של היוצר לשנות או למחוק אובייקט, בנפרד מהרשאות.
ציון ה-role האחראי למחזור החיים של אובייקט.
הוראה קבועה שמעניקה אוטומטית הרשאות על אובייקטים ש-role ייצור בעתיד.
הגדרה מראש של זכויות כך שטבלאות חדשות לא יצטרכו הענקות ידניות ל-role של האפליקציה.
כלל שדוחה כתיבה המפרה תנאי מוצהר.
אכיפת הערבויות של NOT NULL, CHECK, UNIQUE, PRIMARY KEY ו-FOREIGN KEY.
כלל לכל role שמסתיר שורות שההתחברות לא אמורה לראות.
בידוד דיירים או הרשאות פר-משתמש בלי לכתוב מחדש שאילתות אפליקציה.
כינוי שמפנה שם אחד לאובייקט במקום אחר; מקורי ב-Oracle וב-SQL Server.
העברת תצורות סכימה; ב-PostgreSQL השתמשו ב-search_path במקום.
הגדרה אילו פעולות נרשמות לביקורת, דרך pgaudit או כלי ספק.
הוכחה מי קרא או שינה מה, לצורכי תאימות וחקירה.
הוראה שכותבת מחדש שאילתה נכנסת לפקודה אחרת.
הפניית כתיבות מדור קודם; PostgreSQL מעדיף כיום טריגרים או תצוגות הניתנות לעדכון.
שכפול
הגדרה בצד השולח אילו טבלאות וסוגי שינויים זורמים לעותקים.
הצהרה מה מסד הנתונים מציע למנויי שכפול לוגי.
מקלט שמתחבר ל-publication ומחיל את השינויים שלה על טבלאות מקומיות.
משיכת שינויים ממסד נתוני PostgreSQL אחד לזה.
סמן שגורם ל-primary להחזיק WAL עד שצרכן יקרא אותו.
הבטחה ש-standby או מנוי יוכלו להמשיך בלי לאבד שינויים.