본문 바로가기
IT이론/DB

MS SQL이란 뭘까? - 1 (사전공부 - 관계형 데이타베이스 , 스키마, 샤딩 파티셔닝은 뭘까?)

by 육지상어 2021. 1. 18.
728x90
반응형

MS SQL이란 뭘까? - 1 (사전공부 관계형 데이타베이스 , 스키마, 샤딩 파티셔닝은 뭘까?)

DB에는 여러종류의 DB가 있다. 그중에서 오늘은 현재 프로젝트 마이그레이션(현재 운영환경에서 다른 운영환경으로 이동) 대상인 MS SQL에 대해 잠깐 공부해보자.

마이스크로소프트사에서 만든 SQL로 관계형 데이타베이스 관리 시스템중 하나이다.
여기서 관계형 데이타베이스 관리 시스템은(RDBMS) 말 그대로 관계지향적 모델을 기반으로 제작된 데이타베이스를 말한다.

관계형 데이타베이스 RDBMS의 특징은 아래와 같다.

  1. 중복 제어 - 동일한 데이터가 여러 위치에 저장되는 현상을 방지한다.
    데이터가 중복되면 저장 공간 낭비 + 일관성이 깨질 수 있다.
  2. 접근 통제 - DBMS는 사용자마다 다양한 권한을 줄 수 있으며 권한마다 접근 제어 가능.
  3. 인터페이스 제공 - DBMS는 사용자에게 SQL 및 CLO 및 GUI 등 다양한 인터페이스를 제공
  4. 관계 표현 - 서로 다른 데이터간의 다양한 관계를 표현 할 수 있는 기느 ㅇ제공
  5. 샤딩/파티셔닝 - 구조 최적화를 위한 작은 단계로 쪼개는게 가능
  6. 무결성 제약 조건 - 무결성에 관한 제약 조건을 정의/검사하는 기능을 제공한다.
    데이터베이스는 반드시 무결성 제약조건을 통과한 데이터만을 저장하고 있어야 한다.

여기서 내 안에서 정의가 애매한건 샤딩과 파티셔닝, 무결성 제약 조건이다.
샤딩,파티셔닝 - 같은 테이블 스키마를 가진 DB를 분산하여 저장하는 방법이다.
어플레벨에서도 가능하지만 DB레벨에서도 가능하다.
호리젠탈 파티셔닝(샤딩), 버티칼 파티셔닝(샤딩)이 있다.

  • 프로그래밍 운영적인 복잡도가 더 높아진다.
  • 가능하면 샤딩을 피하거나 지연시킬 방법을 찾는게 우선이다.
    하드웨어 스펙이 더 좋은 컴퓨터를 사용하거나,
    리드의 부하가 크면 캐시나 리플리캐이션(마스터 슬레이브, 추후 공부하자)하거나,
    일부 컬럼만 읽는다면 파티셔닝도 하나의 방법이고, data를 핫 웜 콜드 데이터( 데이터 사용에 따른 분류)를 하는것도 방법이다.

샤딩에 필요한 원리

어떻게 데이타를 읽을지, 어떻게 잘 분산시킬지.

분산 방법 종류 ->이거는 추가 공부해야한다.
(https://nesoy.github.io/articles/2018-05/Database-Shard)


스키마 - 개체의 속성, 속성들의 집합으로 이루어진 개체,개체 사이에 존재하는 관계에 대한 정의, 제약조건들을 기술한 것. 쉽게 말해 DB 내에 어떤 구조로 데이터가 저장되는가를 나타내는 DB 구조. ->
스키마의 특징

  1. 스키마는 데이터 사전에 저장된다.
    -> 데이터 사전이란 시스템 전체에 나타나는 데이터 항목들에 대한 정보를 지정한 중앙 저장소. 이 정보에는 항목을 참조하는데 사용되는 식별자, 항목에 대한 엔티티의 구성요소 항목이 저장되는 곳 , 항목을 참조하는 것.

  2. 현실 세계의 특정한 한 부분의 표현으로써 특정 데이터 모델을 이용해서 만들어진다.

  3. 시간에 따라 불변이다. (시불변성)

  4. 데이터의 구조적 특성을 의미

  5. 인스턴스에 의해 규정된다.
    스키마는 외부, 개념, 내부 스키마로 구분되게 된다.

  6. 개념스키마 = 전체적인 뷰 -> 조직체 전체를 관장하는 입장에서 DB 정의. DB 전체를 기술한 것이기 때문에 한개밖에 없다.

  • DB의 전체적 논리 구조. DB에 실제 어떤 데이터가 저장되며 어떤 관계인지.
  • 모든 응용프로그램이나 사용자들이 필요로하는 데이터를 종합한 조직전체 데이타베이스
  • 개체간의 관계와 제약조건 명시
  • DB 접근 권한 보안 및 무결성 규칙에 관한 명세를 정의
  • DB당 하나만 존재한다.
  • 조직이나 기관에 관점에서 DB 정의
  • 데이타베이스 관리자 DBA에 의해 구성
  1. 내부스키마 - 물리적 저장장치의 입장에서 DB가 저장되는 방법 기술한것.

-구체적인 개념 스키마를 디스크 기억장치에 물리적으로 구현하기 위한 방법을 기술한 것.
실제 내부 레코더 형식, 내부레코드 물리적 순서, 인덱스의 유무등에 관한 것
시스템 프로그래머나 시스템 설계자가 보는 관점 스키마
3. 외부스키마 - 실제 존재하는 데이터들을 어떤 형식 구조 배치 화면을 통해 사용자에게 보여줄것인가

  • 전체 DB 한 부분 서브 스키마
  • 하나의 데이터베이스는 여러 외부스키마가 존재할 수 있다.
    같은 DB에 대해서도 다른 관점 정의할 수 있다.
  • 일반 사용자는 질의어를 이용 DB를 쉽게 사용

DB에 대한 공부를 해보려고하는데 사전 지식이 부족함을 알았다.
구글링보단 책사서 정독하는게 좀더 좋을거같긴 하지만, 일단 했으니 끝까지 해보자.
일단 밤이 늦으니 여기까지

반응형

'IT이론 > DB' 카테고리의 다른 글

sql vs nosql  (0) 2022.03.05

댓글