Skema - Amazon Redshift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Skema

Database berisi satu atau lebih skema bernama. Setiap skema dalam database berisi tabel dan jenis objek bernama lainnya. Secara default, database memiliki skema tunggal, yang bernama PUBLIC. Anda dapat menggunakan skema untuk mengelompokkan objek database dengan nama umum. Skema mirip dengan direktori sistem file, kecuali skema tidak dapat bersarang.

Nama objek database identik dapat digunakan dalam skema yang berbeda dalam database yang sama tanpa konflik. Misalnya, baik MY_SCHEMA dan YOUR_SCHEMA dapat berisi tabel bernama MYTABLE. Pengguna dengan izin yang diperlukan dapat mengakses objek di beberapa skema dalam database.

Secara default, objek dibuat dalam skema pertama di jalur pencarian database. Untuk informasi, lihat Jalur pencarian nanti di bagian ini.

Skema dapat membantu masalah organisasi dan konkurensi dalam lingkungan multipengguna dengan cara berikut:

  • Untuk membiarkan banyak pengembang bekerja dalam database yang sama tanpa mengganggu satu sama lain.

  • Untuk mengatur objek database ke dalam kelompok logis untuk membuatnya lebih mudah dikelola.

  • Untuk memberikan aplikasi kemampuan untuk menempatkan objek mereka ke dalam skema terpisah sehingga nama mereka tidak akan bertabrakan dengan nama objek yang digunakan oleh aplikasi lain.

Membuat, mengubah, dan menghapus skema

Setiap pengguna dapat membuat skema dan mengubah atau menjatuhkan skema yang mereka miliki.

Anda dapat melakukan tindakan berikut:

  • Untuk membuat skema, gunakan BUAT SKEMA perintah.

  • Untuk mengubah pemilik skema, gunakan ALTER SCHEMA perintah.

  • Untuk menghapus skema dan objeknya, gunakan DROP SCHEMA perintah.

  • Untuk membuat tabel dalam skema, buat tabel dengan format schema_name.table_name.

Untuk melihat daftar semua skema, kueri tabel katalog sistem PG_NAMESPACE:

select * from pg_namespace;

Untuk melihat daftar tabel yang termasuk dalam skema, kueri tabel katalog sistem PG_TABLE_DEF. Misalnya, query berikut mengembalikan daftar tabel dalam skema PG_CATALOG.

select distinct(tablename) from pg_table_def where schemaname = 'pg_catalog';

Jalur pencarian

Jalur pencarian didefinisikan dalam parameter search_path dengan daftar nama skema yang dipisahkan koma. Jalur pencarian menentukan urutan skema yang dicari ketika objek, seperti tabel atau fungsi, direferensikan dengan nama sederhana yang tidak menyertakan kualifikasi skema.

Jika objek dibuat tanpa menentukan skema target, objek ditambahkan ke skema pertama yang terdaftar di jalur pencarian. Ketika objek dengan nama identik ada dalam skema yang berbeda, nama objek yang tidak menentukan skema akan merujuk ke skema pertama di jalur pencarian yang berisi objek dengan nama itu.

Untuk mengubah skema default untuk sesi saat ini, gunakan SET perintah.

Untuk informasi selengkapnya, lihat search_path deskripsi di Referensi Konfigurasi.

Izin berbasis skema

Izin berbasis skema ditentukan oleh pemilik skema:

  • Secara default, semua pengguna memiliki izin CREATE dan USE pada skema PUBLIC database. Untuk melarang pengguna membuat objek dalam skema PUBLIC database, gunakan MENCABUT perintah untuk menghapus izin tersebut.

  • Kecuali mereka diberikan izin PENGGUNAAN oleh pemilik objek, pengguna tidak dapat mengakses objek apa pun dalam skema yang tidak mereka miliki.

  • Jika pengguna telah diberikan izin CREATE untuk skema yang dibuat oleh pengguna lain, pengguna tersebut dapat membuat objek dalam skema tersebut.