source

스키마와 테이블, 데이터베이스의 차이점은 무엇입니까?

factcode 2023. 10. 6. 22:04
반응형

스키마와 테이블, 데이터베이스의 차이점은 무엇입니까?

이것은 아마도 00b와 같은(또는 더 나쁜) 질문일 것입니다.하지만 저는 항상 스키마를 데이터베이스의 테이블 정의로 봐왔습니다.이것은 잘못되었거나 완전히 정확하지 않습니다.저는 제 데이터베이스 과정에서 많은 것을 기억하지 못합니다.

스키마 -> 평면도

데이터베이스 -> house

테이블 -> 방

관계 스키마는 테이블의 논리적 정의이며, 테이블의 이름과 각 열의 이름과 유형을 정의합니다.그것은 계획이나 설계도와 같습니다.데이터베이스 스키마는 전체 데이터베이스에 대한 관계 스키마의 모음입니다.

테이블은 여러 행(일명 "튜플")이 있는 구조이며, 각 행은 스키마에 의해 정의된 속성을 가집니다.테이블에는 특정 열에 대한 값을 검색하는 데 도움이 되는 인덱스가 있을 수도 있습니다.

데이터베이스는 공식적으로 데이터의 모든 모음입니다.이런 맥락에서 데이터베이스는 테이블의 모음이 됩니다.DBMS(Database Management System)는 데이터베이스를 관리하고 실행하는 소프트웨어(예: MySQL, SQL Server, Oracle 등)입니다.

한마디로 스키마는 전체 데이터베이스에 대한 정의이므로 테이블, 보기, 저장 프로시저, 인덱스, 기본 키 및 외부 키 등을 포함합니다.

스키마 동작이 OOP 월드에서 볼 수 있는 상위 개체처럼 보이므로 데이터베이스 자체가 아닙니다. 이 링크가 유용할 수 있습니다.

그러나 MySQL에서는 이 둘이 동치입니다.DBASTIAL 또는 DBASS 키워드는 나타나는 곳마다 스키마 또는 스키마로 대체할 수 있습니다.예:

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

MySQL 문서화

스키마 및 데이터베이스 용어는 DBMS에 종속되는 것입니다.

는 수직 열 모형(이름으로 식별됨)과 수평 행을 사용하여 구성된 데이터 요소(값)의 집합입니다.데이터베이스에는 하나 이상의 테이블(대개)이 포함됩니다. 그리고 이 테이블에 데이터를 저장합니다.표들은 서로 연관되어 있을 수 있습니다(여기 참조).

이 특정 게시물은 Oracle에만 관련된 것으로 나타났으며 다른 DB의 컨텍스트에 있을 때 스키마의 정의가 변경됩니다.

아마도 그냥 구글에 올리는 것 같지만 참고로 가장 짜증나는 것은 그들의 정의가 다른 것 같습니다 :)

오라클에서 데이터베이스는 데이터베이스입니다.머릿속으로 이것을 데이터 파일과 redo 로그, 데이터베이스 자체의 디스크(즉, 인스턴스가 아닌)에 실제 물리적 존재로 생각합니다.

스키마는 효과적으로 사용자입니다.보다 구체적으로는 사용자가 소유한 테이블/프로크/인덱스 등의 집합입니다.다른 사용자는 다른 스키마(자신이 소유한 테이블)를 가지고 있지만 사용자는 자신이 선택한 권한 에지가 있는 스키마도 볼 수 있습니다.따라서 데이터베이스는 수백 개의 스키마와 수백 개의 테이블로 구성될 수 있습니다.동일한 데이터베이스에 있는 다른 스키마에 동일한 이름의 테이블을 가질 수 있습니다.

표는 데이터를 포함하는 행과 열의 집합인 표이며 스키마에 포함됩니다.

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

enter image description here

https://www.informit.com/articles/article.aspx?p=30669 에 의거.

모든 개체의 이름은 일부 범위 내에서 고유해야 합니다.모든 데이터베이스에는 고유한 이름이 있어야 하며, 스키마 이름은 단일 데이터베이스 범위 내에서 고유해야 하며, 테이블 이름은 단일 스키마 범위 내에서 고유해야 하며, 열 이름은 테이블 내에서 고유해야 합니다.인덱스 이름은 데이터베이스 내에서 고유해야 합니다.

포스트그레에서SQL 문서:

데이터베이스에는 하나 이상의 명명된 스키마가 있으며, 이 스키마에는 테이블이 포함됩니다.스키마에는 데이터 유형, 함수 및 연산자를 포함한 다른 종류의 명명된 개체도 포함됩니다.동일한 을 서로 다른 다)에서할 수 . 예를 들어, 둘 다 사용할 수 있습니다.schema1그리고.myschema이름이 지정된 테이블을 포함할 수 있습니다.mytable의 모든 할 수 데이터베이스와 달리 스키마는 엄격하게 구분되지 않습니다. 사용자는 권한이 있는 경우 연결된 데이터베이스의 모든 스키마에 있는 개체에 액세스할 수 있습니다.

스키마를 사용하려는 몇 가지 이유가 있습니다.

  • 여러 사용자가 서로 간섭하지 않고 하나의 데이터베이스를 사용할 수 있도록 합니다.

  • 데이터베이스 개체를 논리적 그룹으로 구성하여 관리하기 쉽도록 합니다.

  • 타사 응용프로그램은 다른 개체의 이름과 충돌하지 않도록 별도의 스키마에 넣을 수 있습니다.

스키마는 운영 체제 수준의 디렉토리와 유사하지만 스키마를 중첩할 수 없습니다.

위의 몇 가지 답변과는 달리, 각각의 답변에 대한 경험을 바탕으로 이해합니다.

  • MySQL:database/schema :: table
  • SQL Server:database :: (schema/namespace ::) table
  • Oracle:database/schema/user :: (tablespace ::) table

오라클에서 테이블스페이스가 선택사항인지 아닌지 수정 부탁드립니다, 사용한 지 오래되었습니다.

MusiGenesis는 대부분의 데이터베이스에서 다음과 같이 잘 설명하고 있습니다.

스키마 : 데이터베이스 : 테이블 :: 평면도 : 하우스 : 룸

그러나 Oracle의 경우 다음을 더 쉽게 생각할 수 있습니다.

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

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

SQL 2005에서 스키마는 개체를 그룹화하는 방법입니다.물건을 넣을 수 있는 용기입니다.사람들은 이 물건을 소유할 수 있습니다.스키마에 대한 권한을 부여할 수 있습니다.

2000년에 스키마는 사용자와 동등했습니다.이제 그것은 자유로워졌고 꽤 유용합니다.특정 스키마에 모든 사용자 proc를 넣고 다른 스키마에 관리 proc를 넣을 수 있습니다.적절한 사용자/역할에 EXECURE를 부여하면 특정 절차에 EXECURE를 부여하는 것이 완료됩니다.좋네요.

점 표기는 다음과 같습니다.

서버.데이터베이스.스키마.물건

아니면

제 서버 01입니다.모험은 통합니다.회계.콩

A Schema는 논리 구조를 포함하는 데이터베이스 개체의 모음입니다.소유자의 이름이 기재되어 있습니다. 가.database스키마의 개수는 얼마든지 사용할 수 있습니다.데이터베이스에서 하나의 테이블은 동일한 이름의 두 개의 서로 다른 스키마로 나타날 수 있습니다.사용자는 자신에게 선택 권한이 할당된 스키마를 볼 수 있습니다.

저는 다음과 같은 비유에 대한 이해를 바탕으로 답변을 시도합니다.

  • 데이터베이스는 집과 같습니다.
  • 그 집에는 여러 종류의 방이 있습니다.당신이 아주 큰 집에 산다고 가정하면요.거실, 침실, 욕실, 메자닌, 나무집 등이 똑같이 보이는 것을 정말 원치 않으실 겁니다.이들은 각자 구축/사용 방법을 알려줄 청사진이 필요합니다.즉, 예를 들어 화장실을 짓는 방법/사용법을 알려주는 스키마가 필요합니다.
  • 물론 침실이 여러 개 있을 수도 있고, 각각 모양이 조금씩 다릅니다.당신과 아내/남편의 침실은 아이들의 침실과 약간 다릅니다.각 침실은 데이터베이스에 있는 테이블과 유사합니다.
  • DBMS는 집 안의 집사와 같습니다.그는 말 그대로 모든 일을 처리합니다.

저는 일반적으로 이해되는 용어와 비교하는 수용된 답변이 좋았습니다.하지만 저는 조금 혼란스러웠습니다.업데이트된 버전은 다음과 같습니다.스토리지/메모리 관점에서의 관계:

Database (complete house) >>> schema (one room) >>> table (one closet in the room)

데이터베이스:완전한 집 한 채.복사 안 돼요.

스키마(chema): 특정 룸 하나.집에 많은 방(도식)이 있을 수 있습니다(데이터베이스).

table : 방 안의 수납장 또는 테이블.방에는 테이블이 많이 있을 수 있습니다.

축소 기법을 통해 이를 이해합니다.

데이터베이스 삭제: 완전한 하우스를 레이징 다운(컴퓨터에서 영구적으로 삭제)그 이후에는 집의 일부(데이터베이스)가 남아 있지 않습니다.

스키마 삭제 : 룸의 모든 내용을 삭제합니다.내용물이 있는 다른 방(자료가 저장된 다른 스키마)이 있습니다.

테이블 삭제:전체 하우스(데이터베이스)의 룸(도표) 내부에 있는 옷장 또는 테이블의 내용물을 제거합니다.그래서 이 방(schema)에는 다른 테이블, 그 안에 내용물이 저장된 옷장이 있습니다.

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

스키마에 데이터베이스가 있습니다.

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

schemas > database 입니다.

스키마에는 뷰, 저장 프로시저, 데이터베이스, 트리거 등이 포함됩니다.

스키마는 전체 데이터베이스에 대한 계획이 아닙니다.데이터베이스 내부의 객체(예: 테이블) 부분 집합에 대한 계획/컨테이너입니다.

, 가 수 , (: ) 를.따라서 다양한 스키마로 그룹화하여 다양한 사용자 액세스 권한을 부여할 수 있습니다.

그렇기는 하지만, 여러 개의 도식으로 하나의 테이블을 가질 수 있을지는 잘 모르겠습니다.Management Studio UI는 테이블에 스키마를 할당하는 드롭다운을 제공하므로 하나의 스키마만 선택할 수 있습니다.TSQL을 사용하면 서로 다른 개체 ID로 2개(또는 여러 개)의 서로 다른 개체가 생성될 수 있습니다.

데이터베이스 스키마는 테이블, 뷰, 저장 프로시저 등의 개체를 논리적으로 그룹화하는 방법입니다.스키마를 개체의 컨테이너라고 생각합니다.그리고 표는 행과 열의 집합입니다.모든 테이블의 조합은 DB를 만듭니다.

좋아요, 당신이 이미 알고 있는 것들 중 일부입니다.데이터베이스는 데이터를 보관하지만 스키마는 데이터를 저장하는 방법을 알려줍니다.물리적으로 동일한 것은 데이터베이스:schema::warehouse:selves일 수 있습니다.아마 책꽂이도 (도서관처럼) 구획별로 정리되어 있을 것입니다.

스키마는 기본적으로 데이터베이스를 구성하는 방법입니다.

  • 데이터베이스에 어떤 종류의 "스킴 오브젝트"가 있어야 합니까?
  • 그들을 뭐라고 불러야 합니까?
  • ""type 할 가 있습니까 그들이 가져야 할 가치가 있습니까?

테이블은 "스킴 오브젝트(schema object)"의 한 종류입니다.그 외에는 보기, 연산자, 저장된 기능, 사용자, 역할, 디렉토리 등이 있습니다(이것들은 세분화될 수 있지만, 기본적인 이해를 위해서는 걱정하지 마십시오).

언급URL : https://stackoverflow.com/questions/298739/what-is-the-difference-between-a-schema-and-a-table-and-a-database

반응형