본문 바로가기
  • 시 쓰는 개발자
1일 1개념정리 (24년 8월~)/데이터베이스

1일1개 (49) - 스키마랑 테이블 같은 거 아닌가요 ?

by poetDeveloper 2024. 10. 3.
반응형

1일 1개념정리 24.08.09.금 ~ 

 

큰 결정에 큰 동기가 따르지 않을 때도 있다. 하지만 큰 결심이 따라야 이뤄낼 수 있다.

무조건 무조건 1일 1개의 개념 정리하기 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!


#49. 스키마

흔히들 스키마 = Table 정도로 이해하고 있을텐데, 아니다. 시험문제도 좀만 꼬아서 나오면 바로 틀리는 이 스키마란 녀석에 대해서 알아보자.

 

스키마 (Schema)

스키마는 DB의 구조와 제약 조건을 정의하는 개념으로, "DB의 틀"이라고 할 수 있다. 스키마는 DB의 전체적인 구조와 규칙, 관계 등을 정의한다.

ex) 어떤 테이블이 있는지, 각 열의 형식이나 테이블간 관계 등을 설명

 

테이블은 DB에서 실제 데이터를 저장하는 단위이다. 각 테이블은 특정 스키마에 따라 만들어진다.

ex) 고객정보, 주문내역 등을 실제로 저장

 

스키마 존재 이유

그냥 테이블에 규칙을 표기하면 될 것 같은데, 왜 스키마라는 개념을 굳이 따로 두었을까 ?? 여러 이유가 있겠지만, 보통 주된 이유는 DB를 관리할 때 일관성 유지, 확장시 효율성을 이야기한다.

 

1. 데이터의 일관성 유지

  • 스키마는 각 테이블의 구조(필드 이름, 타입, 제약 조건 등)를 명확히 정의함으로써, 데이터의 일관성을 보장한다. 예를 들면 고객 테이블에서 전화번호는 숫자 형식이어야 하고, 주문 테이블에서 주문일은 미래일 수 없다는 규칙을 스키마로 정의할 수 있다. 이렇게 정의하면 잘못된 데이터가 입력되는 것을 방지할 수 있다.

2. 데이터 무결성 보장

  • 스키마는 참조 무결성(외래키), 고유성(유니크키), 널값 허용 여부(NOT NULL) 등의 제약조건으로 데이터를 올바르게 유지할 수 있다. 이를 통해 존재하지 않는 고객 ID로 주문이 생성되거나, 중복된 데이터가 저장되는 등의 문제를 방지할 수 있다.

3. 효율적인 데이터 관리

  • 각 테이블과 그 관계를 명확히 정의해 쿼리 성능을 최적화하고, DB설계를 체계적으로 유지할 수 있다. 이로써 DB관리자도 관리를 효율적으로 할 수 있다.
  • 또한 스키마를 이용해 인덱스를 설정하면 데이터를 더 빠르게 검색할 수 있다.

4. 확장 및 유지보수 용이

  • 스키마는 DB구조를 명확히 정의하므로 나중에 시스템을 확장하거나 수정할 때 용이하다. 전체적인 구조를 파악하기도 용이해서 DB 변경/관리가 쉽다.

5. 보안 및 접근 제어

  • 스키마를 이용해 사용자별로 권한을 설정할 수 있다. 특정 사용자는 고객 정보를 보고, 다른 사용자는 못보고 이런 권한을 명확히 할 수 있다.
반응형