큐브리드 매니저는 MySQL의 GUI Tools와 같이 DB를 쉽고 편하게 접근할 수 있게 해줍니다. 그렇다고 너무 툴에 의존하시면 쿼리문 다 까먹습니다-_-; 사실 전 툴의존도가 높아서 insert문도 가끔 생각이 안날때가 있습니다-_-;

우선 메뉴를 보면 파일, 편집, 도구, 동작이 있는데요. 
파일, 편집은 제끼고, 도구에서 보면 데이터베이스를 조작할 수 있는데요. 데이터베이스별로 동작을 중지하고 시작할 수 있더군요. 다른 것에서는 안되는 것 같았는데... 암튼 도구에는 여러 유용한 도구가 있습니다. SQL파일을 가져와서 실행하는 것도 있구요.

1. 데이터베이스 생성.
우선 큐브리드 매니저로 데이터베이스를 생성해봤습니다. 데이터베이스 이름이.....6자를 넘기지 못하는군요-_-; 6자로 제한한 이유가 있는건가요? 다른 건 길게 써도 된 것 같은데-_-;
사용자 삽입 이미지
헉....방금 1.2버전이 나온 것 같아 설치하니 6자이름 넘는 것도 되는군요-_-; 데이터베이스를 생성하는데 볼륨타입이라는 게 있는데 이게 뭔지 모르겠네요.

2. 테이블(클래스)
테이블 생성하는 곳이 없어서 한참 찾았습니다. demodb를 보니 스키마 -> 사용자스키마 -> 클래스 부분에 있더라구요. 큐브리드는 객체지향적인 DB를 설계하려고 했던 것 같습니다. 검색해보니, 큐브리드는 ORDBMS(Object-Relational)라고 불리우는데요. 기존에 RDBMS에 단점을 보완하고자 이 개념을 적용한 것 같은데요. 테이블을 상속하고, 데이터를 객체로 봐서 참조접근이 가능하도록하고, 객체에서 set형태로 데이터를 저장하는 법도 가능한 그런 기능이 들어있는 것 같습니다(테스트는 안해봤습니다 ㅠ)
객체지향적 설계된 애플리케이션에 유리할 것 같기도 하네요(DB를 잘 몰라서-_-) 암튼, 클래스를 생성하는 게 테이블 생성하는겁니다 ^^
생성에서 column은 속성인가보군요. 타입은 기본적인 것은 다 지원하는 것 같습니다만(저도 항상 사용하는 타입만 사용하는지라-_-), 오라클에서 제공하는 BLOB이나 CLOB타입 같은 건 없는건가...-_-;
암튼 테이블을 생성하고 나면 인스턴스(레코드를 인스턴스라고 하는군요)를 추가하고 추가된 인스턴스를 엑셀파일로 뽑을 수 있군요. 다른 dbms는 다양한 타입으로 뽑을 수 있는데, 그것도 지원했으면 좋겠네요^^

3. 질의편집기
음.....컨트롤 스페이스를 지원하지 않아요 ㅠ 보면 SQL문의 코드완성은 지원을 해주고 있습니다.
사용자 삽입 이미지
테이블명 같은 것은 안되네요. 코드힌트 기능이 결코쉬은 것은 아니지만 있었으면 좋겠네요^^ 그리고, 당연히 국산이여서 한글이 깨질 일은 없겠죠?^^ 예전에 오라클과 Golden32를 사용했을 때 한글문제로 애먹었거든요. 단순 인코딩이 안맞아서 그런 것이였지만 ^^

후.....매니저를 이것저것을 만져봤는데, 기본기능은 다 있지만, 심화기능은 많이 없습니다. 프로시저생성이나 함수생성 같은 경우는 제가 못찾는 건지 모르겠지만, 없네요. 질의편집기에서 직접 생성해야하는 듯 합니다. 결과에서 편집하는 것도 제가 못하는 건지 편집기능이 없는 것 같네요.

그래도, 국산DBMS가 있다는 게 참 자랑스럽네요. 다음 시간에는 직접 db를 조작해봐야겠습니다. 애플리케이션과 연동도 해보고, 데이터 내용도 불러보고.......-_-;

 
Posted by 머드초보

댓글을 달아 주세요

 
이 망할 놈의 오라클은 LIMIT이 지원되지 않습니다.
LIMIT이 얼마나 편한데!!!
오라클에서 LIMIT과 같은 기능이 필요했습니다.

ROWNUM이라는 것을 알게 되었는데, SELECT를 하게 된 결과에 자동으로 처음부터 끝까지 1부터 숫자를 매겨주는 듯했습니다. 아, 그래서 만약에 10번째꺼부터 20번째꺼를 추출해봐야지 라고 이런 쿼리를 날려봤습니다.

[code]SELECT * FROM BIZLIST WHERE ROWNUM >= 10 AND ROWNUM <= 20[/code]
이렇게 하니까 아무것도 안나오더라구요.
이게 안돌아가는 이유는 ROWNUM이라는 놈이 가상 칼럼이랍니다. 그래서 만약 칼럼이 SELECT될 때 10개가 출력되야하는 상황이라면 첫번째꺼 출력하고 ROWNUM을 붙이고, 두번째꺼 출력하고 ROWNUM을 붙이고, 그러다보니 저 조건에 맞지 않게 됩니다.

첫번째 출력될 놈은 ROWNUM이 1인데, 저 조건에 부합하지 않습니다. 그래서 출력이 안되고, 10번째 출력될 놈도 출력하려고 보니 다 조건에 맞지않아요. 그러다보니 차례대로 다 안나옵니다-_-;

즉 조건에 부합한 놈이 출력되고 난다음에 ROWNUM을 붙여줍니다.
그래서 ROWNUM이 10을 1로 바꿔버리면 ROWNUM이 1인놈부터 20개까지는 출력이 되는것이죠.

제가 설명을 좀 못하니 여기를 참조 하세요 ^^
http://www.oracle.com/technology/global/kr/oramag/oracle/06-sep/o56asktom.html

저걸 악(?) 이용하면 LIMIT처럼 구현할 수 있습니다-_-;
[code]SELECT * FROM (SELECT ROWNUM RNUM, BIZLIST.* FROM BIZLIST WHERE STATUS = 'A') A
WHERE A.RNUM BETWEEN 10 AND 20[/code]
쿼리를 잘 보시면 A테이블을 서브쿼리를 날려서 만들어줍니다. 즉 우리가 10~20까지 추출해야할 데이터를 다 추출해서 A라는 테이블을 만듭니다. 여기서 A테이블을 보면 ROWNUM도 칼럼에 추가를 시킵니다. RNUM이라는 이름으로!
그다음 이 추출된 모든 것이 보면 ROWNUM도 다 붙어있습니다. 그래서 이걸 다시 SELECT해서 RNUM이 10과 20사이인 것을 추출하게 하면 되는것이죠.
A테이블에서 WHERE절은 원하는 조건이니 없어도 되는 것이고-_-;
별 것도 아닌데 거창하게 써 놓은 이유는 제가 이것 때문에 반나절을 고생해서 입니다-_-;
아놔....ㅠㅠ

 
Posted by 머드초보

댓글을 달아 주세요

 
사실 VARCHAR2타입에서 최대값을 뽑는거 자체가 바보같은 짓이지만-_-;
VARCHAR2타입은 말그대로 CHAR타입입니다. 그래서 문자열만 들어가야합니다.
근데, 이건뭐 설계를 다 VARCHAR으로 때려박아서 SEQ부분을 VARCHAR로 해놨더군요.
그래서 시퀀스하게 숫자를 관리하겠다고 얘기를 하더군요.

SEQ칼럼이 999가 최대값이면 INSERT할 때마다 1씩 증가해서 다음에 인서트를 할 때 1000가 되게 하라-_-;
이건 Number타입으로 AutoIncrement로 할 수 있고, Number타입이면 그냥 max함수써서 하면되는데-_-;

어쨌든, VARCHAR타입을 숫자로 바꿔줘야합니다.
TO_NUMBER라는 함수가 있습니다.

"ID",CHARNUMBER,GROUPID
2,10000,1
1,9999,1
3,10001,1
요런 데이터가 있다고 칩시다.
그럼,
select max(to_number(charnumber)) from chartonumber group by groupid
요렇게 때려주시면, MAX값을 추출합니다.

저게 보니까 ASCII 순서대로 하는건지는 잘 모르겠지만, 'MUDCHOBO'라는 문자를 넣어버리면, 쿼리가 안날려집니다-_-; ORA-01722: 수치가 부적합합니다 라는 에러가 뜨네요.

자.....이제 DB설계자를 막 욕합시다-_-;

 
Posted by 머드초보

댓글을 달아 주세요

 
이 큐브리드는 설치후기라고 쓰는게 맞을 듯 해요-_-;

그냥 국산DBMS가 뭐가 있을까 라는 생각에 검색을 해봤습니다. 알티베이스는 JCO가서 알게 된거라 다른 것도 뭔가 있을 듯해서 찾아봤습니다. 그랬더니 큐브리드라는 것이 나오더군요. 한번 설치를 해볼까? 라는 생각에 설치를 시도했습니다.
이럴수가-_-; 그냥 인스톨하니 SERVER랑 CLIENT가 다 설치되고, 알아서 작동도 되는군요.
오른쪽 아래에 tray아이콘을 생성해서 서버를 start하거나 stop할 수 있게 해놨구요.

큐브리드 매니저라는 것을 제공하는데 처음 비밀번호는 admin, admin인 것 같습니다.
그리고 처음에 설치할 때 sample을 설치할 것인지를 묻는데 이것을 설치하면 subway라는 데이터베이스를 생성하는 것 같습니다.

매니저를 통해서 접속을 해보면, demodb랑 subway 2개의 db가 있는 것을 볼 수 있습니다.
subway를 클릭하면 dba라는 계정으로 권한이 있는 듯 한데, 처음에 비밀번호는 없습니다.
그냥 dba 하고 비밀번호 비어두고 로그인하면 로그인이 됩니다.
dba 비밀번호 바꿔주고 ^^ db별로 start를 시킬 수 있는 듯 합니다. 데이터베이스서버를 가동해봅시다.
bus, gate, line, running, station, transit 등의 테이블이 있네요.

우선 설치면에서는 MySQL이나 Altibase보단 훨씬 쉽네요-_-; 다음신공으로 DB가 설치가 되다니-_-;
jdbc도 CUBRID\Server\java\jspserver.jar 파일이 JDBC드라이버 같네요.
JDBC도 당연히 되는 듯 합니다.

저는 DBMS는 Oracle, MySQL, MSSQL, DB2 뭐 그외에는 별로 안쓰는줄 알았는데 국산 DBMS도 있는 줄 처음 알았어요 ^^ 앞으로도 많은 발전이 있었으면 하네요.

PS. 아 그리고 이 큐브리드가 보니까 NHN에 납품하는 것 같던데 맞나요?--; 네이버가 이것을 쓰는건가-_-;
 
Posted by 머드초보

댓글을 달아 주세요

 

저번달에 JCO놀러갔다가 알티베이스라는 국산DBMS를 알게 되었습니다. 그래서 한번 사용해볼까 라는 생각을 가지고 있었는데 시간이 없어서 그냥 있다가 갑자기 생각나서 설치를 해봤습니다.

Windows용은 설치가 완전 쉽습니다-_-; installer를 제공해서 걍 설치를 하면 알아서 환경변수도 등록해주고, 알아서 다 해주네요. 나중에 Linux나 Unix용으로도 한번 해봐야겠습니다.

우선 altibase홈페이지에서 Windows용으로 설치파일을 받습니다. 회원가입을 해야합니다.
http://adc.altibase.com/
여기서 Product -> Package클릭 후 WINDOWS용으로 클릭하면 나옵니다.
32BIT이면 32BIT용으로 받고, 64BIT이면 B4BIT용으로 받아야합니다.
저는 이걸로 altibase-WIN_NT_5.0-32bit-4.3.9.75-release-VC6.exe

실행하면 설치화면이 나오고 다음신공으로 설치를 합니다. 설치가 완료되면 환경변수를 등록해야하는데
자동으로 환경변수를 등록하게 됩니다.
ALTIBASE_HOME이라는 환경변수를 등록하고 해당 BIN디렉토리를 PATH로 잡아주더군요.

라이센스를 받아야합니다.
홈페이지에서 Member -> Download Info를 클릭하면(http://adc.altibase.com/member/down_info.jsp)
자기가 뭘 다운받았는지 다 나옵니다. 오른쪽에 보시면 라이센스신청클릭해서 신청하면 됩니다.
여기서 Windows에서는 Mac Address를 입력 잘해야합니다.
잘못 입력했더니 Internal Error : Invalid Protocol이라면서 안되더군요.
참고로 ipconfig/all해서 나오는 것 중에 랜카드가 여러개 있으면 가장 위에 것을 입력해야하는 것 같습니다.
가장 위에 것을 입력했더니 되더군요 ^^

라이센스가 메일로 날아오는데 이 license라는 파일을 ALTIBASE_HOME/conf 디렉토리에 복사하면됩니다.
그다음 이렇게 하면 됩니다.


C:\Documents and Settings\Owner>isql -u sys -p manager -sysdba
-----------------------------------------------------------------
     Altibase Client Query utility.
     Release Version 4.3.9.75
     Copyright 2000, ALTIBASE Corporation or its subsidiaries.
     All Rights Reserved.
-----------------------------------------------------------------
ISQL_CONNECTION = TCP, SERVER = 127.0.0.1, PORT_NO = 20300
iSQL(sysdba)> startup process;
Trying connect to database server. Connected with database server.

TRANSITION TO PHASE : PROCESS
Command execute success.
iSQL(sysdba)> create database mydb initsize=10M noarchivelog;
DB Info (Page Size     = 32768)
        (Page Count    = 385)
        (Total DB Size = 12615680)
        (DB File Size  = 1073741824)
        Creating MMDB FILES     [SUCCESS]
        Creating Catalog Tables [SUCCESS]
        Creating DRDB FILES     [SUCCESS]
  [SM] Rebuilding Indices [Total Count:0] **** [SUCCESS]
DB Writing Completed. All Done.
Create success.
iSQL(sysdba)> shutdown abort;
Database server killed..
iSQL(sysdba)> startup service;
Trying connect to database server. Connected with database server.

TRANSITION TO PHASE : PROCESS

TRANSITION TO PHASE : CONTROL

TRANSITION TO PHASE : META
  [SM] Recovery Phase - 1 : Preparing Database
  [SM] Recovery Phase - 2 : Loading Database
                          : Dynamic Memory Version => Loading Type-2
  [SM] Recovery Phase - 3 : Skipping Recovery & Starting Threads...
                            Refining Disk Table
  [SM] Refine Memory Table : ...................................................
... [SUCCESS]
  [SM] Rebuilding Indices [Total Count:64] ****.................................
................................................................................
............... [SUCCESS]

TRANSITION TO PHASE : SERVICE
--- STARTUP Process SUCCESS ---
Command execute success.
iSQL(sysdba)> exit
C:\Documents and Settings\Owner>

근데 그냥 위처럼 안하고 clean이라고 쳐도 돼요-_-;
그리고 나중에 서버구동할 때에는 그냥 isql접속 안하고 server start 라고 치면 돼요.
종료할 때는 server stop이라고 치면 되구요 ^^
어쨌든 이제 됐는지 확인해봅시다.

이클립스(eclipse)에서 제공하는 Data Source Explorer를 이용해서 접속해봅시다.
우선 Altibase용 JDBC가 필요하겠죠? 이것도 ALTIBASE홈페이지에서 받도록 합시다.
Product -> Environment에 있습니다. http://adc.altibase.com/product/environment.jsp
다운로드받고 Data Source Explorer 설정을 해봅시다.

오른쪽 아래에 Data Source Explorer가 안보인다면 Windows -> Other -> Data Source Explorer 확인 ^^

Databases대고 오른쪽버튼을 누르고 New클릭
Generic JDBC Connection 클릭
Name은 대충 AltibaseTest라고 써놓고 Next
Select a driver from the drop-down에서 ...을 클릭해서 Add
Generic JDBC Driver선택, Add Jar/ZIP클릭 후 다운받은 Altibase.jar 선택
Driver Name은 Altibase Driver라고 바꿈.
아래부분에 Driver Class를 ...클릭해서 Altibase.jdbc.driver.AltibaseDriver 선택
방금 추가한 Altibase Driver를 선택
Database는 mydb, URL은 jdbc:Altibase://127.0.0.1:20300/mydb
User name은 sys
Password는 manager
Finish후에 AlitibaseTest오른쪽버튼 대고 Connect!
접속 되면 된겁니다 ^^ 아마도-_-;

이제 설치밖에 안해봤는데 사용자계정 추가하고, 뭐 이것저것 알아볼라면 또 삽질해야하네요 ^^
어쨌든 국산인데 이런 훌륭한 DBMS가 있는 줄 몰랐네요. 지켜봐야겠네요^^

 
Posted by 머드초보

댓글을 달아 주세요