ฉันสับสนกับฐานข้อมูลข้อกำหนดผู้ใช้และสคีมา ใครสามารถอธิบายได้ว่าพวกเขาแตกต่างจากกันอย่างไร (ถ้าเป็น)
หากพวกเขาเหมือนกันแล้วความคล้ายคลึงกันระหว่างพวกเขาคืออะไร เราจะใช้มันอย่างไร และเราจะสร้างพวกเขาได้อย่างไร
ฉันสับสนกับฐานข้อมูลข้อกำหนดผู้ใช้และสคีมา ใครสามารถอธิบายได้ว่าพวกเขาแตกต่างจากกันอย่างไร (ถ้าเป็น)
หากพวกเขาเหมือนกันแล้วความคล้ายคลึงกันระหว่างพวกเขาคืออะไร เราจะใช้มันอย่างไร และเราจะสร้างพวกเขาได้อย่างไร
คำตอบ:
ใน Oracle ผู้ใช้และสกีมาเป็นสิ่งเดียวกัน คุณสามารถพิจารณาว่าผู้ใช้เป็นบัญชีที่คุณใช้เชื่อมต่อกับฐานข้อมูลและสคีมาเป็นชุดของวัตถุ (ตารางมุมมองและอื่น ๆ ) ที่เป็นของบัญชีนั้น
ดูโพสต์นี้บน Stack Overflow: ข้อแตกต่างระหว่าง User กับ Schema ใน Oracle? สำหรับรายละเอียดเพิ่มเติมและลิงก์เพิ่มเติม
คุณสร้างผู้ใช้ด้วยcreate user
คำสั่ง นอกจากนี้ "สร้าง" สคีมา (ว่างในตอนแรก) - คุณไม่สามารถสร้างสคีมาได้ดังนั้นจะเชื่อมโยงกับผู้ใช้ เมื่อสร้างผู้ใช้แล้วผู้ดูแลระบบสามารถให้สิทธิพิเศษแก่ผู้ใช้ซึ่งจะทำให้ผู้ใช้สามารถสร้างตารางเรียกใช้select
คิวinsert
รีและอื่น ๆ ได้
ฐานข้อมูลเป็นสิ่งที่มีผู้ใช้ทั้งหมดที่คุณสร้างขึ้นและข้อมูลของพวกเขา (และผู้ใช้ระบบตารางมุมมองและอื่น ๆ ที่กำหนดไว้ล่วงหน้าซึ่งทำให้การทำงานทั้งหมด) คุณควรดูเอกสารสถาปัตยกรรมฐานข้อมูล Oracleในแนวทางแนวคิด (อันที่จริงแล้วทั้งหน้านั้นมีค่าต่อการอ่าน - มีส่วนเกี่ยวกับผู้ใช้และสกีมาที่สูงกว่าในหน้านั้น) เพื่อรับรู้เบื้องต้นว่าฐานข้อมูลคืออะไรและอินสแตนซ์ฐานข้อมูลคือ - แนวคิดที่สำคัญสองประการ
คุณสามารถสร้างฐานข้อมูลด้วยcreate database
คำชี้แจงเมื่อคุณติดตั้งสแต็กซอฟต์แวร์ Oracle แล้ว แต่การใช้dbca
(ผู้ช่วยสร้างฐานข้อมูล) นั้นง่ายต่อการเริ่มต้น
ตามวิธีการใช้คำศัพท์บางครั้ง a USER
และ a SCHEMA
ค่อนข้างคล้ายกัน แต่ก็มีความแตกต่างที่สำคัญ USER
สามารถเรียกได้ว่าSCHEMA
หาก " USER
" เจ้าของวัตถุใด ๆ มิฉะนั้นมันจะยังคงเป็น " USER
" เมื่อUSER
เป็นเจ้าของอย่างน้อยหนึ่งวัตถุแล้วโดยอาศัยอำนาจตามทุกคำจำกัดความข้างต้นที่ ... สามารถตอนนี้จะเรียกว่าUSER
SCHEMA
เพื่อเริ่มเข้าใจความแตกต่างฉันคิดว่าเราต้องเริ่มต้นพูดว่าระบบการตั้งชื่อนี้เป็นความผิดพลาดจาก Oracle
ฉันคิดว่าถ้าคุณมี ERP ชื่อ TRITON คุณต้องการให้ฐานข้อมูลของคุณชื่อ TRITON หรือถ้า บริษัท ของฉันชื่อ JENNY EXPORT ฉันอาจตัดสินใจว่าฐานข้อมูลของฉันจะเรียกว่า JENNYEXP หรืออะไรทำนองนั้นไม่จำเป็นสำหรับผู้ใช้ที่มีชื่อเดียวกัน .
ใน Oracle คุณต้องสร้างผู้ใช้ก่อนที่จะสร้างตารางและแปลกมากพอที่คอลเลกชันแท็บนี้เรียกว่า SCHEMA
จากนั้นคุณอาจสร้างผู้ใช้จริงและให้สิทธิ์ที่เหมาะสมในการทำงานกับฐานข้อมูลเช่น TRITON ตามตัวอย่างนี้อย่างไรก็ตามถ้าคุณเชื่อมต่อกับ SQL DEVELOPER คุณต้องตั้งชื่อการเชื่อมต่อ
ฉันรู้ว่าฉันรู้สึกหงุดหงิด แต่มันเหมาะสมกว่าสำหรับฉันในการตั้งชื่อแผนการประชุม MS SQL SERVER และฉันสามารถเพิ่มว่าฉันทำงานกับ Oracle ก่อนหน้า SQL Server
ฐานข้อมูลคือชุดของข้อมูลที่จัดเก็บข้อมูลจริง มันเป็นองค์ประกอบหน่วยความจำกายภาพที่เชื่อมต่อกับคอมพิวเตอร์ที่ติดตั้งด้วยซอฟต์แวร์ DBMS เพื่อจัดการข้อมูลในหน่วยความจำนั้นคอมพิวเตอร์ที่ติดตั้งซอฟต์แวร์ dbms เรียกว่าเซิร์ฟเวอร์หรือเซิร์ฟเวอร์ฐานข้อมูลเซิร์ฟเวอร์ทั้งเซิร์ฟเวอร์ (คอมพิวเตอร์) และฐานข้อมูล (องค์ประกอบหน่วยความจำ) แตกต่างกัน เวลาส่วนใหญ่อ้างถึงเหมือนกันตามสถานการณ์
คำทั้งผู้ใช้และสคีมานั้นใช้แทนกันได้นั่นคือสาเหตุที่คนส่วนใหญ่สับสนกับคำเหล่านี้
ผู้ใช้เป็นบัญชีเชื่อมต่อฐานข้อมูล (เซิร์ฟเวอร์) เราสามารถสร้างผู้ใช้โดยใช้ CREATE USER IDENTIFIED โดย
จริงๆแล้วฐานข้อมูล Oracle มีโครงสร้างตรรกะและกายภาพในการประมวลผลข้อมูล โครงสร้างแบบแผนลอจิกยังเพื่อประมวลผลข้อมูลในฐานข้อมูล (ส่วนประกอบหน่วยความจำ) มันถูกสร้างขึ้นโดยอัตโนมัติโดย Oracle เมื่อผู้ใช้สร้าง มันมีวัตถุทั้งหมดที่สร้างขึ้นโดยผู้ใช้ที่เชื่อมโยงกับสคีมานั้นตัวอย่างเช่นถ้าฉันสร้างผู้ใช้ที่มีชื่อsanthosh
ออราเคิลจะสร้างสคีมาที่เรียกว่าsanthosh
Oracle จัดเก็บวัตถุทั้งหมดที่สร้างโดยผู้ใช้santhosh
ในsanthosh
สคีมา
เราสามารถสร้างสคีมาโดยใช้CREATE SCHEMA
คำสั่ง แต่ Oracle สร้างผู้ใช้สำหรับสคีมานั้นโดยอัตโนมัติ
เราสามารถวางสคีมาได้โดยใช้DROP SCHEMA <name> RESTRICT
คำสั่ง แต่ไม่สามารถลบสคีมาที่มีวัตถุได้ดังนั้นหากต้องการวางสคีมามันจะต้องว่างเปล่า คำ จำกัด ที่นี่บังคับให้คุณระบุสคีมานั้นโดยไม่มีวัตถุ
หากเราพยายามที่จะวางผู้ใช้ที่มีวัตถุในสคีมาของเขาเราจะต้องระบุCASCADE
คำเพราะ Oracle ไม่อนุญาตให้คุณลบผู้ใช้ที่มีวัตถุ
DROP USER <name> CASCADE
ดังนั้น Oracle จะลบวัตถุใน schema และจากนั้นผู้ใช้จะลดลงโดยอัตโนมัติวัตถุที่อ้างถึงวัตถุ schema เหล่านี้จาก schema อื่น ๆ เช่นมุมมองและคำพ้องความหมายส่วนตัวไปอยู่ในสถานะที่ไม่ถูกต้อง
ฉันจะเพิ่มว่าคำสั่งข้างต้นนำไปใช้กับการใช้งานของ Oracle แต่ฐานข้อมูลอื่น ๆ รวมถึง SQL Server และ PostgreSQL ใช้ schema เป็นเพียง namespace เช่นวิธีการจัดกลุ่มวัตถุ ตัวอย่างเช่น Schema Staging สามารถจัดกลุ่มวัตถุทั้งหมดที่ใช้ในข้อมูลการจัดเตรียม Schema ทางบัญชีสามารถจัดกลุ่มวัตถุทั้งหมดที่เกี่ยวข้องกับการบัญชี
ผู้ใช้! = สคีมา, ผู้ใช้และสคีมาไม่เหมือนกัน แต่ใช้แทนกันได้
ฉันกำลังบอกคุณตามแนวคิดที่ไม่ได้ใช้ระบบการจัดการฐานข้อมูลทุกประเภทที่คุณใช้
แนวคิดฐานข้อมูลเป็นเพียงกองของข้อมูลส่วนใหญ่เกี่ยวข้องหรือไม่เกี่ยวข้องยกเลิกการจัดการข้อมูล
สคีมา: สคีมาหมายถึงการจัดโครงสร้างข้อมูลที่เกี่ยวข้อง / ไม่เกี่ยวข้องอย่างเป็นทางการเพื่อให้สามารถจัดการได้โดยระบบการจัดการบางระบบที่เข้าใจคำจำกัดความที่เป็นทางการของสคีมา สคีมานั้นเป็นแบบแผนในการให้ภาพรวม ตัวอย่างเช่นคุณมี XSD ซึ่งกำหนดสคีมาเพื่อสร้าง XML คุณมี RDBMS ซึ่งกำหนด schema ของตัวเองซึ่งเป็นไปตามกฎของ Coddซึ่งโดยทั่วไปจะกำหนดโครงร่างเพื่อสร้าง RDBMS
ตอนนี้ถ้าคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับการอ้างอิงลิงค์นี้
ผู้ใช้ใช้ภาษาทางการที่ระบุโดยคีมาเพื่อเข้าถึงฐานข้อมูล