Ini mungkin pertanyaan n00blike (atau lebih buruk). Tapi saya selalu melihat skema sebagai definisi tabel dalam database. Ini salah atau tidak sepenuhnya benar. Saya tidak ingat banyak dari kursus basis data saya.
database
schema
definition
database-table
anbanm
sumber
sumber
Jawaban:
skema : database : tabel :: denah lantai : rumah : kamar
sumber
Sebuah skema relasi adalah definisi logis dari meja - mendefinisikan apa nama meja, dan apa nama dan jenis setiap kolom adalah. Ini seperti rencana atau cetak biru. Sebuah skema database adalah kumpulan dari relasi skema untuk seluruh database.
Sebuah meja adalah struktur dengan sekelompok baris (alias "tupel"), yang masing-masing memiliki atribut yang didefinisikan oleh skema. Tabel mungkin juga memiliki indeks untuk membantu mencari nilai pada kolom tertentu.
Sebuah basis data adalah, secara resmi, setiap koleksi data. Dalam konteks ini, database akan menjadi kumpulan tabel. A DBMS (Database Management System) adalah perangkat lunak (seperti MySQL, SQL Server, Oracle, dll) yang mengelola dan menjalankan database.
sumber
Singkatnya, skema adalah definisi untuk seluruh basis data, sehingga mencakup tabel, tampilan, prosedur tersimpan, indeks, kunci primer dan asing, dll.
sumber
Posting khusus ini telah terbukti hanya berhubungan dengan Oracle dan definisi Skema berubah ketika dalam konteks DB lain.
Mungkin hal yang agak hanya google up tetapi istilah FYI tampaknya berbeda dalam definisi mereka yang merupakan hal yang paling menjengkelkan :)
Dalam Oracle, basis data adalah basis data. Di kepala Anda pikirkan ini sebagai file data dan redo log dan keberadaan fisik aktual pada disk dari database itu sendiri (yaitu bukan instance)
Skema secara efektif adalah pengguna. Lebih khusus itu adalah seperangkat tabel / procs / indeks dll yang dimiliki oleh pengguna. Pengguna lain memiliki skema yang berbeda (tabel yang dimilikinya) namun pengguna juga dapat melihat skema apa pun yang telah mereka pilih haknya. Jadi sebuah database dapat terdiri dari ratusan skema, dan masing-masing skema ratusan tabel. Anda bisa memiliki tabel dengan nama yang sama di skema yang berbeda, yang berada di database yang sama.
Tabel adalah tabel, seperangkat baris dan kolom yang berisi data dan terkandung dalam skema.
Definisi mungkin berbeda di SQL Server misalnya. Saya tidak mengetahui hal ini.
sumber
Skema berperilaku seperti objek induk seperti yang terlihat di dunia OOP. jadi itu bukan database itu sendiri. mungkin tautan ini ini bermanfaat.
Tapi, di MySQL, keduanya setara. Kata kunci DATABASE atau DATABASES dapat diganti dengan SCHEMA atau SCHEMAS di mana pun kata itu muncul. Contoh:
Dokumentasi MySQL
Istilah SCHEMA & DATABASE adalah sesuatu yang bergantung pada DBMS.
Sebuah Tabel adalah sekumpulan elemen data (nilai-nilai) yang diselenggarakan menggunakan model kolom vertikal (yang diidentifikasi dengan nama mereka) dan baris horizontal. Database berisi satu atau lebih (biasanya) Tabel . Dan Anda menyimpan data Anda di tabel ini. Tabel mungkin terkait satu sama lain ( Lihat di sini ).
sumber
Lebih lanjut tentang skema:
Dalam SQL 2005 skema adalah cara untuk mengelompokkan objek. Ini adalah wadah tempat Anda bisa meletakkan benda. Orang dapat memiliki objek ini. Anda dapat memberikan hak pada skema.
Pada tahun 2000 skema setara dengan pengguna. Sekarang telah rusak dan sangat berguna. Anda bisa membuang semua procs pengguna Anda dalam skema tertentu dan procs admin Anda yang lain. Berikan EXECUTE kepada pengguna / peran yang sesuai dan Anda selesai memberikan EXECUTE pada prosedur tertentu. Bagus.
Notasi titik akan seperti ini:
Server.Database.Schema.Object
atau
myserver01.Adventureworks.Accounting.Beans
sumber
A
Schema
adalah kumpulan objek database yang mencakup struktur logis juga. Itu memiliki nama pengguna yang memilikinya. Adatabase
dapat memiliki sejumlah Skema. Satu tabel dari database dapat muncul dalam dua skema berbeda dengan nama yang sama. Seorang pengguna dapat melihat skema apa pun yang telah ditetapkan untuk mereka, pilih hak istimewa.sumber
Seperti yang dikatakan MusiGenesis dengan sangat baik, di sebagian besar basis data:
Tapi, di Oracle mungkin lebih mudah untuk memikirkan:
skema: database: tabel :: pemilik: rumah: kamar
sumber
Bertentangan dengan beberapa jawaban di atas, inilah pemahaman saya berdasarkan pengalaman dengan masing-masing dari mereka:
database/schema :: table
database :: (schema/namespace ::) table
database/schema/user :: (tablespace ::) table
Harap perbaiki saya apakah tablespace opsional atau tidak dengan Oracle, sudah lama saya tidak ingat menggunakannya.
sumber
Dalam Skema oracle adalah satu pengguna di bawah satu basis data, Misalnya scott adalah satu skema dalam basis data orcl. Dalam satu basis data kita mungkin memiliki banyak skema seperti scott
sumber
Database berisi satu atau lebih skema bernama, yang pada gilirannya berisi tabel. Skema juga berisi jenis objek bernama lainnya, termasuk tipe data, fungsi, dan operator. Nama objek yang sama dapat digunakan dalam skema yang berbeda tanpa konflik; misalnya, schema1 dan myschema dapat berisi tabel bernama mytable. Tidak seperti basis data, skema tidak dipisahkan secara kaku: pengguna dapat mengakses objek di skema mana pun di basis data yang terhubung dengannya, jika ia memiliki hak istimewa untuk melakukannya.
Ada beberapa alasan mengapa seseorang mungkin ingin menggunakan skema:
Untuk memungkinkan banyak pengguna menggunakan satu basis data tanpa mengganggu satu sama lain.
Untuk mengatur objek database ke dalam grup logis untuk membuatnya lebih mudah dikelola.
Aplikasi pihak ketiga dapat dimasukkan ke dalam skema terpisah sehingga mereka tidak bertabrakan dengan nama-nama benda lain.
Skema analog dengan direktori di tingkat sistem operasi, kecuali skema yang tidak dapat disarangkan.
Dokumentasi resmi dapat dirujuk https://www.postgresql.org/docs/9.1/ddl-schemas.html
sumber
Schemas berisi Database.
Database adalah bagian dari Skema.
Jadi, skema> basis data.
Skema berisi tampilan, prosedur tersimpan, basis data, pemicu, dll.
sumber
Skema bukan rencana untuk seluruh database. Ini adalah paket / wadah untuk subset objek (ex.tables) di dalam database.
Ini bisa dikatakan bahwa Anda dapat memiliki beberapa objek (mis. Tabel) di dalam satu database yang tidak perlu masuk dalam kategori fungsional yang sama. Jadi, Anda dapat mengelompokkannya di bawah berbagai skema dan memberi mereka izin akses pengguna yang berbeda.
Yang mengatakan, saya tidak yakin apakah Anda dapat memiliki satu tabel di bawah beberapa skema. Management Studio UI memberikan dropdown untuk menetapkan skema ke tabel, dan karenanya memungkinkan untuk memilih hanya satu skema. Saya kira jika Anda melakukannya dengan TSQL, itu mungkin membuat 2 (atau beberapa) objek berbeda dengan Id objek yang berbeda.
sumber
Skema basis data adalah cara untuk mengelompokkan objek secara logis seperti tabel, tampilan, prosedur tersimpan, dll. Pikirkan skema sebagai wadah objek. Dan tabel adalah kumpulan baris dan kolom. kombinasi semua tabel menghasilkan db.
sumber