답변:
Oracle에서 사용자와 스키마는 본질적으로 동일합니다. 사용자는 데이터베이스에 연결하는 데 사용하는 계정이고 스키마는 해당 계정에 속하는 개체 집합 (테이블, 뷰 등)이라고 생각할 수 있습니다.
Stack Overflow : Oracle에서 사용자와 스키마의 차이점 에 대한이 게시물을 참조하십시오 . 자세한 내용과 추가 링크는
create user
명령문으로 사용자를 작성합니다 . 이것은 또한 스키마를 "생성"합니다 (처음에는 비어 있음). 스키마를 생성 할 수 없으며 사용자와 연결되어 있습니다. 사용자가 생성되면 관리자는 사용자에게 권한을 부여하여 테이블을 생성 하고 select
쿼리를 실행하는 insert
등의 모든 작업을 수행 할 수 있습니다 .
데이터베이스는 생성 한 모든 사용자와 해당 데이터 (그리고 모든 것이 작동하도록하는 사전 정의 된 시스템 사용자, 테이블, 뷰 등)를 포함하는 것입니다. 당신은 살펴 봐야 오라클 데이터베이스 아키텍처 (전체 페이지 가치가 읽기 것을 실제로 - 사용자와 높은 해당 페이지에서 최대 스키마에 대한 섹션있다)이 개념 안내서의 문서 데이터베이스가 무엇인지에 대한 소개를 얻기 위해, 그리고 무엇 데이터베이스 인스턴스 는 두 가지 중요한 개념입니다.
create database
Oracle 소프트웨어 스택을 설치 한 후에는 명령문 으로 데이터베이스를 작성할 수 있습니다 . 그러나 dbca
(데이터베이스 생성 도우미)를 사용하는 것이 더 쉽습니다.
용어가 때때로 사용되는 방식에 따라 a USER
와 a SCHEMA
는 다소 유사합니다. 그러나 큰 차이점도 있습니다. " "가 객체를 소유 USER
하는 SCHEMA
경우 A 라고 할 수 있습니다 USER
. 그렇지 않으면 " USER
" 만 남게됩니다 . 일단 USER
하나 이상의 객체를 소유하고 나면 위의 모든 정의로 인해 ... USER
를 이제이라고 할 수 있습니다 SCHEMA
.
차이점을 이해하기 시작하려면이 명명법이 Oracle의 실수라고 말해야합니다.
TRITON이라는 ERP가 있으면 데이터베이스 이름을 TRITON으로 지정하거나 회사 이름이 JENNY EXPORT 인 경우 JENNYEXP 또는 이와 유사한 이름으로 내 데이터베이스를 결정할 수 있습니다. 같은 이름의 사용자가 필요하지 않습니다. .
Oracle에서는 테이블을 작성하기 전에 USER를 작성해야하며이 TABLES 콜렉션을 SCHEMA라고하는 것이 이상합니다.
그런 다음 실제 사용자를 작성하고이 예제에 따라 TRITON과 같은 데이터베이스로 작업 할 수있는 적절한 권한을 부여 할 수 있습니다. 그런데 SQL DEVELOPER를 통해 연결하는 경우 연결 이름을 지정해야합니다.
나는 좌절감을 느낀다는 것을 알고 있지만 MS SQL SERVER 명명 규칙이 더 의미가 있으며 SQL SERVER보다 이전에 Oracle에서 작업했다는 것을 추가 할 수 있습니다.
데이터베이스는 실제로 데이터가 저장되는 데이터 모음입니다. DBMS 소프트웨어가 설치된 컴퓨터에 연결된 실제 메모리 구성 요소로, 해당 메모리 구성 요소의 데이터를 조작합니다. dbms 소프트웨어가 설치된 컴퓨터를 서버 또는 데이터베이스 서버라고합니다. 서버 (컴퓨터) 및 데이터베이스 (메모리 구성 요소)는 서로 다르지만 대부분의 경우 상황에 따라 동일이라고합니다.
사용자와 스키마라는 단어는 서로 바꿔서 사용할 수 있으므로 대부분의 사람들이이 단어에 대해 혼동합니다.
사용자는 데이터베이스 (서버)를 연결하는 계정입니다. CREATE USER IDENTIFIED BY를 사용하여 사용자를 만들 수 있습니다.
실제로 Oracle Database에는 데이터를 처리하기위한 논리적 및 물리적 구조가 포함되어 있습니다. 데이터베이스 (메모리 구성 요소)의 데이터를 처리하는 스키마도 논리 구조입니다. 사용자가 만들 때 Oracle에 의해 자동으로 생성됩니다. 여기에는 해당 스키마와 연결된 사용자가 만든 모든 객체가 포함됩니다. 예를 들어, 이름 santhosh
을 가진 사용자를 만든 다음 oracle은이라는 스키마를 생성하면 santhosh
Oracle은 사용자 santhosh
가 만든 모든 객체를 스키마에 저장합니다 santhosh
.
CREATE SCHEMA
명령문 을 사용하여 스키마를 작성할 수 있지만 Oracle은 해당 스키마에 대한 사용자를 자동으로 작성합니다.
DROP SCHEMA <name> RESTRICT
명령문 을 사용하여 스키마를 삭제할 수 있지만 스키마에 포함 된 오브젝트를 삭제할 수 없으므로 스키마를 삭제하려면 비어 있어야합니다. 여기서 제한 단어를 사용하면 객체없이 해당 스키마를 지정해야합니다.
CASCADE
오라클이 객체를 포함하는 사용자를 삭제할 수 없기 때문에 스키마에 객체를 포함하는 사용자를 삭제하려는 경우 단어 를 지정해야 합니다.
DROP USER <name> CASCADE
따라서 Oracle은 스키마에서 객체를 삭제 한 다음 사용자를 자동으로 삭제합니다. 이러한 스키마 객체를 참조하는 객체는 뷰 및 개인 동의어와 같은 다른 스키마에서 유효하지 않은 상태가됩니다.
위의 설명은 Oracle의 구현에 적용되지만 SQL Server 및 PostgreSQL을 포함한 다른 데이터베이스는 스키마를 네임 스페이스, 즉 개체를 그룹화하는 방법으로 사용합니다. 예를 들어, 준비 스키마는 준비 데이터에 사용 된 모든 개체를 그룹화하고 계정 스키마는 계정과 관련된 모든 개체를 그룹화 할 수 있습니다.
사용중인 모든 유형의 데이터베이스 관리 시스템을 기반으로하지 않는 개념에 따라 설명하고 있습니다.
개념적으로 : Database : 데이터베이스는 대부분 관리되지 않는 관련 또는 관련없는 데이터 의 더미입니다 .
스키마 : 스키마는 관리되지 않는 관련 / 관련되지 않은 데이터 를 공식적으로 구조화 하여 스키마에서 제공하는 공식적인 정의를 이해하는 일부 관리 시스템에서 데이터를 관리 할 수 있도록합니다. 스키마는 기본적으로 개요를 제공하기위한 체계입니다. 예를 들어 XML을 생성 할 스키마를 정의하는 XSD가 있습니다. 기본적으로 RDBMS를 작성하는 체계를 정의하는 Codd 규칙 을 기반으로하는 자체 스키마를 정의하는 RDBMS가 있습니다.
이제 더 알고 싶다면이 링크를 참조하십시오 .
사용자는 스키마에 의해 지정된 공식 언어를 사용하여 데이터베이스에 액세스