문제

이것은 아마도 n00blike (또는 더 나쁜) 질문 일 것입니다. 그러나 나는 항상 스키마를 데이터베이스에서 테이블 정의로 보았습니다. 이것은 잘못되었거나 완전히 정확하지 않습니다. 데이터베이스 과정에서 많이 기억하지 못합니다.

도움이 되었습니까?

해결책

개요 : 데이터 베이스 : 테이블 :: 평면도 ::

다른 팁

관계 스키마 테이블의 논리적 정의입니다 - 테이블의 이름이 무엇인지, 각 열의 이름과 유형이 무엇인지 정의합니다. 계획이나 청사진과 같습니다. ㅏ 데이터베이스 스키마 전체 데이터베이스에 대한 관계 스키마의 모음입니다.

테이블 수많은 행 (일명 "튜플")이있는 구조이며, 각 행은 스키마에 의해 정의 된 속성을 갖습니다. 테이블에는 특정 열에서 값을 찾는 데 도움이되는 인덱스가있을 수 있습니다.

데이터 베이스 공식적으로 모든 데이터 수집입니다. 이와 관련하여 데이터베이스는 테이블 모음이 될 것입니다. ㅏ DBMS (데이터베이스 관리 시스템)는 데이터베이스를 관리하고 실행하는 소프트웨어 (MySQL, SQL Server, Oracle 등)입니다.

간단히 말해서 스키마는 전체 데이터베이스의 정의이므로 테이블, 뷰, 저장 프로 시저, 인덱스, 기본 키 및 외국 키 등이 포함됩니다.

이 특정 게시물은 Oracle과 관련이 있으며 다른 DB의 맥락에서 스키마의 정의가 변경되는 것으로 나타났습니다.

아마도 Google을 Up하는 것은 아마도 FYI 용어는 가장 성가신 일인 정의에 따라 다릅니다. :)

Oracle에서 데이터베이스는 데이터베이스입니다. 당신의 머리에는 이것을 데이터 파일과 Redo Logs 및 데이터베이스 자체의 디스크의 실제 물리적 존재로 생각합니다 (즉, 인스턴스가 아님)

스키마는 효과적으로 사용자입니다. 보다 구체적으로 이것은 사용자가 소유 한 테이블/Procs/Indexe 등 세트입니다. 다른 사용자마다 다른 스키마 (자신이 소유 한 테이블)를 가지고 있지만 사용자가 선택한 특권을 가진 스키마를 볼 수도 있습니다. 따라서 데이터베이스는 수백 개의 스키마와 각 스키마 수백 개의 테이블로 구성 될 수 있습니다. 동일한 데이터베이스에있는 다른 schemas에서 동일한 이름을 가진 테이블을 가질 수 있습니다.

테이블은 테이블, 데이터가 포함 된 행 및 열 세트이며 Schemas에 포함되어 있습니다.

예를 들어 SQL Server에서 정의가 다를 수 있습니다. 나는 이것을 모른다.

스키마는 OOP 세계에서 볼 수 있듯이 부모 객체처럼 보입니다. 따라서 데이터베이스 자체가 아닙니다. 아마도 이 링크 유용합니다.

그러나 MySQL에서는 두 사람이 동일합니다. 키워드 데이터베이스 또는 데이터베이스는 스키마 또는 스키마가 나타나는 곳마다 대체 될 수 있습니다. 예 :

  • 데이터베이스 생성 <=> 스키마 생성
  • 데이터베이스 표시 <=> 스키마 표시

MySQL의 문서화

스키마 및 데이터베이스 용어는 DBMS 의존하는 것입니다.

테이블 수직 열 (이름으로 식별) 및 수평 행 모델을 사용하여 구성되는 데이터 요소 (값) 세트입니다. 데이터베이스에는 하나 이상의 (보통)가 포함됩니다. 테이블 . 그리고 데이터를이 테이블에 저장합니다. 테이블은 서로 관련 될 수 있습니다 (여기를 봐).

스키마에 대한 자세한 내용 :

SQL 2005에서 스키마는 객체를 그룹화하는 방법입니다. 객체를 넣을 수있는 컨테이너입니다. 사람들은이 대상을 소유 할 수 있습니다. 스키마에 대한 권리를 부여 할 수 있습니다.

2000 년에는 스키마가 사용자와 동일했습니다. 이제는 무료로 고장 났고 매우 유용합니다. 모든 사용자 Procs를 특정 스키마에 던지고 관리자 Procs를 다른 스키마에 던질 수 있습니다. Grant는 적절한 사용자/역할에 실행되며 특정 절차에 대한 실행 부여를 받고 있습니다. 멋진.

도트 표기법은 다음과 같습니다.

server.database.schema.object

또는

myserver01.adventureworks.accounting.beans

Schema 논리 구조도 포함하는 데이터베이스 개체 모음입니다. 그것은 그것을 소유 한 사용자의 이름을 가지고 있습니다. ㅏ database 스키마가 많을 수 있습니다. 데이터베이스의 하나의 테이블은 동일한 이름의 두 가지 스키마로 나타날 수 있습니다. 사용자는 선택 권한이 할당 된 스키마를 볼 수 있습니다.

Oracle Schema에서는 하나의 데이터베이스 아래에 하나의 사용자가 있습니다. 예를 들어 Scott은 데이터베이스 ORCL의 하나의 스키마입니다. 하나의 데이터베이스에는 Scott과 같은 많은 스키마가있을 수 있습니다.

musigenesis가 너무 멋지게 말한 것처럼 대부분의 데이터베이스에서 :

스키마 : 데이터베이스 : 테이블 :: 평면도 : 집 : 방

그러나 오라클에서는 다음을 더 쉽게 생각할 수 있습니다.

스키마 : 데이터베이스 : 테이블 :: 소유자 : 집 : 방

위의 답변 중 일부와 달리 여기에 각각의 경험을 바탕으로 이해가 있습니다.

  • mysql : database/schema :: table
  • SQL Server : database :: (schema/namespace ::) table
  • 신탁: database/schema/user :: (tablespace ::) table

테이블 스페이스가 Oracle의 선택 사항인지 아닌지 여부에 대해 저를 바로 잡으십시오. 제가 사용하는 것을 기억 한 지 오랜 시간이 지났습니다.

Schemas에는 데이터베이스가 포함되어 있습니다.

데이터베이스는 스키마의 일부입니다.

따라서 Schemas> 데이터베이스.

Schemas는 뷰, 저장 프로 시저, 데이터베이스, 트리거 등을 포함합니다.

스키마는 전체 데이터베이스에 대한 계획이 아닙니다. AA 데이터베이스 내부의 객체 (Ex.Tables)의 하위 집합에 대한 계획/컨테이너입니다.

이것은 하나의 데이터베이스 내부에 여러 객체 (예 : 표)을 가질 수 있으며, 이는 동일한 기능 범주에 속하지 않는 하나의 데이터베이스 내에있을 수 있다고 말합니다. 따라서 다양한 스키마로 그룹화하여 다른 사용자 액세스 권한을 제공 할 수 있습니다.

즉, 여러 스키마 아래에서 하나의 테이블을 가질 수 있는지 확실하지 않습니다. Management Studio UI는 스키마를 테이블에 할당하기 위해 드롭 다운을 제공하므로 하나의 스키마 만 선택할 수 있습니다. TSQL로 수행하면 객체 ID가 다른 2 개 (또는 다중) 다른 객체를 생성 할 수 있다고 생각합니다.

데이터베이스 개요 테이블, 뷰, 저장 절차 등과 같은 객체를 논리적으로 그룹화하는 방법입니다. 스키마를 객체의 컨테이너로 생각하십시오. 테이블은 행과 열의 컬렉션입니다. 모든 테이블의 조합은 DB를 만듭니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top