데이터베이스와 사용자 및 스키마의 차이점


78

데이터베이스, 사용자 및 스키마라는 용어와 혼동됩니다. 누구든지 서로 어떻게 다른지 설명 할 수 있습니까?

그것들이 동일하다면, 그들 사이의 유사점은 무엇입니까? 우리는 그것들을 어떻게 사용합니까? 어떻게 만들까요?


이 기본적인 아이디어를 줄 것이다 희망 answers.com/Q/Difference_between_user_and_schema_oracle
Sandun Madola

답변:


77

Oracle에서 사용자와 스키마는 본질적으로 동일합니다. 사용자는 데이터베이스에 연결하는 데 사용하는 계정이고 스키마는 해당 계정에 속하는 개체 집합 (테이블, 뷰 등)이라고 생각할 수 있습니다.

Stack Overflow : Oracle에서 사용자와 스키마의 차이점 에 대한이 게시물을 참조하십시오 . 자세한 내용과 추가 링크는

create user명령문으로 사용자를 작성합니다 . 이것은 또한 스키마를 "생성"합니다 (처음에는 비어 있음). 스키마를 생성 할 수 없으며 사용자와 연결되어 있습니다. 사용자가 생성되면 관리자는 사용자에게 권한을 부여하여 테이블을 생성 하고 select쿼리를 실행하는 insert등의 모든 작업을 수행 할 수 있습니다 .

데이터베이스는 생성 한 모든 사용자와 해당 데이터 (그리고 모든 것이 작동하도록하는 사전 정의 된 시스템 사용자, 테이블, 뷰 등)를 포함하는 것입니다. 당신은 살펴 봐야 오라클 데이터베이스 아키텍처 (전체 페이지 가치가 읽기 것을 실제로 - 사용자와 높은 해당 페이지에서 최대 스키마에 대한 섹션있다)이 개념 안내서의 문서 데이터베이스가 무엇인지에 대한 소개를 얻기 위해, 그리고 무엇 데이터베이스 인스턴스 는 두 가지 중요한 개념입니다.

create databaseOracle 소프트웨어 스택을 설치 한 후에는 명령문 으로 데이터베이스를 작성할 수 있습니다 . 그러나 dbca(데이터베이스 생성 도우미)를 사용하는 것이 더 쉽습니다.


2

용어가 때때로 사용되는 방식에 따라 a USER와 a SCHEMA는 다소 유사합니다. 그러나 큰 차이점도 있습니다. " "가 객체를 소유 USER하는 SCHEMA경우 A 라고 할 수 있습니다 USER. 그렇지 않으면 " USER" 만 남게됩니다 . 일단 USER하나 이상의 객체를 소유하고 나면 위의 모든 정의로 인해 ... USER를 이제이라고 할 수 있습니다 SCHEMA.


여기에서 지적하는 것은 'SCHEMA'라는 용어가 다면적이라는 것입니다. 한편으로는 데이터베이스 개체의 네임 스페이스입니다. 또한 PostgreSQL이 아닌 Oracle (및 기타)에서는 스키마 이름을 공유하는 사용자가 만든 객체를 포함하는 데이터베이스 객체 네임 스페이스입니다. 다른 관점에서 볼 때, 데이터베이스에서 개체의 관계와 구조는 소유권과 네임 스페이스를 모두 무시하는 경우가 많습니다.
Andrew Wolfe

2

차이점을 이해하기 시작하려면이 명명법이 Oracle의 실수라고 말해야합니다.

TRITON이라는 ERP가 있으면 데이터베이스 이름을 TRITON으로 지정하거나 회사 이름이 JENNY EXPORT 인 경우 JENNYEXP 또는 이와 유사한 이름으로 내 데이터베이스를 결정할 수 있습니다. 같은 이름의 사용자가 필요하지 않습니다. .

Oracle에서는 테이블을 작성하기 전에 USER를 작성해야하며이 TABLES 콜렉션을 SCHEMA라고하는 것이 이상합니다.

그런 다음 실제 사용자를 작성하고이 예제에 따라 TRITON과 같은 데이터베이스로 작업 할 수있는 적절한 권한을 부여 할 수 있습니다. 그런데 SQL DEVELOPER를 통해 연결하는 경우 연결 이름을 지정해야합니다.

나는 좌절감을 느낀다는 것을 알고 있지만 MS SQL SERVER 명명 규칙이 더 의미가 있으며 SQL SERVER보다 이전에 Oracle에서 작업했다는 것을 추가 할 수 있습니다.


1

데이터베이스.

데이터베이스는 실제로 데이터가 저장되는 데이터 모음입니다. DBMS 소프트웨어가 설치된 컴퓨터에 연결된 실제 메모리 구성 요소로, 해당 메모리 구성 요소의 데이터를 조작합니다. dbms 소프트웨어가 설치된 컴퓨터를 서버 또는 데이터베이스 서버라고합니다. 서버 (컴퓨터) 및 데이터베이스 (메모리 구성 요소)는 서로 다르지만 대부분의 경우 상황에 따라 동일이라고합니다.

사용자와 스키마

사용자와 스키마라는 단어는 서로 바꿔서 사용할 수 있으므로 대부분의 사람들이이 단어에 대해 혼동합니다.

사용자

사용자는 데이터베이스 (서버)를 연결하는 계정입니다. CREATE USER IDENTIFIED BY를 사용하여 사용자를 만들 수 있습니다.

개요

실제로 Oracle Database에는 데이터를 처리하기위한 논리적 및 물리적 구조가 포함되어 있습니다. 데이터베이스 (메모리 구성 요소)의 데이터를 처리하는 스키마도 논리 구조입니다. 사용자가 만들 때 Oracle에 의해 자동으로 생성됩니다. 여기에는 해당 스키마와 연결된 사용자가 만든 모든 객체가 포함됩니다. 예를 들어, 이름 santhosh을 가진 사용자를 만든 다음 oracle은이라는 스키마를 생성하면 santhoshOracle은 사용자 santhosh가 만든 모든 객체를 스키마에 저장합니다 santhosh.

CREATE SCHEMA명령문 을 사용하여 스키마를 작성할 수 있지만 Oracle은 해당 스키마에 대한 사용자를 자동으로 작성합니다.

DROP SCHEMA <name> RESTRICT명령문 을 사용하여 스키마를 삭제할 수 있지만 스키마에 포함 된 오브젝트를 삭제할 수 없으므로 스키마를 삭제하려면 비어 있어야합니다. 여기서 제한 단어를 사용하면 객체없이 해당 스키마를 지정해야합니다.

CASCADE오라클이 객체를 포함하는 사용자를 삭제할 수 없기 때문에 스키마에 객체를 포함하는 사용자를 삭제하려는 경우 단어 를 지정해야 합니다.

DROP USER <name> CASCADE

따라서 Oracle은 스키마에서 객체를 삭제 한 다음 사용자를 자동으로 삭제합니다. 이러한 스키마 객체를 참조하는 객체는 뷰 및 개인 동의어와 같은 다른 스키마에서 유효하지 않은 상태가됩니다.


-2

위의 설명은 Oracle의 구현에 적용되지만 SQL Server 및 PostgreSQL을 포함한 다른 데이터베이스는 스키마를 네임 스페이스, 즉 개체를 그룹화하는 방법으로 사용합니다. 예를 들어, 준비 스키마는 준비 데이터에 사용 된 모든 개체를 그룹화하고 계정 스키마는 계정과 관련된 모든 개체를 그룹화 할 수 있습니다.


"위의 명령문"이라고 말할 때 참조 할 내용이 확실하지 않지만 SQL 및 Oracle의 스키마는 권한 그룹입니다. 즉, 객체와 같이 그룹화하는 방법이 아니라 객체를 그룹화하는 방법이 아니라 스키마에 권한을 부여 할 수 있으므로 권한 관리가 쉬워 지므로 스키마 내의 각 객체에 권한을 부여하지 않아도됩니다.
Thronk

-4

User! = Schema, User 및 Schema는 동일하지 않지만 서로 바꿔 사용할 수 있습니다.


2
차이점에 대한 세부 사항을 추가하십시오.
Erik

-4

사용중인 모든 유형의 데이터베이스 관리 시스템을 기반으로하지 않는 개념에 따라 설명하고 있습니다.

개념적으로 : Database : 데이터베이스는 대부분 관리되지 않는 관련 또는 관련없는 데이터 의 더미입니다 .

스키마 : 스키마는 관리되지 않는 관련 / 관련되지 않은 데이터 를 공식적으로 구조화 하여 스키마에서 제공하는 공식적인 정의를 이해하는 일부 관리 시스템에서 데이터를 관리 할 수 ​​있도록합니다. 스키마는 기본적으로 개요를 제공하기위한 체계입니다. 예를 들어 XML을 생성 할 스키마를 정의하는 XSD가 있습니다. 기본적으로 RDBMS를 작성하는 체계를 정의하는 Codd 규칙 을 기반으로하는 자체 스키마를 정의하는 RDBMS가 있습니다.

이제 더 알고 싶다면이 링크를 참조하십시오 .

사용자는 스키마에 의해 지정된 공식 언어를 사용하여 데이터베이스에 액세스

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.