• 2020. 8. 5.

    by. 윈썸지니

    반응형

    이번 포스팅은 파이썬에서 데이터베이스에 연동하는 방법에 대한 내용입니다.

     

    데이터베이스는 오라클, MS-SQL, mysql , PostgreSQL  등등 여러가지가 있습니다.

    이중 국산제품인 데이터베이스인 티베로(Tibero) 와 연동하는 방법입니다.

     

    파이썬에서는 각 데이터베이스와 연동하는 라이브러리를 제공합니다.

    하지만 티베로는 국산이라 그런지 지원하는 라이브러가 없는 것으로 알고 있습니다.

    그래서 티베로는 윈도우 환경에서 연동하는 방법으로 ODBC 방식으로 연동하는 내용을 적어봅니다.

     

    여기서 잠깐 ODBC 가 무엇인지 말 모르시는 분들을 위해 설명합니다.

     

    ODBCOpen DataBase Connectivity의 약자로 데이터베이스에 접근하기 위한 소프트웨어의 표준 규격입니다.

    각 데이터베이스에서 제공하는 라이브러리들이 있는데 이것을 ODBC  드라이버라고 합니다.

     

    , 표준 규격이므로  각 데이터베이스 제공사에서 만들어준 ODBC 드라이버를 설치하면 각 DB의 고유한 처리 들을 소스 변경 없이 사용 할 수 있도록 해 주는 중간 매개체 라고 생각하면 됩니다.

    python 과 OBDC 연동

    위의 그림 처럼 ODBC를 제공해 주는 데이터베이스인 경우에는 ODBC 방식으로 연동을 해도 됩니다.

    하지만 파이썬에서 제공해 주는 라이브러리들이 편하기 때문에 파이썬에서 제공하는 라이브러리가 있는 DB 라면 해당 라이브러리를 사용하세요.

     

    티베로는 라이브러리가 없어서 ODBC 를 사용합니다.

     

    파이썬에서 ODBC 를 사용하려면 pyodbc 를 설치해야 합니다.

    이제 pyodbc티베로 연동 방법입니다.

     

    티베로가 설치된 시스템은 있다고 가정합니다.

     

    파이썬 ODBC 설치

     

    CMD 창에서 다음 명령을 실행하여 pyodbc 를 설치합니다. 인터넷이 연결되어 있어야 합니다.

    pip install pyodbc

     

    Tibero ODBC 설치 및 환경 구성

     

    1. tibero가 설치 된 서버에서 다음 이미지를 받습니다.

       -->  %TBHOME%/client/win64/bin/tbodbc_driver_installer_6_64.exe

       -->  %TBHOME%/client/win64/lib/*

     

    2. 설치 위치 디렉토리를 만듭니다 (ex c:\Tibero\tibero6_odbc )

     

    3. 위의 디렉토리에 lib 파일 들을 복사 합니다.

     

    4. 티베로 ODBC 드라이버는 설치 합니다.

    tbodbc_driver_installer_6_64.exe -i c:\Tibero\tibero6_odbc

     

    5. ODBC를 설정합니다.

    관리도구->ODBC데이터원본->시스템 DNS탭 에서 ODBC 설정

    Data Source Name(DSN) 이름을 부여하고 기억합니다.

    파이썬에서 여기서 정의한 DSN 명으로 접속합니다.

     

    6. 테스트

    "Test" 버튼을 클릭하여 잘 연결이 되는지 확인합니다.

     

    파이썬으로 Tibero 연동 예제

    import pyodbc

    DSNNAME = "Tibero6"
    DBUSER = "sys"
    DBPWD = "tibero"

    cnxn = pyodbc.connect('DSN='+DSNNAME+';UID='+DBUSER+';PWD='+DBPWD)
    cursor = cnxn.cursor()

    cursor.execute("SELECT * from tab;")

    row = cursor.fetchone()

    while row:

        print(row[0])

        row = cursor.fetchone()

    cnxn.commit()

    cnxn.close()

     

    1. pyodbc 모듈을 import 합니다.

     

    2. odbc 접속을 합니다. DSN 명, 계정, 패스워드 정보를 전달합니다.

    pyodbc.connect('DSN='+DSNNAME+';UID='+DBUSER+';PWD='+DBPWD)

     

    execute() 로 쿼리문을 실행합니다.

    fetchon() 은 조회한 데이터를 한 row 만 가져옵니다.

     

    DB연결후 close() 를 꼭 해 주어야 합니다.

     

    이상으로 티베로 연동 방법을 알아보았습니다.

     

    혹 추가 질문 있으시면 댓글로 남겨주세요.

     

    반응형