학부 데이터베이스 수업을 수강하게 되었다.

    이번 학기에 데이터베이스 수업을 듣는다. 전공필수라서 안 들을 수도 없지만 데이터베이스를 막상 짜보니 은근히 짜는 재미도 있..는 것 같다.

이번 학기 수업에서는..

  • postgresql 사용
  • psql이라는 command prompt 환경을 사용하여 데이터베이스를 관리

위 조건에서 진행되는 것 같은데, 나한테는 psql 환경이 너무 어려웠다.
왜냐하면 psql 환경이 CUI 환경이기 때문이다. (character user interface)
    즉, 우리가 익숙한 GUI환경이 아니란 것이다. git으로 예를 들자면 git bash를 쓴다는 느낌이랄까.. 한번 커맨드를 잘못 치면 수정도 힘들고 한꺼번에 잘못 친 걸 지울 수도 없다. 한 글자씩 정성스럽게 지워야 한다(..)

그래서 짜라는 데이터베이스는 안 짜고 구글링을 해보다가 좋은 GUI 툴을 발견하였다.
이름하여 tableplus!

tableplus 공식 홈페이지
tableplus documentation

쓴지 하루밖에 되지 않았지만 좋다.
GUI도 깔끔하고 CUI의 불편했던 대부분의 점들을 해소해 준다. 데이터베이스에 tuple을 집어 넣을 때 엑셀에서 데이터를 채우듯이 그냥 tableplus가 보여주는 표에 내용을 채워서 commit하면 된다.

무료 버전과 유료 버전이 나누어져 있는데 나는 무료 버전을 사용중이다. 가장 눈에 띄는 무료 버전 제약 중 하나는 창을 동시에 최대 3개까지밖에 못 띄운다.
3개가 넘어갈라하면 바로 유료 버전을 쓰시겠냐는 지겨운 팝업이 뜬다.

일단 설명은 여기까지 하고 포스팅 목적인 local database를 tableplus를 이용해서 연결하고 다루는 법을 소개하겠다.

처음 설치를 하면 window 기준 이런 창이 나온다.

아 물론 pg라는 아이콘들은 내가 연결한 database이므로 처음에는 저 부분에 아무것도 없을 것이다.
여기서 아래의 create a new connection을 눌러주자. 그 다음 자신이 다룰 database의 종류를 정해주자. 나는 postgresql이므로 눌러주면,

자신이 연결한 database의 정보를 기입하는 창이 나온다.
아닌 사람도 있겠지만 나는 어차피 로컬에서만 실습용으로 주구장창 돌릴 것이기 때문에 대부분의 정보를 default로 설정했다.

port가 5432인 것과 user password만 빼고 username이나 기타 등등은 다 default 상태이다.

이러한 경우에 정보를 어떻게 써 넣느냐? default라 해 놓았다고 해서 절대 빈칸으로 기입하면 안 된다. 연결이 안된다(..)

정보를 default로 했을 때,

  • username : postgres (psql에서 \du 명령어로 등록된 user들 확인가능)
  • name : 자신이 연결 후에 붙일 database 별칭(Alias)
  • post : 자신이 설정한 포트 번호
  • password : 자신이 psql 세팅 시 설정한 password
  • Tag : local로 설정하면 됨.(local로 돌릴 때)
  • database : postgres (이거 psql에서 확인하는 방법이 있었는데 까먹었네)

이 정도만 채우고 나머지는 건드리지 않아도 된다. 물론 server로 remote로 돌릴 경우는 over ssh 체크박스 아래 내용도 기입해야 할듯.

그리고 connect를 누르면 이제 데이터베이스를 다룰 수 있는 화면이 나오게 된다.

layout에서 특히 아래 data 버튼을 누르면 ctrl+i 로 새로운 tuple을 만들 수 있다. 근데 내용을 기입한다고 해서 저장이 되는 건 아니다. commit을 하기 전까지 사용자가 변경한 내용을 tableplus가 set of query 상태로 변환하여 갖고 있다가 commit을 하게 되면 그제서야 sql에게 query문을 보내게 된다.

이 쿼리문들은 ctrl + shift + p로 미리 볼 수 있다.

그리고 여러 항목을 수정하다 보면 순서가 중요한 query문들이 생기게 마련이다.
가령 foreign key 제약이 있는데 referenced되는 table에 해당 값이 없는데 referencing하는 table에 먼저 tuple을 생성하고 referenced되는 table에 해당 값을 가진 tuple을 생성한다든가 하면 큰 문제가 된다.

이걸 tableplus는 어느 정도 알아서 순서를 맞춰줘서 sql에게 보내는 것 같다.

또, commit을 하기 전에 잘못된 수정 사항을 발견했다면 이걸 discard할 수 있어야 한다.
이 단축키는 ctrl + shift + delete이다. 대신 지금까지 수정한 commit되지 않은 수정 사항을 한번에 다 버려버리므로 주의하자.

query editor를 불러내는 키는 ctrl + E이다. 근데 이 창도 최대 허용 수인 3개 안에 들어가므로 주의한다. 쓰면 알겠지만 여간 불편한 게 아니다ㅋㅋ

댓글남기기