2016년 12월 17일 토요일

Database

Tags

Arango Shell에서 database 다루기

ArangoShell에서 Javascript를 통해 database를 관리할 수 있다.

Database Method

Database 생성 

아래와 같은 명령을 통해 생성한다. database 생성은 현재 database가 _system 인 상황에서만 가능하다.(즉, 현재가 관리자 권한일 때만 가능)
  • db._createDatabase(name, options, users)

1. name

name에 대한 제약사항은 아래와 같다.
  • 영어 대소문자
  • 숫자
  • _(underscore), -(dash)
  • 영어 대소문자 혹은 _(underscore)로 시작해야 함. _(underscore)로 시작하는 것은 system database들로 user는 이를 생성하거나 삭제할 수 없다.
  • database이름은 최대 64byte이다.
  • 대소문자를 구분한다.
database를 생성한 이후에 자동으로 해당 database로 전환되지 않으므로 db._useDatabase를 이용하여 전환해야 한다.

2. option

options는 현재 사용되지 않으나 향후 arangodb에서 지원할 예정이다.

3. users

생성되는 database의 사용자의 권한을 지정한다. user에 들어가는 list의 각 object는 아래 속성을 포함한다.
  • username : 필수
  • passwd : 지정하지 않을 경우 빈 문자열
  • active : boolean, default true
  • extra : 추가 정보
만약 user 속성을 지정하지 않을 경우, root가 기본 user이고 비밀번호는 빈 문자열이다.
참고로 위 passwd는 database에 접근하기위한 비밀번호이며, user passwd와는 다르다.

Database list

이제 test라는 database를 생성했으므로 어떤 database가 있는지 살펴보자.
  • db._databases()
_system은 default database로 일반 사용자가 건들 수 없다. 위에서 createDatabase를 통해 test database 가 생성됨을 확인 할 수 있다.

Database 이름

  • db.name()은 database 이름을 리턴한다. 

Database 사용

  • db._useDatabase(name)
위에서 생성한 test로 전환을 해보자.
  • db._useDatabase('test')
db._name을 통해 현재 사용중인 database가 test로 성공적으로 전환됨을 볼 수 있다.

id

현재 database의 id를 확인할 수 있다.
  • db._id()
새로 생성한 test database의 id는 9488임을 알 수 있다.

Local path

db의 실제 파일시스템의 경로를 확인할 수 있다.
db의 path를 보면, @ROOT@의 database의 database-{id}로 파일이 생성됨을 확인할 수 있다.

System database 여부 체크

현재 database가 _system database인지 여부를 리턴한다.
현재가 _system이면 true를, test이면 false를 리턴하는 것을 확인할 수 있다.

Database 삭제

  • db._dropDatabase(name)
create와 마찬가지로 _system database에서만 가능한 method이다. 만약 현재가 위에서 생성한 test일 경우 아래처럼 에러가 발생한다.

 _system으로 전환한 후 drop할 수 있다.



EmoticonEmoticon

:)
:(
hihi
:-)
:D
=D
:-d
;(
;-(
@-)
:o
:>)
(o)
:p
:-?
(p)
:-s
8-)
:-t
:-b
b-(
(y)
x-)
(h)