답변:
MySQL 용어집에 정의 된대로 :
MySQL에서 물리적으로 스키마 는 데이터베이스 와 동의어입니다 . MySQL SQL 구문
SCHEMA
대신 키워드를 대신 사용할 수 있습니다 (DATABASE
예 :CREATE SCHEMA
대신 사용)CREATE DATABASE
.일부 다른 데이터베이스 제품은 차별화를 이끌어냅니다. 예를 들어, Oracle Database 제품에서 스키마 는 데이터베이스의 일부 (단일 사용자가 소유 한 테이블 및 기타 객체) 만 나타냅니다.
데이터베이스 서버에 따라 다릅니다. MySQL
상관 없습니다. 기본적으로 같은 것입니다.
Oracle
, DB2
및 기타 엔터프라이즈 수준의 데이터베이스 솔루션이 차별화됩니다. 보통 스키마는 테이블의 모음입니다 및 데이터베이스 스키마의 모음입니다.
Oracle
와 매우 유사 DB2
합니다.
create database
와 create schema
동의어이다). Oracle 스키마에서 사용자와 동의어입니다 (아마도 더 정확하게 스키마는 사용자가 생성 한 모든 객체의 목록입니다). MSSQL은 세 가지를 모두 구분 (및 다른 데이터베이스에서 테이블을 액세스 할 때 결과적으로, 이름은 모두 데이터베이스와 스키마 예에 의해 자격이 있어야합니다 database1.dbo.table2
)
PostgreSQL은 데이터베이스의 하위 집합 인 스키마를 지원합니다. https://www.postgresql.org/docs/current/static/ddl-schemas.html
데이터베이스에는 하나 이상의 명명 된 스키마가 포함되며이 스키마에는 테이블이 포함됩니다. 스키마에는 데이터 유형, 함수 및 연산자를 포함하여 다른 종류의 명명 된 객체도 포함됩니다. 충돌없이 다른 스키마에서 동일한 객체 이름을 사용할 수 있습니다. 예를 들어 schema1과 myschema 모두 mytable이라는 테이블을 포함 할 수 있습니다. 데이터베이스와 달리 스키마는 엄격하게 분리되지 않습니다. 사용자는 연결된 데이터베이스의 스키마에있는 권한이있는 경우 스키마의 개체에 액세스 할 수 있습니다.
스키마는 스키마를 중첩 할 수 없다는 점을 제외하고 운영 체제 레벨의 디렉토리와 유사합니다.
겸손한 의견으로는 MySQL은 참조 데이터베이스가 아닙니다. 설명을 위해 MySQL을 인용해서는 안됩니다. MySQL은 비표준 SQL을 구현하며 때로는 지원하지 않는 기능을 요구합니다. 예를 들어 MySQL에서 CREATE 스키마는 DATABASE 만 만듭니다. 실제로 오해의 소지가있는 사용자입니다.
이런 종류의 어휘를 DBA에서는 "MySQLism"이라고합니다.
예를 들어 스키마는 단일 사용자를 나타내며 서버, 데이터베이스, 스키마, 테이블 및 개체를 나타내는 순서로 컨테이너의 다른 수준입니다.
예를 들어, dbo.table_a를 업데이트하려고하고 구문이 UPDATE table.a와 같이 정규화되지 않은 경우 DBMS는 의도 한 테이블을 사용하도록 결정할 수 없습니다. 기본적으로 DBMS는 myuser.table_a를 사용합니다.
schema
보다 낫다database
MySQL은 데이터베이스의 일종으로, 그리고 몇 가지 포함database
하고, 때로는use
a는database
, 미스 대상에 많은 검색을 만든다.