Perbedaan antara database vs pengguna vs skema

78

Saya benar-benar bingung dengan istilah basis data, pengguna, dan skema. Adakah yang bisa menjelaskan bagaimana mereka berbeda satu sama lain (jika mereka)?

Jika keduanya sama, apa persamaan di antara mereka? Bagaimana kita menggunakannya? Dan bagaimana kita membuatnya?

Ravi
sumber
Berharap ini akan memberikan ide dasar: answers.com/Q/Difference_between_user_and_schema_oracle
Sandun Madola

Jawaban:

78

Di Oracle, pengguna dan skema pada dasarnya adalah hal yang sama. Anda dapat mempertimbangkan bahwa pengguna adalah akun yang Anda gunakan untuk terhubung ke database, dan skema adalah sekumpulan objek (tabel, tampilan, dll.) Yang termasuk dalam akun itu.

Lihat posting ini di Stack Overflow: perbedaan antara Pengguna dan Skema di Oracle? untuk detail lebih lanjut dan tautan tambahan.

Anda membuat pengguna dengan create userpernyataan itu. Ini juga "membuat" skema (awalnya kosong) - Anda tidak dapat membuat skema karena itu, terikat dengan pengguna. Setelah pengguna dibuat, administrator dapat memberikan hak istimewa kepada pengguna, yang akan memungkinkannya untuk membuat tabel, mengeksekusi selectkueri insert,, dan yang lainnya.

Basis data adalah hal yang berisi semua pengguna yang Anda buat, dan datanya (dan sekelompok pengguna sistem, tabel, tampilan, dll. Yang membuat semuanya berfungsi). Anda harus melihat dokumentasi Arsitektur Database Oracle di Panduan Konsep (sebenarnya, seluruh halaman itu layak dibaca - ada bagian tentang pengguna dan skema yang lebih tinggi di halaman itu) untuk mendapatkan pengantar apa itu database, dan apa contoh database adalah - dua konsep penting.

Anda dapat membuat database dengan create databasepernyataan, setelah Anda menginstal tumpukan perangkat lunak Oracle. Tetapi menggunakan dbca(asisten pembuatan basis data) lebih mudah untuk memulai.

Tikar
sumber
2

Menurut cara terminologi kadang - kadang digunakan , a USERdan a SCHEMAagak mirip. Tetapi ada juga perbedaan besar. A USERdapat disebut a SCHEMAjika " USER" memiliki objek apa pun, jika tidak maka hanya akan tetap " USER". Setelah USERmemiliki setidaknya satu objek maka berdasarkan semua definisi Anda di atas ... USERsekarang dapat disebut a SCHEMA.

JOHNNIE
sumber
Saya pikir apa yang Anda tunjukkan di sini adalah bahwa istilah 'SCHEMA' multi-faceted. Ini adalah namespace untuk objek database di satu sisi. Juga, di Oracle (dan lain-lain?) Tetapi tidak PostgreSQL, itu adalah namespace objek database yang berisi objek yang dibuat oleh pengguna yang membagikan nama skema. Dari perspektif lain, itu adalah hubungan dan struktur objek dalam database, sering mengabaikan kepemilikan dan namespace.
Andrew Wolfe
2

Untuk mulai memahami perbedaannya, saya pikir kita harus mulai mengatakan bahwa nomenklatur ini adalah kesalahan dari Oracle.

Saya berasumsi bahwa jika Anda memiliki ERP yang disebut TRITON Anda ingin database Anda dinamai TRITON, atau jika perusahaan saya disebut JENNY EXPORT, saya dapat memutuskan database saya disebut JENNYEXP atau sesuatu seperti itu, tidak perlu untuk pengguna dengan nama yang sama .

Di Oracle, Anda perlu membuat USER sebelum membuat tabel dan cukup aneh koleksi TABLES ini disebut SCHEMA.

Kemudian Anda dapat membuat pengguna yang sebenarnya dan memberikan izin yang tepat untuk bekerja dengan database seperti TRITON sesuai contoh ini, jika Anda terhubung melalui SQL DEVELOPER Anda harus NAMA A CONNECTION.

Saya tahu saya terdengar agak frustrasi tetapi lebih masuk akal bagi saya konvensi penamaan MS SQL SERVER dan saya bisa menambahkan bahwa saya bekerja dengan Oracle lebih awal dari SQL SERVER.

Glauco Guerrero
sumber
1

Basis Data.

Basis data adalah kumpulan data, di mana sebenarnya data disimpan. Komponen Memori fisik yang Terhubung ke Komputer yang Diinstal dengan Perangkat Lunak DBMS untuk memanipulasi data dalam komponen Memori itu, komputer yang dipasang dengan perangkat lunak dbms disebut Server atau Database Server. Baik Server (Komputer) dan Database (komponen memori) berbeda tetapi Sebagian besar kali disebut sebagai Sama berdasarkan situasi.

PENGGUNA dan SKEMA

Kedua kata, pengguna dan skema, dapat dipertukarkan, itulah sebabnya kebanyakan orang bingung akan kata-kata ini.

Pengguna

Pengguna adalah akun untuk menghubungkan basis data (Server). kita dapat membuat pengguna dengan menggunakan CREATE USER IDENTIFIED BY BY.

Skema

Sebenarnya Oracle Database mengandung struktur logis dan fisik untuk memproses data. Skema Juga Struktur Logis untuk memproses data dalam Database (Komponen Memori). Itu dibuat secara otomatis oleh Oracle ketika pengguna dibuat. Ini berisi semua objek yang dibuat oleh pengguna yang terkait dengan skema itu. Misalnya, jika saya membuat pengguna dengan nama santhoshmaka oracle membuat skema yang disebut santhosh, Oracle menyimpan semua objek yang dibuat oleh pengguna santhoshdalam santhoshskema.

Kita dapat membuat skema dengan menggunakan CREATE SCHEMApernyataan, tetapi Oracle secara otomatis membuat pengguna untuk skema itu.

Kita bisa menjatuhkan skema dengan menggunakan DROP SCHEMA <name> RESTRICTpernyataan, tetapi tidak bisa menghapus skema yang berisi objek, jadi untuk menjatuhkan skema, itu harus kosong. di sini kata membatasi memaksa Anda untuk menentukan skema tanpa objek.

Jika kami mencoba menjatuhkan pengguna yang berisi objek dalam skemanya, kami harus menentukan CASCADEkata karena Oracle tidak memungkinkan Anda untuk menghapus pengguna yang berisi objek.

DROP USER <name> CASCADE

jadi Oracle menghapus objek dalam skema dan kemudian menjatuhkan pengguna secara otomatis, Objek merujuk ke objek skema ini dari skema lain seperti tampilan dan sinonim pribadi pergi ke keadaan tidak valid.

SanthoshReddy
sumber
-2

Saya ingin menambahkan bahwa pernyataan di atas berlaku untuk implementasi Oracle tetapi database lain termasuk SQL Server dan PostgreSQL menggunakan skema hanya sebagai namespace, yaitu cara untuk mengelompokkan objek. Misalnya, skema Pementasan dapat mengelompokkan semua objek yang digunakan dalam pementasan data, skema Akuntansi dapat mengelompokkan semua objek yang terkait dengan Akuntansi.

pengguna3869678
sumber
Tidak yakin dengan apa yang Anda referensikan ketika Anda mengatakan "pernyataan di atas" tetapi skema dalam SQL dan Oracle adalah pengelompokan izin. Dengan kata lain itu bukan hanya cara untuk mengelompokkan objek-objek seperti bersama-sama, tetapi cara untuk mengelompokkan objek-objek yang akan memudahkan pengelolaan izin karena Anda dapat memberikan izin ke suatu skema dan karenanya menghindari keharusan memberikan izin kepada setiap objek dalam skema.
Thronk
-4

Pengguna! = Skema, Pengguna dan Skema tidak sama tetapi mereka digunakan secara bergantian

pengguna24990
sumber
2
Harap tambahkan detail tentang perbedaannya.
Erik
-4

Saya memberitahu Anda sesuai dengan konsep yang tidak didasarkan pada semua jenis sistem manajemen basis data yang Anda gunakan.

Secara Konseptual: Basis Data: adalah tumpukan data, sebagian besar data yang terkait atau tidak dikelola .

Skema: Skema mengacu pada penataan formal terkait / tidak terkait data sehingga dapat dikelola oleh beberapa sistem manajemen yang memahami definisi formal yang disediakan oleh skema. Skema pada dasarnya adalah skema untuk memberikan gambaran umum. Misalnya Anda memiliki XSD yang mendefinisikan skema untuk membuat XML. Anda memiliki RDBMS yang mendefinisikan skema sendiri yang didasarkan pada Aturan Codd yang pada dasarnya mendefinisikan skema untuk membuat RDBMS.

Sekarang jika Anda ingin tahu lebih banyak tentang rujukan Tautan ini .

Pengguna menggunakan bahasa formal yang ditentukan oleh skema untuk mengakses Database

Ajay Bhojak
sumber