데이터베이스와 스키마의 차이점


166

SQL Server에서 데이터베이스와 스키마의 차이점은 무엇입니까? 둘 다 테이블과 데이터의 컨테이너입니다.

스키마가 삭제되면 해당 스키마에 포함 된 모든 테이블도 자동으로 삭제되거나 데이터베이스가 삭제 될 때 삭제됩니까?

답변:


171

데이터베이스는 기본 컨테이너이며 데이터 및 로그 파일과 그 안에있는 모든 스키마를 포함합니다. 항상 데이터베이스를 백업하십시오. 데이터베이스는 자체적으로 개별 단위입니다.

스키마는 데이터베이스 내의 폴더와 유사하며 주로 논리 개체를 그룹화하는 데 사용되므로 스키마별로 권한을 쉽게 설정할 수 있습니다.

추가 질문 편집

drop schema test1

메시지 3729, 수준 16, 상태 1, 줄 1
스키마 'test1'은 (는) 'copyme'개체에서 참조하고 있기 때문에 삭제할 수 없습니다.

사용중인 스키마는 삭제할 수 없습니다. 먼저 스키마에서 모든 객체를 제거해야합니다.

관련 독서 :

  1. SQL Server 스키마는 무엇입니까?
  2. MSDN : 사용자 스키마 분리

5
SQL Server 2005 이상 버전에서 데이터베이스 객체를 생성하는 동안 스키마 이름을 언급하지 않으면 기본적으로 모든 것이 DBO 스키마 내부로 이동합니까?
sqlchild

@sqlchild 예, 그렇습니다. 스키마가 필요합니다. 모든 객체는 스키마로 유지되므로 기본값은 dbo입니다.
RichardTheKiwi

각 클라이언트마다 별도의 데이터베이스를 작성하는 대신 동일한 데이터베이스에서 테이블을 복제하고 다른 클라이언트에 따라 스키마로 그룹화하는 것이 좋습니다.
Yevgraf Andreyevich Zhivago

논리는 AWS Redshift와 동일합니까? 누군가? AWS 측면에서 두 가지가 혼동됩니다.
Aakash Basu

19

스키마는 데이터베이스에서 개체를 분류하는 방법입니다. 여러 응용 프로그램이 단일 데이터베이스를 공유하고 모든 응용 프로그램이 액세스하는 공통 데이터 집합이있는 경우 유용 할 수 있습니다.


12

데이터베이스는 스키마가있는 데이터의 컨테이너와 같으며 스키마는 데이터 유형, 관계 및 항목이있는 테이블의 레이아웃입니다.


1
이것은 특히 SQL Server에는 맞지 않습니다. 테이블에는 일반 데이터베이스에는 스키마가 있지만 SQL Server의 스키마 (이유를 아는 사람)는 사실상 테이블을 포함하는 네임 스페이스이기도합니다 (이러한 테이블에도 전통적인 의미의 스키마가 있습니다). Microsoft가 선택한 불행한 이름 namespace이 훨씬 더 적합합니다.
SacredSkull

7

스키마는 데이터베이스에있는 테이블, 가지고있는 열 및 관련 방법을 나타냅니다. 각 데이터베이스에는 고유 한 스키마가 있습니다.


그러나 스키마를 명시 적으로 작성하지 않고 스키마 이름을 언급하지 않고 테이블을 작성하는 경우 테이블이 작성되는 위치는 무엇입니까? 기본적으로 dbo 스키마로 이동해야합니다. 그렇지 않습니까?
sqlchild

예 그러나 일반적으로 수동, 일부 ORM 도구의 첫 번째 장편 일부 관리 도구에서 두 테이블을 만들거나 코드를 사용하여 스키마를 처리하지 않는다
로버트

내가 SQL 서버 관리 스튜디오를 사용하고 난 스키마 이름을 언급하지 않습니다
sqlchild

4

SQL Server의 스키마는 개념적으로 테이블, 뷰, 저장 프로 시저 등과 같은 다른 데이터베이스 개체에 대한 정의를 보유하는 개체입니다.

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