데이터베이스 관리 시스템 - 데이터 관련 요구 사항 파악에서 DBMS의 설계와 응용까지
조민호 지음 / 정보문화사 / 2024년 5월
평점 :
장바구니담기


지금은 빅데이터 시대이기 때문에 어느 회사든 데이터 관리가 무척 중요합니다. 이 빅데이터 강조 트렌드가 늦어도 2018년 경부터는 이미 널리 퍼졌었으므로 어느 회사든 웬만해서는 지금은 다들 DBMS를 돌리고 있는 상태이겠습니다. 책 p20에도 나오듯이, 현재는 대세라 할 만한 것이 RDBMS입니다. 그런데 세상에 영원한 것이란 없고, 천하를 제패한 듯하던 RDBMS도 개별 기업의 상황에 따라 한계가 드러나기도 해서 지금은 살짝 개별화로 가는 추세입니다(그래도 여전히 RDBMS가 다수이긴 합니다. 아직은). p21을 보면 DBMS는 크게 현재 세 가지 부류가 쓰이고 있다고 합니다. 이 중 두번째인 NoSQL을 보면, 지금으로부터 6년 전쯤에는 이 유형이 대세가 될 것이라고들 했었습니다. SQL 그 이상을 지향한다는 뜻이었는데 당초의 기대와는 달리 현장의 수요에는 살짝 포커스가 어긋난 감이 있었습니다. 책에도 나오듯이 현재의 대세인 RDBMS는 어디까지나 SQL 기반입니다. SQL을 모르면 이 주제를 논할 수 없습니다. 

p31을 보면 부울형이 나오는데, 부울은 부울 대수(명제함수)의 개발자 이름(Boole)을 딴 것입니다. 요즘은 외국인 인명 표기에 장음을 쓰지 않기 때문에 불이라고 쓰는 게 맞으나 전산학에서는 시인성 때문인지 이렇게도 여전히 쓰는 것 같네요. 자신의 이름(과 학문적 성과)이, 당시에는 상상도 못했던 전산 시스템의 기본 원리 중 하나로 채택되어 이렇게 널리 쓰일 것이라고는 부울 자신도 아마 몰랐을 듯합니다. p33을 보면 저자는 "프로그램 언어에서 제공되는 데이터형을 모은 것, 클래스와 배열을 함께 사용하면 테이블형이 된다는 걸 눈치빠른 독자는 느꼈을 것이다"라는 문장이 있습니다. 우리는 초보 시절, 전산학 책이라면 그저 기술적 지시 사항만 기계적으로 묵묵히 따라배우는 것으로만 알고 있습니다. 그러나 그렇게 해서는 공부가 재미도 없을 뿐 아니라, 매뉴얼만 따라하다 몸에 익힌 것 말고는 아무 융통성도 응용력도 발휘 못하는 개발자는 요즘 같은 세상에 살아남기가 어렵습니다. 이 책은 저자가 책 곳곳에 심어 둔 유익한 팁도 빠짐없이 익히면서 나의 진짜 실력을 키우는 뚜렷한 장점이 있습니다. 

책 앞에서, 요즘은 꼭 RDBMS가 아니라 개별 기업의 사정에 따라 다양한 시스템을 채용한다는 점을 저자가 지적한 적 있습니다(우리들이 현장에서 보는 바로도 그렇습니다). 그것 관련해서 p48에 설명되는 내용을 유념해서 봐야 하는데, 프로세스 모델링의 필요성에 대한 논의입니다. 특히 이 부분을 보십시오. "단위 기능 수행을 함수로 표현하면 소스의 길이가 줄어들고, 전체 내용 관리도 편해진다." 요즘 나오는 데이터관리 시스템 논의는, 이처럼 가능한 한 소스를 최적화하여, 전체를 한눈에 개관할 수 있어야 함이 자주 강조됩니다. 이 페이지에는 그림2-3을 통해, 구조적 방법론을 위한 표현 기법을 정리합니다. 그림이라기보다는 표인데, 이 표를 통해 독자는 토픽을 일목요연하게 파악할 수 있습니다. 

데이터라는 게, 여기저기 파편화된 상태로는 아무것도 아닙니다. p63에서 저자는 "RDBMS에서 데이터를 다루기 위한 단위는 개체와 속성인데, 개체는 관계 있는 데이터를 묶어주는 게 바로 개체(entity)"라고 한 마디로 설명합니다. 우리가 회사에서 Db를 다루면서, 개체 인스턴스 참조 오류니 뭐니 해서 얼마나 짜증나는 일을 자주 겪었습니까. 이제 그 개체라는 게, 어느 정도 기초 레벨에서 큰 의의를 가지는지 책에서 확인하게 됩니다. 같은 페이지에서 저자는, 도대체 RDBMS에서 "관계"라는 게 어떤 종류가 있으며 그것들이 수행하는 기능이 무엇인지를 여섯 가지 유형으로 정리하여 설명합니다. 

정규화. 책 p90에서 저자는 E-R 모델링을 염두에 두고 "불필요하게 중복되거나 애매한 데이터를 제거하고, 이를 기반으로 정보의 무결성을 높이고자 개발된 기법"이라고 저 정규화라는 개념을 요약합니다. 제가 컴퓨터 책 리뷰 쓸 때마다 하는 말이, 소스나 프로그램이 다 같은 게 아니고, 이른바 "돌아가기만 하면 되는 것 아니냐" 같은 현장의 무책임한 주장을 단호하게 쳐내야 한다는 겁니다. 그런 말은 세기말의 어설픈 일부 PC통신 세대들이나 하던 소리입니다. 뜻밖에도 p102에서야 SQL 개념이 처음 언급되는데, 이미 이 책을 보는 독자들이라면 언어 체계 SQL에 대해 익숙하겠다는 전제 때문이겠네요. p118 이하를 보면 데이터타입에 대한 설명이 시작되는데 p119의 내용들은 절대 잊어버리지 않게 머리 속에 확실하게 정리를 해 두어야 하겠습니다. 

p133을 보면 행을 대상으로 사용하는 SQL함수의 사용법이 나오는데, 이 책에서 제일 유익한 대목이었다고 개인적으로 생각합니다. 설명도 잘 되었을 뿐 아니라 실습 코너에 나오는 예제들이 참 좋습니다. 문자, 숫자, 변환, 일반 함수로 나누어 일일이 소스를 보여 주고, 다음에 바로 이어지는 "테이블을 대상으로 동작하는 SQL 함수" 설명은, 여태 서당개 풍월로 얻어듣던 바로만 일하다가 이제 체계를 잡는 느낌이었습니다. 너무 깔끔하고 유익한 공부였습니다. 

*출판사에서 제공한 도서를 읽고 솔직하게, 주관적으로 작성한 후기입니다.

댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo