RDBS란?
RDBMS는 관계형 데이터베이스 시스템으로 데이터를 표 형태로 구조화하여 관리한다.
표 형태의 데이터 구조를 RDBMS에서는 TABLE이라 한다.
테이블은 속성과 그에 대응하는 데이터 값으로 이루어져 있다. 속성은 테이블에 담긴 데이터의 특징을 나타내고, 이를 통해 다른 테이블과 관계를 맺을 수 있다.
각 테이블의 열(column)은 Attribute or Field라 칭하고, 행(Row)는 Record, Tuple이라 한다.
Schema란?
Schema는 데이터베이스의 구조를 정의하는 설계도를 의미한다.
구체적으로 말하자면 테이블, 행, 열, 인덱스, 관계 등의 데이터베이스 구조를 정하는 것이다.
여기서 인덱스(Index)는 데이터베이스에서 데이터 검색의 속도를 빠르게 하기 위해 사용하는 객체로 책갈피 같은 역할을 한다.
구체적인 사용 예시를 들자면 특정 열에 대한 포인터를 포함하여 데이터 검색의 시간을 단축할 수 있다.
데이터베이스, 테이블, 속성에 대한 관계를 예시를 들어 설명해보자.
데이터베이스는 학교, 테이블은 학생,교실,선생님,급식 등등의 객체, 속성은 학생의 나이, 키, 학번, 성적 등등 객체가 가진 특징을 의미한다
논리적 스키마
논리적 스키마는 테이블에 들어가는 데이터의 자료형을 제한한다.
각 테이블의 속성과 테이블에 들어갈 데이터의 타입, 갯수 등을 설정하여 구조가 동일한 데이터만을 받아들이기 위해서 사용한다.
물리적 스키마
물리적 스키마는 데이터가 저장되는 방법과 위치, 저장되는 구조를 설정하는 것으로 파일 시스템적인 구조를 설계한다.
테이블이 디스크의 어느 위치에 저장되는지, 인덱스의 구조, 파티셔닝 등등 데이터베이스에 파일이 실제로 저장되는 파일 시스템의 위치와 구조를 설계한다
RDBMS의 장점
역사를 보면 많은 DBMS가 개발되고 생성되어 왔지만, 아직 대중적으로 가장 많이 사용하는 건 RDBMS이다.
어째서 RDBMS가 가장 사랑을 많이 받고 있는 것일까?
여전히 Oracle과 MySql과 같은 데이터베이스 모델이 좋은 안정성과 속도를 자랑하기 때문이다.
매우 오랜 시간동안 발전해오면서 기술적으로 개발이 많이 되었고 그에 따른 생태계도 커져서 많은 다른 기술들과의 협업이 가능해졌다.
가이드라인과 문서도 많기에 공부하기 쉬운 장점도 있어 지금까지 이렇게 많은 사람들이 이용하는 것이다.
수직적 확장, 즉 단일 하드웨어의 성능을 높여 더 빠른 속도로 데이터를 다룰 수 있는 장점이 있다.
RDBMS의 단점
하지만 수평적 확장, 즉 여러 서버를 구축하고 이용하는데는 어려움이 있다.
여러 서버를 운영하며 데이터를 분산하여 관리하는 경우 RDBMS에서 가장 중요시 여기는 데이터의 일관성과 무결성에 위반할 가능성이 높기 때문이다.
'분산'이란 단어를 조금 살펴보자면 빅데이터와 관련이 있다. 많은 양의 데이터가 하나의 데이터베이스 안에 있을 때에는 간단한 전체 조회 쿼리만을 입력해도 데이터의 양이 너무 많아서 컴퓨터가 멈추기도 한다.
이게 일관성을 유지하는 방향성을 지닌 RDMBS의 큰 단점이기도 하다.
고정된 스키마를 이용하기에 데이터의 구조가 자주 바뀌는 상황에 유연성이 떨어지며, 반정형 or 비정형 데이터의 처리에 약하다
즉 정리하자면, 관계형 데이터베이스는 데이터의 일관성을 중요시하기에 그만큼 안정적이지만 보수적이며, 유연성이 떨어진다.
같은 관점에서 분산 시스템에 적용하기에 어려움이 있어 데이터가 많아질수록 상대적으로 간단한 쿼리를 입력하는 것도 어려워진다. 때문에 실시간 데이터 처리에도 약하다
그렇기에 RDBMS의 이러한 단점과는 정반대되는 DBMS가 생겼는데 바로 Nosql이다. 다음 글에서는 Nosql에 대해서 자세히 다뤄보겠다
'Data > 데이터베이스 이론' 카테고리의 다른 글
| DB - 04 MongoDB (1) | 2024.07.23 |
|---|---|
| DB - 03 Nosql (Not only SQL) (2) | 2024.07.23 |
| DB - 01 데이터베이스 기초 (1) | 2024.07.15 |