[mysql] MySQL에서 스키마 / 데이터베이스의 차이점
MySQL에서 스키마와 데이터베이스간에 차이가 있습니까? SQL Server에서 데이터베이스는 스키마와 관련하여 상위 수준 컨테이너입니다.
나는 읽었 Create Schema
와 Create Database
본질적으로 나를 스키마와 데이터베이스가 동일한 개체에 대한 다른 단어 있다고 생각하는 리드 MySQL은 같은 일을 수행합니다.
답변
MySQL 용어집에 정의 된대로 :
MySQL에서 물리적으로 스키마 는 데이터베이스 와 동의어입니다 . MySQL SQL 구문
SCHEMA
대신 키워드를 대신 사용할 수 있습니다 (DATABASE
예 :CREATE SCHEMA
대신 사용)CREATE DATABASE
.일부 다른 데이터베이스 제품은 차별화를 이끌어냅니다. 예를 들어, Oracle Database 제품에서 스키마 는 데이터베이스의 일부 (단일 사용자가 소유 한 테이블 및 기타 객체) 만 나타냅니다.
답변
데이터베이스 서버에 따라 다릅니다. MySQL
상관 없습니다. 기본적으로 같은 것입니다.
Oracle
, DB2
및 기타 엔터프라이즈 수준의 데이터베이스 솔루션이 차별화됩니다. 보통 스키마는 테이블의 모음입니다 및 데이터베이스 스키마의 모음입니다.
답변
로 다스 려 MySQL의 문서 ,
CREATE DATABASE는 주어진 이름으로 데이터베이스를 만듭니다. 이 명령문을 사용하려면 데이터베이스에 대한 CREATE 권한이 필요합니다. CREATE SCHEMA는 MySQL 5.0.2부터 CREATE DATABASE의 동의어입니다.
답변
PostgreSQL은 데이터베이스의 하위 집합 인 스키마를 지원합니다.
https://www.postgresql.org/docs/current/static/ddl-schemas.html
데이터베이스에는 하나 이상의 명명 된 스키마가 포함되며이 스키마에는 테이블이 포함됩니다. 스키마에는 데이터 유형, 함수 및 연산자를 포함하여 다른 종류의 명명 된 객체도 포함됩니다. 충돌없이 다른 스키마에서 동일한 객체 이름을 사용할 수 있습니다. 예를 들어 schema1과 myschema 모두 mytable이라는 테이블을 포함 할 수 있습니다. 데이터베이스와 달리 스키마는 엄격하게 분리되지 않습니다. 사용자는 연결된 데이터베이스의 스키마에있는 권한이있는 경우 스키마의 개체에 액세스 할 수 있습니다.
스키마는 스키마를 중첩 할 수 없다는 점을 제외하고 운영 체제 레벨의 디렉토리와 유사합니다.
겸손한 의견으로는 MySQL은 참조 데이터베이스가 아닙니다. 설명을 위해 MySQL을 인용해서는 안됩니다. MySQL은 비표준 SQL을 구현하며 때로는 지원하지 않는 기능을 요구합니다. 예를 들어 MySQL에서 CREATE 스키마는 DATABASE 만 만듭니다. 실제로 오해의 소지가있는 사용자입니다.
이런 종류의 어휘를 DBA에서는 “MySQLism”이라고합니다.
답변
MySQL 스키마 에서 데이터베이스와 동의어입니다 . MySQL로 뛰어 들고 첫날에 스키마 라는 단어를 찾는 초보자에게는 혼란 스럽습니다 . 따라서 둘 다 동일하므로 걱정할 필요가 없습니다.
MySQL을 처음 시작하는 경우 다른 데이터베이스 시스템과 마찬가지로 작업 할 데이터베이스를 작성해야 SCHEMA 를 작성할 수 있습니다. CREATE DATABASE
일부 다른 데이터베이스 시스템 스키마에서는 데이터베이스의 일부 또는 테이블 모음을 나타내며 스키마 모음은 데이터베이스입니다.
답변
예, 사람들은 MySQL과 관련하여 이러한 용어를 서로 바꿔 사용할 수 있습니다. 종종 사람들이 데이터베이스 서버 전체를 부적절하게 데이터베이스라고 언급하는 것을들을 수 있습니다.
답변
예를 들어 스키마는 단일 사용자를 나타내며 서버, 데이터베이스, 스키마, 테이블 및 개체를 나타내는 순서로 컨테이너의 다른 수준입니다.
예를 들어, dbo.table_a를 업데이트하려고하고 구문이 UPDATE table.a와 같이 정규화되지 않은 경우 DBMS는 의도 한 테이블을 사용하도록 결정할 수 없습니다. 기본적으로 DBMS는 myuser.table_a를 사용합니다.