web-gelistirme-sc.com

MySQL'de Şema / Veri Tabanı Arasındaki Fark

MySQL'de bir şema ve veritabanı arasında bir fark var mı? SQL Server'da, bir veritabanı bir şemaya göre daha yüksek seviyede bir kaptır.

Create Schema ve Create Database öğelerinin aslında aynı şeyi MySQL'de yaptığını okudum, bu da şemaların ve veritabanlarının aynı nesneler için farklı kelimeler olduğuna inanmamı sağladı.

247
Lloyd Banks

MySQL Glossary içerisinde tanımlandığı gibi:

MySQL'de, fiziksel olarak, bir şema , ile eşanlamlıdır. veritabanı . MySQL SQL sözdiziminde SCHEMA yerine DATABASE anahtar sözcüğünü kullanabilirsiniz, örneğin CREATE SCHEMA yerine CREATE DATABASE kullanarak.

Diğer bazı veritabanı ürünleri bir ayrım yapar. Örneğin, Oracle Database ürününde, bir şeması bir veritabanının yalnızca bir bölümünü temsil eder: tablolar ve tek bir kullanıcının sahip olduğu diğer nesneler.

290
eggyal

Veritabanı sunucusuna bağlı. MySQL umrumda değil, aynı şey.

Oracle, DB2 ve diğer kurumsal seviye veritabanı çözümleri bir ayrım yapar. Genellikle bir şema tabloların bir koleksiyonudur ve bir Veritabanı şemaların bir koleksiyonudur.

54
user2631022

MySql belgeleri ,

CREATE DATABASE verilen isimde bir veri tabanı oluşturur. Bu ifadeyi kullanmak için, veritabanı için CREATE ayrıcalığına ihtiyacınız vardır. CREATE SCHEMA, MySQL 5.0.2'den itibaren CREATE DATABASE ile eşanlamlıdır.

16
Akash KC

PostgreSQL, veritabanının alt kümesi olan şemaları destekler: https://www.postgresql.org/docs/current/static/ddl-schemas.html

Bir veritabanı, sırayla tabloları içeren bir veya daha fazla adlandırılmış şema içerir. Şemalar ayrıca veri türleri, işlevler ve işleçler dahil olmak üzere diğer adlandırılmış nesne türlerini de içerir. Aynı nesne adı, farklı şemalarda çatışma olmadan kullanılabilir; örneğin, hem şema1 hem de myschema, mytable adlı tabloları içerebilir. Veritabanlarından farklı olarak, şemalar katı bir şekilde birbirinden ayrılmaz: kullanıcı, ayrıcalıkları varsa, bağlı oldukları veritabanındaki herhangi bir şemadaki nesnelere erişebilir.

Şemalar, işletim sistemi seviyesindeki dizinlerle aynıdır, ancak şemalar iç içe geçemez.

Benim düşünceme göre, MySQL bir referans veritabanı değildir. Açıklama için asla MySQL'den alıntı yapmamalısınız. MySQL standart olmayan SQL uygular ve bazen desteklemediği özellikleri iddia eder. Örneğin, MySQL'de CREATE şeması yalnızca bir DATABASE oluşturur. O gerçekten yanıltıcı kullanıcılar.

Bu tür kelimelere DBA'lar tarafından "MySQLism" denir.

6
Jean-Michel P.

Evet, insanlar bu terimleri MySQL açısından birbirlerinin yerine kullanırlar. Çoğu zaman, insanların uygunsuz bir şekilde tüm veritabanı sunucusuna veritabanı olarak başvurduğunu duyacaksınız.

3
Mike Brant

mySQL içinde şema , veritabanının eş anlamlısıdır . MySQL'e atlayan ve ilk günden başlayan yeni başlayanlar için oldukça kafa karıştırıcı olan Word şemasını buluyorlar, bu yüzden çocuklar da her ikisi de aynı şekilde endişelenecek bir şey değil.

MySQL'i ilk kez başlatırken, çalışacak bir veritabanı (diğer herhangi bir veritabanı sistemi gibi) oluşturmanız gerekir, böylece yapabilecekleriniz CREATE SCHEMA ki bu hiçbir şey değildir CREATE DATABASE

Diğer bazı veri tabanı sistemlerinde, şema veri tabanının bir kısmını ya da Tablo koleksiyonunu temsil eder ve şema koleksiyonu veri tabanıdır.

2
Riz

Örneğin Microsoft SQL Server, Şemalar tek bir kullanıcıya atıfta bulunur ve sunucuyu, veritabanını, şemayı, tabloları ve nesneleri belirtme sırasına göre başka bir konteyner düzeyidir.

Örneğin, dbo.table_a'yı güncelleme niyetindeyseniz ve sözdizimi UPDATE tablosu gibi tam olarak nitelendirilmediyse, DBMS istenen tabloyu kullanmaya karar veremez. Temelde, varsayılan olarak DBMS, myuser.table_a öğesini kullanacaktır.

0
EliD