전체 코멘트
4
개
로딩 중입니다
행복에는 덕이면 충분하다안티스테네스

큰 도서관에 처음 들어가면, 거기서 일하는 사람들이 하는 일이 저마다 다르다는 걸 알게 돼요. 어떤 사람은 책장을 새로 짜고 어디에 무슨 칸을 만들지 정해요. 어떤 사람은 그 책장에 책을 꽂고 빼고 찾아 줘요. 또 어떤 사람은 누가 어느 방에 들어갈 수 있는지, 누가 책을 만질 수 있는지 열쇠를 나눠 줘요.
데이터베이스라는 거대한 창고도 똑같아요. 데이터베이스는 회사나 앱이 쓰는 정보를 차곡차곡 모아 둔 디지털 창고예요. 이 창고에 말을 거는 언어가 바로 에스큐엘, 즉 SQL이고요. 그런데 이 말들이 하는 일이 너무 다르다 보니, 사람들은 비슷한 일끼리 묶어 세 무리로 나눴어요. 그게 디디엘, 디엠엘, 디시엘이에요.

첫 번째 무리 DDL은 '데이터를 담을 틀'을 다루는 말이에요. 도서관으로 치면 책이 아니라 책장을 짜는 일이죠. 영어로 풀면 데이터 정의어인데, 정의라는 말이 어렵게 들리지만 뜻은 단순해요. '여기에 이런 모양의 칸을 만들자'고 선언하는 거예요.
예를 들어 회원 정보를 담을 표를 새로 만들고 싶으면 크리에이트라는 말을 써요. 이미 만든 표에 전화번호 칸을 하나 더 붙이고 싶으면 알터를 쓰고요. 표를 통째로 없애려면 드롭을 써요. 만들고, 고치고, 없애고. 이렇게 그릇의 생김새 자체를 바꾸는 말들이 DDL이에요. 한번 실행하면 창고의 구조가 바뀌니까, 가장 무겁고 조심스러운 무리이기도 해요.

두 번째 무리 DML은 만들어 둔 책장에서 실제로 책을 다루는 말이에요. 데이터 조작어라고 부르는데, 조작이라니까 나쁜 느낌이 들 수 있지만 그냥 '손으로 다룬다'는 뜻이에요. 우리가 데이터베이스를 쓰면서 가장 자주 만나는 말들이 다 여기 들어 있어요.
새 회원이 가입하면 그 정보를 표에 집어넣는 인서트, 회원이 이름을 찾고 싶을 때 꺼내 보는 셀렉트, 주소가 바뀌면 고치는 업데이트, 탈퇴하면 지우는 딜리트. 넣고, 보고, 고치고, 지우고예요. 책장의 모양은 그대로 두고, 그 안의 내용물만 바쁘게 들락거리게 하는 일이죠. 앱에서 글을 쓰거나 검색하거나 좋아요를 누를 때마다, 뒤에서는 이 DML 말들이 쉴 새 없이 오가고 있어요.

세 번째 무리 DCL은 권한을 다루는 말이에요. 데이터 제어어라고 하는데, 도서관에서 누구에게 어느 방 열쇠를 줄지 정하는 일과 같아요. 아무나 창고에 들어와 정보를 마구 꺼내 가면 안 되니까, 누가 무엇을 할 수 있는지 문지기처럼 정해 두는 거예요.
어떤 직원에게 회원 표를 볼 수 있는 권한을 주려면 그랜트라는 말을 쓰고, 줬던 권한을 도로 거두려면 리보크를 써요. 준다, 거둔다. 딱 이 두 가지가 핵심이에요. 평소엔 잘 안 보이지만, 정보가 새거나 잘못 지워지는 사고를 막는 게 다 이 무리의 일이에요.

사실 컴퓨터 입장에서는 다 같은 SQL 명령이에요. 그런데 사람이 이해하고 관리하기 편하라고 성격별로 묶은 거예요. 책장을 짜는 일, 책을 다루는 일, 열쇠를 나누는 일은 책임도 위험도 다르잖아요. 구조를 바꾸는 DDL은 신중하게, 내용을 다루는 DML은 자주, 권한을 다루는 DCL은 엄격하게. 이렇게 나눠 두면 어떤 일을 할 때 어디를 조심해야 하는지 한눈에 들어와요.
참고로 커밋이나 롤백처럼 '방금 한 일을 확정하거나 되돌리는' 말을 따로 떼어 티시엘이라는 네 번째 무리로 보기도 해요. 책에 따라 이걸 DCL에 넣기도 하니, 시험에서는 보기를 잘 살펴보면 돼요.

데이터베이스는 정보를 모아 둔 창고이고, SQL은 그 창고에 거는 말이에요. 그 말들을 성격별로 묶은 게 세 무리예요. DDL은 책장을 만들고 고치고 없애는 말, DML은 그 안의 내용을 넣고 보고 고치고 지우는 말, DCL은 누가 무엇을 할 수 있는지 권한을 주고 거두는 말이에요. 만들고 다루고 지키고, 이 세 가지로 기억하면 정보처리기사 시험에서 어떤 명령어를 봐도 어느 무리인지 금방 자리를 찾을 수 있어요.
4
개