Skip to content

อ็อบเจกต์ของฐานข้อมูล อธิบาย

อ็อบเจกต์หลักทุกชนิดของ schema ใน PostgreSQL — โครงสร้าง, ตาราง, วิว, อินเด็กซ์, ประเภทข้อมูล, ตัวสร้างรหัส, รูทีน, ความปลอดภัย และการจำลองข้อมูล — รวมไว้ในตารางอ้างอิงเดียวที่กระชับ

PostgreSQL เก็บข้อมูลในอ็อบเจกต์ของ schema ที่มีชื่อกำกับ อ็อบเจกต์แต่ละชนิดมีหน้าที่เดียว: ตารางเก็บแถว อินเด็กซ์เร่งการค้นหา รูทีนเก็บโลจิก รู้จักอ็อบเจกต์แต่ละชนิดให้ชัดก่อนเลือกเพิ่ม และถือว่า constraint กับ policy คือกฎที่ทำให้ข้อมูลซื่อตรง

ตารางอ้างอิง · 45 รายการ
45 of 45 rows
โครงสร้าง
แคตตาล็อกเดี่ยวที่แยกกันโดยสมบูรณ์ บรรจุ schema ทั้งหมดภายในคลัสเตอร์แยกแอปพลิเคชันหรือสภาพแวดล้อมที่ต้องไม่แชร์ข้อมูลกัน
เนมสเปซที่มีชื่อภายในฐานข้อมูล ใช้รวมกลุ่มอ็อบเจกต์ที่เกี่ยวข้องกันจัดระเบียบอ็อบเจกต์ตามฟีเจอร์หรือเจ้าของ และเลี่ยงการชนกันของชื่อ
ตำแหน่งบนดิสก์ที่ตั้งชื่อไว้ ใช้วางไฟล์ของตารางและอินเด็กซ์ส่งตารางที่ใช้งานหนักไปยังพื้นที่เก็บที่เร็ว และเก็บข้อมูลเย็นไว้บนดิสก์ราคาถูก
การตั้งค่าที่กำหนดว่าชื่ออ็อบเจกต์ที่ไม่ระบุ schema จะไปตรงกับ schema ใดชี้เซสชันไปที่ schema ที่ถูกต้อง เพื่อให้คิวรีใช้ชื่อแบบสั้นได้
คำอธิบายที่เก็บบนอ็อบเจกต์ใดก็ได้ของฐานข้อมูล ด้วย COMMENT ONเขียนกำกับตารางและคอลัมน์ไว้ในที่ที่ผู้เขียนคิวรีคนถัดไปจะเจอ
ตารางและวิว
ริเลชันที่มีชื่อ ซึ่งเก็บแถวในคอลัมน์ที่กำหนดประเภทไว้ที่เก็บหลักของข้อมูลถาวร
ตารางที่แถวทั้งหมดหายไปเมื่อจบเซสชันหรือทรานแซกชันเก็บข้อมูลชั่วคราวหรือข้อมูลรอจัดการ ที่ต้องไม่อยู่เกินอายุการเชื่อมต่อ
ตารางแม่ที่แตกออกเป็นพาร์ติชันลูกตามคีย์ที่ประกาศไว้ทำให้ตารางขนาดใหญ่มากจัดการได้ ด้วยการแจกแถวตามช่วงหรือรายการลงพาร์ติชัน
ตารางที่แถวอยู่ในระบบภายนอก เข้าถึงผ่าน foreign data wrapperคิวรีฐานข้อมูลหรือไฟล์ระยะไกลราวกับเป็นตารางในเครื่อง
คิวรีที่เก็บไว้แล้วเปิดเผยในรูปตารางเสมือนนำเสนอแถวชุดเดียวกันผ่านตัวกรองหรือการ join ที่ต่างกัน
วิวแบบง่ายที่ส่งต่อ INSERT, UPDATE และ DELETE ไปยังตารางต้นทางเปิดเผยส่วนที่ผ่านการกรองหรือ join ของตาราง โดยยังเขียนได้
วิวที่ชุดผลลัพธ์ถูกเขียนลงดิสก์และรีเฟรชเมื่อต้องการแคช aggregate หรือการ join ที่แพง แล้วอ่านกลับอย่างรวดเร็ว
ฟังก์ชันที่คืนชุดแถว ซึ่งใช้ได้ทุกที่ที่ตารางใช้ได้ขยายชุดที่คำนวณได้เฉพาะที่ เหมือนที่ unnest เปลี่ยนอาร์เรย์ให้เป็นแถว
อินเด็กซ์
อินเด็กซ์แบบต้นไม้สมดุล สำหรับการค้นหาแบบเท่ากับและแบบช่วงเร่งความเร็ว WHERE, JOIN และ ORDER BY บนคอลัมน์ที่เรียงลำดับได้
อินเด็กซ์ที่ปฏิเสธค่าซ้ำในคีย์ของมันบังคับความไม่ซ้ำบนคอลัมน์เดี่ยวหรือชุดคอลัมน์
อินเด็กซ์แบบกลับด้านหรือแบบต้นไม้ค้นหาทั่วไป สำหรับค่าที่ไม่ใช่สเกลาร์ทำอินเด็กซ์ให้อาร์เรย์, JSONB, ข้อความเต็ม หรือข้อมูลเรขาคณิต
อินเด็กซ์ที่สร้างเฉพาะบนแถวที่ตรงกับเงื่อนไข WHEREทำอินเด็กซ์เฉพาะส่วนที่ใช้งานหนัก แล้วข้ามส่วนที่เหลือเพื่อประหยัดพื้นที่
ประเภทและส่วนขยาย
ประเภทที่ผู้ใช้กำหนดเอง ซึ่งค่าทั้งหมดมาจากรายการป้ายกำกับคงที่จำกัดคอลัมน์ให้เป็นชุดปิด เช่น รหัสสถานะ
ประเภทฐานบวกกับ check constraint ตั้งชื่อไว้เพื่อใช้ซ้ำเป็นประเภทคอลัมน์ใช้นิยามที่ผ่านการตรวจสอบชุดเดียวกัน เช่น text ที่ไม่ว่าง กับหลายคอลัมน์
ชุดกฎที่กำหนดว่าสตริงเปรียบเทียบและเรียงลำดับกันอย่างไรได้การเรียงลำดับที่ถูกต้องตามตัวพิมพ์ใหญ่-เล็ก วรรณยุกต์ หรือโลเคลเฉพาะ
แพ็กเกจที่ติดตั้งได้ เพิ่มฟังก์ชัน ประเภท หรือโอเปอเรเตอร์ให้ฐานข้อมูลนำเครื่องมือที่พิสูจน์แล้ว เช่น PostGIS หรือ pg_trgm มาใช้ในขั้นตอนเดียว
ตัวสร้างรหัสและค่าที่สร้างอัตโนมัติ
อ็อบเจกต์ตัวนับอิสระที่คายเลขจำนวนเต็มออกมาต่อเนื่องเลี้ยงคีย์แบบ serial เมื่อหลายตารางใช้ตัวสร้างร่วมกัน
คอลัมน์ของตารางที่มี sequence ภายในหนุนหลัง ตามมาตรฐาน SQLคีย์หลักแบบเพิ่มค่าอัตโนมัติยุคใหม่ ที่นิยมกว่า SERIAL
คอลัมน์ที่ค่าถูกคำนวณจากคอลัมน์อื่นในแถวเดียวกันเก็บหรือเปิดเผยค่าอนุพันธ์โดยไม่ต้องเขียนด้วยมือ
รูทีน
บล็อก SQL ที่มีชื่อ ซึ่งคืนค่าหรือแถวห่อโลจิกที่ใช้ซ้ำได้ แล้วเรียกใช้ภายในคิวรี
บล็อกที่มีชื่อ ซึ่งรันการกระทำและควบคุมทรานแซกชันของตัวเองETL หลายขั้นตอน ที่รูทีน commit หรือ rollback ภายในตัวเอง
รูทีนที่พับแถวนำเข้าจำนวนมากให้เหลือค่าเดียว ผ่านฟังก์ชัน state และ finalนิยามการรวมแบบกำหนดเอง เช่น ค่าเฉลี่ยถ่วงน้ำหนัก
สัญลักษณ์ที่ผูกกับฟังก์ชันหนึ่งหรือหลายตัว สำหรับประเภท operand เฉพาะให้ประเภทของคุณเองมีไวยากรณ์เป็นธรรมชาติ เช่น a + b หรือ @>
เส้นทางการแปลงที่ประกาศไว้ จากประเภทหนึ่งไปยังอีกประเภทหนึ่งควบคุมว่าค่าเปลี่ยนประเภทอย่างไร รวมถึงการแปลงใดที่เกิดขึ้นโดยปริยาย
รูทีนที่ผูกกับเหตุการณ์ของตาราง และทำงานโดยอัตโนมัติตรวจสอบ ตรวจความถูกต้อง หรือส่งต่อการเปลี่ยนแปลง บน INSERT, UPDATE หรือ DELETE
ทริกเกอร์ที่ทำงานเมื่อเกิดเหตุการณ์ระดับฐานข้อมูล เช่น คำสั่ง DDLบันทึก บล็อก หรือตรวจสอบการเปลี่ยนแปลง schema ทั้งฐานข้อมูล
คิวรีที่ parse แล้วเก็บไว้เพื่อรันซ้ำด้วยพารามิเตอร์ที่ผูกไว้ใช้การ parse และแผนงานเดียวซ้ำ บนการรันหลายครั้งของคิวรีเดียวกัน
แฮนเดิลที่คงชุดผลลัพธ์เปิดไว้ เพื่อดึงข้อมูลทีละแถวเลื่อนดูผลลัพธ์ขนาดใหญ่ทีละหน้า หรือไล่แถวภายในรูทีน
ความปลอดภัยและกฎ
ตัวตนที่มีชื่อซึ่งถือสิทธิ์ต่าง ๆ ผู้ใช้คือ role ที่ล็อกอินได้กลุ่มสิทธิ์ไว้ครั้งเดียว แล้วมอบให้คน บริการ หรือ role อื่น
คำสั่งที่มอบสิทธิ์บนอ็อบเจกต์ให้แก่ role หรือเพิกถอนสิทธิ์นั้นกำหนดว่า role ใดอ่าน เขียน หรือรันอ็อบเจกต์แต่ละชนิดได้
สิทธิ์โดยกำเนิดของผู้สร้างที่จะแก้ไขหรือลบอ็อบเจกต์ แยกจากคำสั่ง grantระบุ role ที่รับผิดชอบวงจรชีวิตของอ็อบเจกต์
คำสั่งถาวรที่มอบสิทธิ์ให้อัตโนมัติ บนอ็อบเจกต์ที่ role สร้างขึ้นในภายหลังตั้งสิทธิ์ล่วงหน้า ให้ตารางใหม่ไม่ต้อง grant ด้วยมือสำหรับ role ของแอป
กฎที่ปฏิเสธการเขียนซึ่งละเมิดเงื่อนไขที่ประกาศไว้บังคับการรับประกันของ NOT NULL, CHECK, UNIQUE, PRIMARY KEY และ FOREIGN KEY
กฎระดับ role ที่ซ่อนแถวที่เซสชันต้องไม่เห็นแยกผู้เช่าหรือควบคุมการเข้าถึงรายผู้ใช้ โดยไม่ต้องเขียนคิวรีของแอปใหม่
นามแฝงที่แก้ชื่อหนึ่งไปยังอ็อบเจกต์ที่อยู่ที่อื่น เป็นของเดิมใน Oracle และ SQL Serverย้ายผัง schema ระหว่างการพอร์ต ส่วน PostgreSQL ใช้ search_path แทน
นิยามว่าการกระทำใดถูกบันทึกไว้เพื่อทบทวน ผ่าน pgaudit หรือเครื่องมือของผู้ขายพิสูจน์ว่าใครอ่านหรือแก้ข้อมูลใด เพื่อการปฏิบัติตามกฎและการสืบสวน
คำสั่งที่เขียนคิวรีที่เข้ามาใหม่ ให้กลายเป็นคำสั่งอื่นการเปลี่ยนทางการเขียนแบบดั้งเดิม ปัจจุบัน PostgreSQL นิยม trigger หรือ updatable view
การจำลองข้อมูล
นิยามฝั่งผู้ส่ง ว่าตารางใดและประเภทการเปลี่ยนแปลงใดจะสตรีมออกไปยัง replicaประกาศสิ่งที่ฐานข้อมูลเสนอให้ผู้รับ logical replication
ผู้รับที่เชื่อมต่อไปยัง publication แล้วนำการเปลี่ยนแปลงไปใช้กับตารางในเครื่องดึงการเปลี่ยนแปลงจากฐานข้อมูล PostgreSQL อื่น เข้ามาในฐานข้อมูลนี้
ตัวทำเครื่องหมายที่ทำให้ primary คง WAL ไว้ จนกว่าผู้บริโภคจะอ่านครบรับประกันว่า standby หรือผู้รับจะกลับมาทำต่อได้ โดยไม่สูญเสียการเปลี่ยนแปลง