답변:
스키마 : 데이터베이스 : 테이블 :: 평면도 : 집 : 방
관계 스키마는 테이블의 논리적 정의입니다 - 그것은 테이블의 이름이 무엇인지 정의 및 각 컬럼의 이름과 유형입니다. 계획이나 청사진과 같습니다. ㅏ데이터베이스 스키마는 전체 데이터베이스에 대한 관계 스키마의 모음입니다.
ㅏ 테이블 스키마에 의해 정의 된 속성을 가지고 각각의 행 (일명 "튜플")의 무리와 함께 구조입니다. 테이블에는 특정 열의 값을 찾는 데 도움이되는 인덱스가있을 수도 있습니다.
데이터베이스는 , 공식적으로, 데이터의 모음입니다. 이와 관련하여 데이터베이스는 테이블 모음입니다. DBMS (데이터베이스 관리 시스템) 관리하고 데이터베이스를 실행 (등 MySQL은, SQL 서버, 오라클 같은) 소프트웨어입니다.
이 특정 게시물은 Oracle에만 관련된 것으로 나타 났으며 다른 DB와 관련하여 스키마 정의가 변경되었습니다.
아마도 구글에 약간의 문제가 있지만 FYI 용어는 가장 성가신 정의에 따라 다릅니다. :)
Oracle에서 데이터베이스는 데이터베이스입니다. 머릿속에서 이것을 데이터 파일 및 리두 로그 및 데이터베이스 자체의 디스크에있는 실제 물리적 존재 (인스턴스 아님)로 생각하십시오.
스키마는 사실상 사용자입니다. 보다 구체적으로 사용자가 소유 한 테이블 / 프로 시저 / 인덱스 등의 집합입니다. 다른 사용자는 다른 스키마 (자신이 소유 한 테이블)를 가지고 있지만 사용자는 선택한 권한을 가진 스키마를 볼 수도 있습니다. 따라서 데이터베이스는 수백 개의 스키마와 각 스키마 수백 개의 테이블로 구성 될 수 있습니다. 동일한 데이터베이스에있는 다른 스키마에 동일한 이름을 가진 테이블을 가질 수 있습니다.
테이블은 데이터를 포함하는 행과 열의 집합 인 테이블이며 스키마에 포함됩니다.
예를 들어 SQL Server에서 정의가 다를 수 있습니다. 나는 이것을 모른다.
스키마는 OOP 세계에서 볼 수 있듯이 부모 개체처럼 보입니다. 데이터베이스 자체가 아닙니다. 어쩌면 이 링크는 유용합니다.
그러나 MySQL에서는 두 가지가 동일합니다. 키워드 DATABASE 또는 DATABASES는 나타날 때마다 SCHEMA 또는 SCHEMAS로 바꿀 수 있습니다. 예 :
SCHEMA 및 DATABASE 용어는 DBMS에 따라 다릅니다.
테이블은 수평 행 (이름에 의해 식별된다)의 수직 열 모델을 이용하여 구성되어, 데이터 요소 (값)의 집합이다. 데이터베이스에는 하나 이상의 (보통) Table이 포함 됩니다. 그리고이 테이블에 데이터를 저장합니다. 테이블은 서로 관련 될 수 있습니다 ( 여기 참조 ).
스키마에 대한 추가 정보 :
SQL 2005에서 스키마는 개체를 그룹화하는 방법입니다. 객체를 넣을 수있는 컨테이너입니다. 사람들은이 개체를 소유 할 수 있습니다. 스키마에 대한 권한을 부여 할 수 있습니다.
2000 년에 스키마는 사용자와 동등했습니다. 이제는 무료로 깨졌으며 매우 유용합니다. 모든 사용자 프로세스를 특정 스키마에, 관리자 프로세스를 다른 스키마에 던질 수 있습니다. 적절한 사용자 / 역할에게 EXECUTE를 부여하면 특정 절차에 대해 EXECUTE를 부여하게됩니다. 좋은.
도트 표기법은 다음과 같습니다.
Server.Database.Schema.Object
또는
myserver01.Adventureworks.Accounting.Beans
위의 답변 중 일부와 달리 다음은 각각의 경험을 바탕으로 한 이해입니다.
database/schema :: table
database :: (schema/namespace ::) table
database/schema/user :: (tablespace ::) table
Oracle에서 테이블 공간이 선택적인지 아닌지에 대해 수정하십시오. 테이블 공간 사용을 기억 한 지 오래되었습니다.
데이터베이스에는 하나 이상의 명명 된 스키마가 포함되며이 스키마에는 테이블이 포함됩니다. 스키마에는 데이터 유형, 함수 및 연산자를 포함한 다른 종류의 명명 된 객체도 포함됩니다. 충돌없이 다른 스키마에서 동일한 객체 이름을 사용할 수 있습니다. 예를 들어 schema1과 myschema 모두 mytable이라는 테이블을 포함 할 수 있습니다. 데이터베이스와 달리 스키마는 엄격하게 분리되지 않습니다. 사용자는 자신이 연결된 데이터베이스의 스키마에있는 개체에 액세스 할 수 있습니다 (권한이있는 경우).
스키마를 사용하려는 몇 가지 이유가 있습니다.
많은 사용자가 서로 간섭하지 않고 하나의 데이터베이스를 사용할 수 있도록합니다.
데이터베이스 개체를보다 쉽게 관리 할 수 있도록 논리 그룹으로 구성합니다.
타사 응용 프로그램은 별도의 스키마에 넣어 다른 개체의 이름과 충돌하지 않습니다.
스키마는 스키마를 중첩 할 수 없다는 점을 제외하고 운영 체제 레벨의 디렉토리와 유사합니다.
공식 문서는 https://www.postgresql.org/docs/9.1/ddl-schemas.html을 참조 하십시오.
스키마는 전체 데이터베이스에 대한 계획이 아닙니다. 데이터베이스 내부의 객체 하위 집합 (예 : 테이블)에 대한 계획 / 컨테이너입니다.
이것은 동일한 기능 범주에 속하지 않는 하나의 데이터베이스 내에 여러 객체 (예 : 테이블)를 가질 수 있다고 말합니다. 따라서 다양한 스키마로 그룹화하고 다른 사용자 액세스 권한을 부여 할 수 있습니다.
즉, 여러 스키마에서 하나의 테이블을 가질 수 있는지 확실하지 않습니다. Management Studio UI는 테이블에 스키마를 할당하는 드롭 다운을 제공하므로 하나의 스키마 만 선택할 수 있습니다. TSQL로 수행하면 다른 객체 ID로 2 개 (또는 여러 개의) 다른 객체가 생성 될 수 있습니다.
데이터베이스 스키마 는 테이블, 뷰, 저장 프로 시저 등과 같은 개체를 논리적으로 그룹화하는 방법입니다. 스키마를 개체의 컨테이너로 생각하십시오. 그리고 테이블은 행과 열의 모음입니다. 모든 테이블의 조합은 db를 만듭니다.