logo

데이터베이스 스키마

데이터베이스 스키마는 데이터베이스에 있는 데이터의 논리적 저장소를 나타내는 구조입니다. . 이는 데이터 구성을 나타내며 특정 데이터베이스의 테이블 간의 관계에 대한 정보를 제공합니다. 이 주제에서는 데이터베이스 스키마와 해당 유형에 대해 자세히 알아봅니다. 데이터베이스 스키마를 이해하기 전에 먼저 데이터베이스가 무엇인지부터 살펴보겠습니다.

데이터베이스란 무엇입니까?

데이터 베이스 정보를 저장하는 곳입니다. 사람 목록과 같은 가장 간단한 데이터는 물론 가장 복잡한 데이터도 저장할 수 있습니다. 데이터베이스는 정보를 잘 구성된 형식으로 저장합니다.

데이터베이스 스키마란 무엇입니까?

  • 데이터베이스 스키마는 데이터베이스의 논리적 표현으로, 전체 데이터베이스에 데이터가 논리적으로 저장되는 방식을 보여줍니다. 여기에는 데이터가 구성되는 방식과 요소가 서로 어떻게 관련되어 있는지 데이터베이스 엔진에 알리는 속성 및 명령 목록이 포함되어 있습니다.
  • 데이터베이스 스키마에는 다음을 포함할 수 있는 스키마 개체가 포함되어 있습니다. 테이블, 필드, 패키지, 뷰, 관계, 기본 키, 외래 키,
  • 실제로 데이터는 물리적으로 비정형 형태의 파일에 저장되어 있지만, 이를 검색하여 사용하려면 정형화된 형태로 넣어야 합니다. 이를 위해 데이터베이스 스키마가 사용됩니다. 이는 데이터가 데이터베이스에서 구성되는 방식과 다른 데이터와 연관되는 방식에 대한 지식을 제공합니다.
  • 스키마에는 데이터 자체가 물리적으로 포함되어 있지 않습니다. 대신 데이터의 모양과 데이터가 다른 테이블이나 모델과 어떻게 관련될 수 있는지에 대한 정보를 제공합니다.
  • 데이터베이스 스키마 개체에는 다음이 포함됩니다.
    • 모든 데이터 항목에 대한 일관된 형식입니다.
    • 모든 데이터 항목에 대한 데이터베이스 개체 및 고유 키입니다.
    • 여러 열이 있는 테이블이며 각 열에는 해당 이름과 데이터 유형이 포함됩니다.
  • 스키마의 복잡성과 크기는 프로젝트 규모에 따라 다릅니다. 이는 개발자가 데이터베이스를 코딩하기 전에 데이터베이스를 쉽게 관리하고 구조화하는 데 도움이 됩니다.
  • 주어진 다이어그램은 데이터베이스 스키마의 예입니다. 여기에는 세 개의 테이블과 해당 데이터 유형이 포함됩니다. 이는 또한 테이블과 기본 키 및 외래 키 간의 관계를 나타냅니다.
데이터베이스 스키마

데이터베이스 스키마 유형

데이터베이스 스키마는 다음과 같은 세 가지 유형으로 구분됩니다.

    논리적 스키마 물리적 스키마 스키마 보기
데이터베이스 스키마

1. 물리적 데이터베이스 스키마

물리적 데이터베이스 스키마는 데이터가 파일 및 인덱스 형식으로 스토리지 시스템이나 디스크 스토리지에 물리적으로 저장되는 방식을 지정합니다. 물리적 수준에서 데이터베이스를 설계하는 것을 물리적 스키마 .

2. 논리적 데이터베이스 스키마

논리적 데이터베이스 스키마는 저장된 데이터에 적용해야 하는 모든 논리적 제약 조건을 지정합니다. 이는 뷰, 무결성 제약 조건 및 테이블을 정의합니다. 여기서 용어는 무결성 제약 사용되는 규칙 세트를 정의합니다. DBMS(데이터베이스 관리 시스템) 삽입 품질을 유지하고 데이터를 업데이트합니다. 논리적 스키마는 데이터가 테이블 형태로 저장되는 방식과 테이블의 속성이 서로 연결되는 방식을 나타냅니다.

이 수준에서는 프로그래머와 관리자가 작업하며 데이터 구조의 구현은 이 수준에서 숨겨집니다.

논리적 데이터베이스 스키마를 생성하는 데 다양한 도구가 사용되며 이러한 도구는 데이터 구성 요소 간의 관계를 보여줍니다. 이 과정을 IS 모델링 .

ER 모델링은 서로 다른 엔터티 간의 관계를 지정하는 엔터티 관계 모델링을 나타냅니다.

기본적인 상거래 애플리케이션의 예를 통해 이를 이해할 수 있습니다. 아래는 상거래 애플리케이션의 논리적 거래 흐름을 나타내는 간단한 ER 모델인 스키마 다이어그램입니다.

데이터베이스 스키마

주어진 예에서 ID는 각 원에 제공되며 이러한 ID는 기본 키와 외래 키입니다.

그만큼 기본 키는 문서나 기록의 항목을 고유하게 식별하는 데 사용됩니다. 위쪽 세 원의 ID가 기본 키입니다.

그만큼 외래 키 다른 테이블의 기본 키로 사용됩니다. FK는 다이어그램에서 외래 키를 나타냅니다. 한 테이블을 다른 테이블과 연결합니다.

3. 스키마 보기

데이터베이스의 뷰 레벨 디자인은 다음과 같이 알려져 있습니다. 스키마 보기 . 이 스키마는 일반적으로 데이터베이스 시스템과 최종 사용자의 상호 작용을 설명합니다.

물리적 데이터베이스 스키마와 논리적 데이터베이스 스키마의 차이점

물리적 데이터베이스 스키마 논리적 데이터베이스 스키마
속성은 포함되지 않습니다. 여기에는 속성이 포함됩니다.
여기에는 기본 및 보조 키가 모두 포함되어 있습니다. 또한 기본 및 보조 키가 모두 포함되어 있습니다.
여기에는 테이블 이름이 포함됩니다. 여기에는 테이블 이름이 포함됩니다.
여기에는 열 이름과 해당 데이터 유형이 포함됩니다. 열 이름이나 데이터 유형이 포함되어 있지 않습니다.

데이터베이스 인스턴스 또는 데이터베이스 스키마가 동일합니까?

데이터베이스 스키마와 데이터베이스 인스턴스라는 용어는 서로 관련되어 있으며 때로는 동일한 것으로 사용되기 때문에 혼동됩니다. 그러나 둘 다 서로 다릅니다.

데이터베이스 스키마 계획된 데이터베이스를 표현한 것이며 실제로 데이터를 포함하지 않습니다.

반면에, 데이터베이스 인스턴스 특정 시점에 존재했던 실제 데이터베이스의 스냅샷 유형입니다. 따라서 시기에 따라 달라지거나 변경될 수 있습니다. 대조적으로, 데이터베이스 스키마는 정적이며 데이터베이스 구조를 변경하기가 매우 복잡합니다.

라운드 로빈 스케줄링

인스턴스와 스키마는 모두 DBMS를 통해 서로 관련되고 영향을 미칩니다. DBMS는 모든 데이터베이스 인스턴스가 데이터베이스 스키마에서 데이터베이스 디자이너가 부과한 제약 조건을 준수하는지 확인합니다.

스키마 생성

스키마를 생성하기 위해 각 데이터베이스 유형에서 'CREATE SCHEMA' 문을 사용합니다. 하지만 이에 대한 의미는 각 DBMS마다 다릅니다. 아래에서는 다양한 데이터베이스 시스템에서 스키마를 생성하는 방법을 설명합니다.

1. MySQL

~ 안에 MySQL , ' 스키마 생성 ' 문은 데이터베이스를 생성합니다. MySQL에서 CREATE SCHEMA 문은 CREATE DATABASE 문과 유사하며, 스키마는 데이터베이스의 동의어이기 때문이다.

2. 오라클 데이터베이스

Oracle Database에서는 각 스키마가 이미 각 데이터베이스 사용자에게 존재합니다. 따라서 CREATE SCHEMA는 실제로 스키마를 생성하지 않습니다. 오히려 테이블과 뷰가 포함된 스키마를 표시하는 데 도움이 되며 여러 트랜잭션에 대해 여러 SQL 문을 요구하지 않고도 해당 개체에 액세스할 수 있습니다. 'CREATE USER' 문은 Oracle에서 스키마를 생성하는 데 사용됩니다.

3. SQL 서버

에서 SQL 서버에서 'CREATE SCHEMA' 문은 사용자가 제공한 이름으로 새 스키마를 생성합니다.

데이터베이스 스키마 디자인

스키마 디자인은 데이터 관리의 기반을 구축하는 첫 번째 단계입니다. 비효율적인 스키마 디자인은 더 많은 메모리와 기타 리소스를 관리하고 소비하기 어렵습니다. 이는 논리적으로 비즈니스 요구 사항에 따라 다릅니다. 프로젝트 수명주기를 쉽게 진행하려면 올바른 데이터베이스 스키마 설계를 선택해야 합니다. 널리 사용되는 데이터베이스 스키마 디자인 목록은 다음과 같습니다.

    평면 모델 계층적 모델 네트워크 모델 관계형 모델 스타 스키마 눈송이 스키마

평면 모델

평면 모델 스키마는 각 열에 동일한 유형의 데이터가 포함되고 행 내의 요소가 서로 관련되는 2차원 배열 유형입니다. 관계가 없는 단일 스프레드시트 또는 데이터베이스 테이블로 이해될 수 있습니다. 이 스키마 디자인은 복잡한 데이터를 포함하지 않는 소규모 애플리케이션에 가장 적합합니다.

계층적 모델

계층적 모델 디자인에는 나무와 같은 구조가 포함되어 있습니다. 트리 구조에는 데이터의 루트 노드와 해당 하위 노드가 포함됩니다. 각 하위 노드와 상위 노드 사이에는 일대다 관계가 있습니다. 이러한 유형의 데이터베이스 스키마는 XML 또는 JSON 파일로 표시됩니다. 이러한 파일에는 해당 하위 엔터티와 함께 ​​엔터티가 포함될 수 있습니다.

구별되게 세다

계층적 스키마 모델은 다음과 같이 중첩된 데이터를 저장하는 데 가장 적합합니다. 유인원 분류.

네트워크 모델

네트워크 모델 디자인은 일련의 노드와 정점을 표현한다는 점에서 계층적 디자인과 유사합니다. 네트워크 모델과 계층적 모델의 주요 차이점은 네트워크 모델이 다대다 관계를 허용한다는 것입니다. 대조적으로, 계층적 모델은 일대다 관계만 허용합니다.

네트워크 모델 설계는 공간 계산이 필요한 애플리케이션에 가장 적합합니다. 또한 워크플로를 표현하는 데에도 적합하며 주로 동일한 결과에 대한 여러 경로가 있는 경우에 적합합니다.

관계형 모델

관계형 모델은 데이터를 테이블의 관계로 저장하는 관계형 데이터베이스에 사용됩니다. 데이터에서 다른 값을 조작하고 계산하기 위해 데이터를 조작하는 데 사용되는 관계 연산자가 있습니다.

스타 스키마

스타 스키마는 데이터를 구성하는 스키마 디자인의 다른 방법입니다. 방대한 양의 데이터를 저장하고 분석하는 데 가장 적합하며 'Facts'와 'Dimensions'에 작동합니다. 여기 사실 비즈니스 프로세스를 실행하는 수치 데이터 포인트입니다. 치수 사실에 대한 설명이다. 스타 스키마를 사용하면 데이터를 구조화할 수 있습니다. RDBMS .

눈송이 스키마

눈송이 스키마는 스타 스키마를 적용한 것입니다. 스타 스키마에는 주요 데이터 포인트와 해당 차원 테이블에 대한 참조가 포함된 기본 'Fact' 테이블이 있습니다. 그러나 눈송이에서는 차원 테이블이 자체 차원 테이블을 가질 수 있습니다.