ความแตกต่างระหว่างฐานข้อมูลและสคีมา


166

อะไรคือความแตกต่างระหว่างฐานข้อมูลและสคีมาใน SQL Server ทั้งสองเป็นคอนเทนเนอร์ของตารางและข้อมูล

หากมีการลบ Schema แล้วตารางทั้งหมดใน Schema นั้นจะถูกลบโดยอัตโนมัติหรือถูกลบเมื่อฐานข้อมูลถูกลบหรือไม่

คำตอบ:


171

ฐานข้อมูลเป็นคอนเทนเนอร์หลักประกอบด้วยข้อมูลและไฟล์บันทึกและสกีมาทั้งหมดที่อยู่ภายใน คุณสำรองฐานข้อมูลอยู่เสมอซึ่งเป็นหน่วยที่ไม่ต่อเนื่องในตัวของมันเอง

Schemas เป็นเหมือนโฟลเดอร์ภายในฐานข้อมูลและส่วนใหญ่จะใช้ในการจัดกลุ่มวัตถุตรรกะเข้าด้วยกันซึ่งนำไปสู่ความสะดวกในการตั้งค่าสิทธิ์ตามสคีมา

แก้ไขสำหรับคำถามเพิ่มเติม

drop schema test1

ข่าวสารเกี่ยวกับ 3729 ระดับ 16 สถานะ 1 บรรทัด 1
ไม่สามารถปล่อย schema 'test1' ได้เนื่องจากกำลังถูกอ้างอิงโดยวัตถุ 'copyme'

คุณไม่สามารถวางสคีมาเมื่อใช้งานอยู่ คุณต้องลบวัตถุทั้งหมดออกจากสคีมาก่อน

การอ่านที่เกี่ยวข้อง:

  1. SQL Server มีอะไรดี
  2. MSDN: การแยกสคีมาของผู้ใช้

5
ใน sql server 2005 และรุ่นที่สูงกว่าโดยปกติแล้วทุกอย่างจะเข้าสู่ DBO schema ถ้าเราไม่พูดถึงชื่อ schema ใด ๆ ในขณะที่สร้างวัตถุฐานข้อมูล
sqlchild

@sqlchild ใช่ถูกต้อง จำเป็นต้องใช้สคีมาวัตถุทุกชิ้นจะถูกเก็บไว้ในสคีมาดังนั้นค่าเริ่มต้นคือ dbo
RichardTheKiwi

คุณจะพิจารณาจำลองตารางในฐานข้อมูลเดียวกันและจัดกลุ่มใน schema ตามลูกค้าที่แตกต่างกันแทนที่จะสร้างการปฏิบัติที่ดีสำหรับแต่ละลูกค้าฐานข้อมูลแยกกันหรือไม่
Yevgraf Andreyevich Zhivago

ตรรกะเหมือนกันสำหรับ AWS Redshift หรือไม่ ใคร? ฉันสับสนระหว่างทั้งสองในแง่ของ AWS
Aakash Basu

19

สคีมาเป็นวิธีการจัดประเภทวัตถุในฐานข้อมูล มันจะมีประโยชน์หากคุณมีหลายแอปพลิเคชั่นที่แชร์ฐานข้อมูลเดียวและในขณะที่มีชุดข้อมูลบางอย่างที่แอปพลิเคชันทั้งหมดเข้าถึง


12

ฐานข้อมูลเป็นเหมือนที่เก็บข้อมูลที่มีสคีมาและสคีมาเป็นโครงร่างของตารางที่มีชนิดข้อมูลความสัมพันธ์และเนื้อหา


1
สิ่งนี้ไม่ถูกต้องสำหรับ SQL Server โดยเฉพาะ ตารางมีสกีมาในฐานข้อมูลทั่วไปใช่ แต่ Schemas (สำหรับผู้ที่รู้เหตุผลว่าอะไร) ใน SQL Server ยังเป็นเนมสเปซที่มีประสิทธิภาพที่มีตาราง (และตารางเหล่านั้นยังมีสกีมาในแบบดั้งเดิมด้วย) ชื่อที่โชคร้ายที่ Microsoft เลือกสำหรับพวกเขา - namespaceเหมาะสมกว่ามาก
SacredSkull

7

สคีมากล่าวว่าตารางใดอยู่ในฐานข้อมูลคอลัมน์ใดมีและเกี่ยวข้องกันอย่างไร แต่ละฐานข้อมูลมีสคีมาของตัวเอง


แต่ถ้าฉันไม่สร้าง schema ใด ๆ อย่างชัดเจนและสร้างตารางโดยไม่ต้องพูดถึงชื่อสกีมาใด ๆ ตารางจะถูกสร้างขึ้นที่ไหน โดยค่าเริ่มต้นพวกเขาจะต้องเข้าไปใน dbo schema ไม่ใช่เหรอ
sqlchild

ใช่ แต่โดยปกติคุณไม่จัดการกับคีมาด้วยตนเองคุณสร้างตารางทั้งจากเครื่องมือการจัดการบางส่วนหรือใช้รหัสแรกของเครื่องมือออมบาง
โรเบิร์ต

ฉันจะใช้ Studio จัดการเซิร์ฟเวอร์ SQL และฉันไม่ได้กล่าวถึงชื่อสกีใด ๆ
sqlchild

4

สคีมาใน SQL Server เป็นวัตถุที่เก็บแนวคิดสำหรับวัตถุฐานข้อมูลอื่น ๆ เช่นตารางมุมมองกระบวนงานที่เก็บไว้เป็นต้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.