이전까진 DataBase 줄여서 DB 는 데이터를 모아 저장하는 곳이라고 알고 있었다
뭐 아주 틀린말은 아니지만 여러 강의에서 데이터베이스를 이용하는 법을 말할때 단순히
저 정의만으로는 납득이 가지 않기도 하고, 어떤 강의에서는 '데이터베이스를 다루기 위한 프로그램'인
DBSM (Data Base Management System) 에는 오라클, MySQL, 레드헷 등등이 있다고 알고있는데
오라클 등의 저 프로그램들을 데이터베이스라고 부르기도 해서 더 혼동이 왔었다
그렇다면 "데이터베이스를 관리하는 시스템 = 데이터베이스" ??
이게 무슨 소린가? 마치 망치란 못을 두드리기 위한 도구라고 하고선 못을 망치라고 부르는 것과 같지 않은가!
구분을 확실히 하고 싶어서 구글링을 하니 데이터베이스 자체에 대한 설명이 너무 추상적이고 복붙한 것처럼
다 똑같은 내용의 대학과제 제출용 나무위키 복붙이거나 조금 수정일뿐 내가 부족하다 느끼는 내용이었다
유튜브로 검색을 하니 모두 데이터베이스를 사용하는 법에 대해서만 알려주고
데이터베이스라는 말 자체의 경계를 명확히 정의하기엔 부족해서 답답했다
그러던차에 지금 난 도서관에 있으니 책에서 그 답을 찾을 수 있지 않을까 했다. 유레카!
"데이터베이스 첫걸음" 이라는 책을 읽고 내가 원하는 답을 찾을 수 있었다
'데이터베이스'와 'DBMS'란 단어는 실제 개별환경에서도 별로 구분되지 않고 사용되는 경우가 많지만, 엄밀히 따지면 둘은 약간 다릅니다. '데이터베이스'라는 것은 기능이나 구조를 나타내는 추상적인 개념이고, 'DBMS'는 그것을 실현하기 위해 작성된 구체적인 소프트웨어를 가리킵니다. 그래서 Oracle이나 MySQL 같은 제품은 'DBMS이며 데이터베이스는 아니다' 가 바른 표현입니다.
예를 들어 'MySQL은 DBMS의 한 가지다'라는 표현은 맞지만, 'MySQL은 데이터베이스의 한 가지다'라는 표현은 '추상'과 '구상'을 혼동한 이상한 표현입니다. MySQL은 구체적으로 조작하는 것이 가능한 물리적 실체를 동반한 제품(이것을 구현 implementation 이라고 합니다)이지만, 데이터베이스는 어디까지나 기능의 집합을 나타내는 추상적 개념이기 때문입니다. 그렇다고는 해도 실제로 데이터베이스와 DBMS라는 2가지의 용어에 대해 엄밀한 구분하여 사용하지는 않고, 후자가 통하는 경우가 대부분입니다.
미크, 기무라 메이지 지음, 『데이터베이스 첫걸음』, 박주항 옮김, 한빛미디어(2016), p44-45.
즉 데이터베이스란, 그저 데이터를 저장하는 공간이라는 하드웨어 적인 개념 뿐만 아니라 외부의 명령에 의해 데이터가 다루어지는 소프트웨어적인 부분도 포함하는 개념이라 보면 되겠다. DB의 데이터를 다루는 추상적인 부분을 구현하여 만든 소프트웨어들인 DBMS가 사용되는 것이다.
예를 들면 이런 것이다. 식사를 예로 들어본다면, 식사라는 생활의 부분은 목적도 명확하고 꼭 필요한인데,
음식으로 배를 채운다 라는 식으로 식사를 하는 추상적 개념을 구체화 한 것과 같다
여기서 식사란 데이터베이스고, DBMS란 음식으로 배를 채우는 것과 같다음식으로 배를 채우는 것(DBMS) 에는 밥, 빵 섭취 등 여러 방법이 있지만 식사를 구체화하는 방법의 하나일 뿐이다"식사를 한다"와 "밥으로 배를 채운다"라는 말이 정확한 개념은 다르지만 같은 뜻으로 사용되는 것과 같다
마치 서버를 말할때 서버의 소프트웨어 부분적인 부분도 서버라 하고
그걸 실행시키기 위한하드웨어 적인 부분도 서버라고 혼용해서 쓰이는 것과 같다고 보면 되겠다
둘의 차이가 이제 좀 납득이 간다
+@ 특이한 점이 있다면 이 책은 일본인 저자라 그런지 데이터베이스의 기본 조작을
흔히 말하는 CRUD 가 아닌 SIUD라고 저술하고 있다
Creat, Read, Update, Delete 가 아닌
Select, Insert, Updatd, Delete 라고 말하는 점은 신선한 관점이었다
'DataBase > 이론 및 용어' 카테고리의 다른 글
Transaction 트랜잭션 (0) | 2022.05.23 |
---|
댓글