52 심송용, 강희모, 이윤환 그림 1.1: ODBC를 이용한 DBMS 서버와 클라이언트 이스의 종류에 상관없이 데이터베이스에 접속하기 위한 application programming interface(api)를 제공해 주는 것으로 데이터베이스의 자료에 접근하기 위하여

Similar documents
Windows 8에서 BioStar 1 설치하기

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

DBMS & SQL Server Installation Database Laboratory

FileMaker 15 ODBC 및 JDBC 설명서

Microsoft PowerPoint - 10Àå.ppt

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

FileMaker ODBC 및 JDBC 가이드

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host) 서버 설정... 9 W7CLIENT (Windows 7 Client) 클라이얶트 설정

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

MF Driver Installation Guide

ThinkVantage Fingerprint Software

OnTuneV3_Manager_Install

목 차 1. 드라이버 설치 설치환경 드라이버 설치 시 주의사항 USB 드라이버 파일 Windows XP에서 설치 Windows Vista / Windows 7에서 설치 Windows

< FBBE7B0EDB3EBC6AE5FB5F0C6FAC6AEC6D0BDBABFF6B5E5C3EBBEE0C1A128BCF6C1A4292E687770>

윈도우시스템프로그래밍

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

슬라이드 1

RHEV 2.2 인증서 만료 확인 및 갱신

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

게시판 스팸 실시간 차단 시스템

1

윈도우시스템프로그래밍

특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

쉽게 풀어쓴 C 프로그래밊

Microsoft Word - src.doc

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집

1217 WebTrafMon II

제목 레이아웃

View Licenses and Services (customer)

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Install stm32cubemx and st-link utility

Microsoft PowerPoint - 권장 사양

SIGIL 완벽입문

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

초보자를 위한 ADO 21일 완성

IRISCard Anywhere 5

서비스) 와서버( 관리대상서버) 간에자격증명을사용하여서로의 ID 를확인하고서로주고받는데이터를검사하고암호화하는프로세스 이다. 높은인증수준은일반적으로성능의저하를가져올수있지만높은 수준의보안과데이터무결성을제공한다. 기본값 - 관리대상서버에설정되어있는 DCOM 인증수준기본 값을

10.ppt

Chapter 1

IP Cam DDNS 설정설명서(MJPEG) hwp

온라인등록용 메뉴얼

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

JDBC 소개및설치 Database Laboratory

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

단계

초보자를 위한 분산 캐시 활용 전략

PowerPoint Template

MySQL-Ch10

Apache2 + Tomcat 5 + JK2 를 사용한 로드밸런싱과 세션 복제 클러스터링 사이트 구축

Microsoft PowerPoint - 03_DB Migration 방법론 및 툴 사용법-인쇄.ppt

슬라이드 1

untitled

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Windows 10 General Announcement v1.0-KO

ALTIBASE 사용자가이드 Templete

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

I I-1 I-2 I-3 I-4 I-5 I-6 GIS II II-1 II-2 II-3 III III-1 III-2 III-3 III-4 III-5 III-6 IV GIS IV-1 IV-2 (Complement) IV-3 IV-4 V References * 2012.

APOGEE Insight_KR_Base_3P11

vostro2월CDM4.0

SBR-100S User Manual

PowerPoint 프레젠테이션

MF5900 Series MF Driver Installation Guide

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 한

< FC8A8C6E4C0CCC1F620B0B3B9DF20BAB8BEC8B0A1C0CCB5E5C3D6C1BE28C0FAC0DBB1C7BBE8C1A6292E687770>

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

Web Application Hosting in the AWS Cloud Contents 개요 가용성과 확장성이 높은 웹 호스팅은 복잡하고 비용이 많이 드는 사업이 될 수 있습니다. 전통적인 웹 확장 아키텍처는 높은 수준의 안정성을 보장하기 위해 복잡한 솔루션으로 구현

bn2019_2

untitled

046~64

untitled

MySQL-Ch05

A SQL Server 2012 설치 A.1 소개 Relational DataBase Management System SQL Server 2012는마이크로소프트사에서제공하는 RDBMS 다. 마이크로소프트사는스탠다드 standard 버전이상의상업용에디션과익스프레스 exp

슬라이드 제목 없음

MySQL-.. 1

Analyst Briefing

안전을 위한 주의사항 제품을 올바르게 사용하여 위험이나 재산상의 피해를 미리 막기 위한 내용이므로 반드시 지켜 주시기 바랍니다. 2 경고 설치 관련 지시사항을 위반했을 때 심각한 상해가 발생하거나 사망에 이를 가능성이 있는 경우 설치하기 전에 반드시 본 기기의 전원을

ARMBOOT 1

BEA_WebLogic.hwp

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

1. 제품 개요 AhnLab Policy Center 4.6 for Windows(이하 TOE)는 관리대상 클라이언트 시스템에 설치된 안랩의 안티바이러스 제품인 V3 제품군에 대해 보안정책 설정 및 모니터링 등의 기능을 제공하여 관리대상 클라이언트 시스템에 설치된 V3

컴퓨터관리2번째시간

Splentec V-WORM Quick Installation Guide Version: 1.0 Contact Information 올리브텍 주소 : 경기도성남시분당구구미로 11 ( 포인트타운 701호 ) URL: E-M

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

Windows Server 2012

ODS-FM1

Transcription:

The Korean Communications in Statistics Vol. 15, No. 1, 2008, pp. 51 64 R 언어를 통한 데이터베이스 접근 심송용1), 강희모2), 이윤환3) 요약 일반적으로 R 언어는 작은 크기의 자료분석에 적당하다. 이 연구에서 데 이터베이스에 저장된 대용량의 자료를 R 언어를 통해서 접근하는 방법에 대 해서 알아보았다. 실제 자료를 사용하여 MySQL, Oracle 또는 PostgreSQL 데이터베이스 서버에 저장된 자료에 접근하는 예를 제공하였다. 주요용어: DBMS; MySQL; ODBC; SQL; Oracle; PostgreSQL. 1. 서론 현대사회에서 컴퓨터와 네트워크의 발달은 많은 양의 정보를 발생시키고 있으 며, 이러한 정보는 사회 각 분야에서 정책을 결정할 때 중요한 도구로 사용되고 있 다. 많은 양의 정보는 거의 대부분 데이터베이스 서버에 저장되어 있기 때문에, 서 버에서 정보를 이용하려면 데이터베이스 서버에 접근이 가능해야 한다. R은 작은 자료를 처리하는 경우에는 효율적이나 대용량의 자료를 R의 내부에 서 처리하는 것은 효율적이지 않다. R 언어에 대한 자세한 내용은 R Development Core Team (2007a), R 그래픽은 심송용 (2005), R을 이용한 통계분석은 Everitt와 Hothorn (2006), Dalgaard (2002) 등에 자세히 소개되어 있으나 여러 가지의 데이 터베이스 서버들에서 관리되는 대용량 자료에 대한 접근에 대한 소개는 드물다. 본 연구에서는 R에서 데이터베이스에 저장된 자료를 처리하는 방법을 알아보 기로 한다. 대부분의 응용프로그램에서 데이터베이스 엔진에 접속하기 위해서는 ODBC (Open Database Connectivity)를 사용한다 (그림 1.1 참조). ODBC는 데이터베 이 연구는 2007년 한림대학교 교비 연구비 HRF-2007-029에 의해 수행되었음. 1) (200-702) 강원도 춘천시 옥천동 1번지 한림대학교 정보통계학과, 교수. Correspondence: sysim@hallym.ac.kr 2) (200-702) 강원도 춘천시 옥천동 1번지 한림대학교 정보통계학과, 전임강사. 3) (200-702) 강원도 춘천시 옥천동 1번지 한림대학교 정보통계학과, 박사과정.

52 심송용, 강희모, 이윤환 그림 1.1: ODBC를 이용한 DBMS 서버와 클라이언트 이스의 종류에 상관없이 데이터베이스에 접속하기 위한 application programming interface(api)를 제공해 주는 것으로 데이터베이스의 자료에 접근하기 위하여 프 로그램을 작성할 때 데이터베이스와 독립적으로 작업할 수 있는 기능을 제공한다. R에서도 데이터베이스 서버에 접속하려면 해당 데이터베이스 서버용 ODBC 드라이버를 설치해야 되며 그 과정은 각각의 데이터베이스 서버에 따라 조금씩 달 라지므로 각 DBMS(Database Management System)를 R 언어에서 접근하는 방 법을 소개할 때 설정 방법에 대해 논하기로 한다. R은 버전 2.0.0 부터 RODBC 패키지를 제공하고 이 패키지를 이용하여 데이터베 이스에 접근할 수 있을 뿐만 아니라 원격 데이터에도 접근이 가능하다. 일반적으로 서버급 컴퓨터의 경우 유닉스 계열의 운영체계를 많이 사용하고 클 라이언트 컴퓨터는 마이크로소프트의 윈도우 계열인 경우가 많으므로 본 연구에서 는 DBMS 는 유닉스 계열의 서버 컴퓨터에서 운영되고, R은 윈도우 XP에 설치된 것을 가정하였다. 2. R과 MySQL 가장 많이 사용하는 오픈소스 계열의 데이터베이스 서버인 MySQL 서버에 저장된 자료를 R에서 사용하는 방법을 알아보기로 하자. MySQL은 멀티쓰레드, 멀티유저 SQL DBMS로서 전세계에서 11,000,000개 이상의 서버가 운영중이다 (http://www.mysql.com /why-mysql/). 2.1. 요구되는 프로그램 클라이언트 컴퓨터에 R이 설치되어 있고 DBMS로 원격지에 MySQL 서버가 설치되어 있는 환경을 가정한다. R에서 MySQL의 자료를 처리하려면 MySQL 서 버 컴퓨터에 데이터베이스 서버(http://dev.mysql.com/)가 있어야 하며, MySQL

R 언어를 통한 데이터베이스 접근 (a) ODBC 데이터 원본 관리자 53 (b) 사용자 DSN 추가 그림 2.1: ODBC 드라이버 설정 에 접속할 ODBC 드라이버가 클라이언트 컴퓨터에 설치되어야 하고(http://dev. mysql.com/) R에 RODBC 패키지가 설치되어야 한다 (R Development Core Team, 2007d). 이들에 대한 설치 및 설정에 대해서 알아보자. 2.2. 윈도우 XP에서 MySQL ODBC 드라이버 설치와 환경설정 ODBC 드라이버는 http://dev.mysql.com/에서 내려받은 압축 파일을 실행 하면 자동으로 설치되고, 설치가 올바르게 되었는지는 제어판에서 성능 및 유지관 리 관리도구 데이터원본(ODBC) 아이콘을 선택하면 그림 2.1(a)와 같은 ODBC 데이터 원본 관리자 창이 보이며 이 창의 드라이버 탭에서 MySQL ODBC 3.51 Driver 항목이 보이면 설치가 올바르게 된 것이다. 제어판이 클래식 보기인 경우 에는 성능 및 유지관리 단계 없이 바로 관리도구 단계에서 시작한다. 드라이버의 설정은 그림 2.1(a)의 사용자 DSN(Data Source Name) 탭에서 추 가 버튼을 클릭하면 새 데이터 원본 만들기 창이 생성되고, 여기서 추가하려는 드라이버 MySQL ODBC 3.51 Driver를 선택한 후 마침을 클릭한다. 그러면 그림 2.1(b)의 Connector /ODBC 창이 나타나고, 이 창에 데이터베이스 서버 접속에 필 요한 여러 가지 정보를 올바르게 입력하면 새로운 사용자 DSN이 생성된다. 그림 2.1(b)의 첫 번째 Login 탭은 접속할 데이터베이스의 접속에 대한 정보를 입력하 는 것으로 Data Source Name에는 적당한 이름을, Description에는 위 DSN의

54 심송용, 강희모, 이윤환 설명을, Server에는 MySQL 서버가 설치된 컴퓨터 이름을, User에는 MySQL 서버에 등록된 사용자 ID를, Password에는 해당 ID의 암호를 입력한다. 생성된 DSN은 그림 2.1(a)의 사각형 안에서 확인할 수 있다. 두 번째 탭 Connection Options은 연결에 필요한 추가 옵션을 주는 곳으로 MySQL 포트(Port)나 소켓(Socket) 등을 설정하는데 기본값을 사용하는 경우 별 도의 설정이 필요하지 않다. MySQL의 기본 포트 번호는 3306인데, 이외의 포트 를 사용한 경우에는 Port Option에 해당 포트를 입력한다. 접속 설정에 대한 확 인은 Test 버튼을 클릭하여 설정사항이 이상없으면 성공 메세지가 보이며 추가한 DSN으로 ODBC 접속에 사용할 수 있다. 2.3. MySQL에 저장된 자료 접근하기 ODBC 드라이버가 로컬 컴퓨터에 정상적으로 설치/설정되면 다음과 같이 R 언어에서 RODBC 패키지를 설치한다. R> install.packages("rodbc") R> library(rodbc) 이제 R에서 데이터 베이스에 연결할 수 있으며, R에서 MySQL에 접속하기 위한 함수는 odbcconnect(odbc로 데이터베이스에 연결하는 함수), odbcclose(접속 된 데이터베이스와 연결을 해제할 때 사용), odbcgetinfo(접속된 데이터베이스의 접속 정보 출력), odbcquery(쿼리를 접속된 데이터베이스에 전송), sqlgetresul ts(odbcquery 함수 결과를 DataFrame 객체로 가져옴), sqlquery(odbcquery 함 수를 수행하고 sqlgetresults 함수를 사용하여 결과를 DataFrame 객체로 가져 옴), odbcsetautocommit(연결하는 DBMS 의 autocommit을 설정), sqlfetch(데 이터베이스의 테이블인을 읽어 R의 DataFrame 객체로 가져옴), sqlcopy(쿼리문 수행 결과 값을 원격 테이블에 복사) 및 sqlsave(data-frame의 자료를 테이블 명에 저장) 함수 등이 있다. 이들 함수의 자세한 사용법은 R Development Core Team (2007c)를 참조하자. 2.4. ODBC 연결을 위한 MySQL 서버 설정 다른 컴퓨터에서 ODBC로 데이터베이스 서버에 접속하려는 경우 보안문제 때 문에 접속을 거부하도록 서버가 기본적으로 설정되어 있는 경우가 많다. 따라서 R에서 MySQL 서버에 접속하기 위한 MySQL과 방화벽 설정을 설정해야 한다. 먼저 MySQL이 다른 컴퓨터에서 접속할 수 있도록 접근을 허용하도록 한다. 접속 허용은 관리테이블인 db와 user에서 host 필드에 접속을 허가하는 데이터베

R 언어를 통한 데이터베이스 접근 55 이스 사용자 ID와 데이터베이스 명을 % 로 설정한다. 두 개의 관리테이블에서 host 명이 % 이면 데이터베이스 사용자와 데이터베이스는 모든 컴퓨터에서 데이 터베이스 서버로 접근할 수 있다. 다음은 MySQL에서 관리자로 접속 후 UPDATE 문을 사용하여 host 명을 변경하는 MySQL 명령문이다. MySQL> UPDATE user SET host= % WHERE user= 사용자명 ; MySQL> UPDATE db SET host= % WHERE db= 접속할 DB명 ; MySQL> FLUSH PRIVILEGES; 다른 방법으로 GRANT 문을 사용하여 사용자를 추가할 수 있다. 다음으로 로컬 컴퓨터에서 데이터베이스 서버에 접속할 수 있도록 설정해야 될 사항은 방화벽을 해제해야 한다. 대부분의 운영체제는 보안 때문에 대부분의 포 트를 외부에서 접속할 수 없도록 방화벽이 설정되어 있다. 따라서 접속을 원하는 DBMS의 포트에 대하여 방화벽 설정을 해제해야 데이터베이스 서버에 접속이 가 능하다. 2.5. 적용사례 DBI, RODBC 패키지의 함수를 이용하여 적용사례를 실행해 보자. 적용사례에 이용한 자료는 Knowledge Discovery and Data Mining Conference 2004에서 공 개된 자료 중 양자 물리학(quantum physics) 자료의 검증 자료(test data)이다. 이 자료는 http://kodiak.cs.cornell.edu/kddcup/ 에서 사용자 등록 후 내려 받을 수 있다. 이 자료는 ID변수 한 개와 분류 변수 한 개, 일반 변수 78 개로 구성되었고, 자료의 개수는 100,000 개, 텍스트 파일에서 크기는 98.1MB이다. DBMS가 설치된 서버의 사양은 CPU가 펜티엄 Ⅲ 450MHz dual, 메모리 512MB, 운영체제는 Fedora 5 이고, 클라이언트 컴퓨터는 CPU가 펜 티엄 Ⅳ 3GHz, 메모리 1GB, 운영체제는 Windows XP Professional 이다. R> library(dbi); library(rodbc) ; hdb <- odbcconnect("myodbctest") R> unix.time(res <- sqlquery(hdb, "select avg(attribute5), avg(attribute6) from rtest02")) user system elapsed 2.07 R> unix.time(res <- sqlquery(hdb, "select avg(attribute5),

56 심송용, 강희모, 이윤환 avg(attribute6) from rtest02")) user system elapsed 0.45 R> res avg(attribute5) avg(attribute6) 1 0.1266546 0.05042849 위에서 1 줄의 myodbctest는 그림 2에서 추가한 DSN이고, 2 3 줄과 6 7 줄은 데 이터베이스 서버에 접속하여 R에서 결과가 출력되기까지 소요시간(unix.time)을 계산하였다. 최초 실행시간은 2.07 초(5 줄)로 나타났고, 그 이후 DBMS에서 동일 한 명령을 실행하면 그 내용이 캐시(cache) 메모리에 저장되어 있기 때문에 실행시 간이 9 줄과 같이 0.45 초로 현저하게 줄어든다. 적용사례에 사용한 MySQL 버전 은 5.0.27이고, 이 DBMS에 설정된 캐시의 용량은 기본값이 1MB이다. 3. R과 PostgreSQL R에서 PostgreSQL 서버의 자료를 처리하는 방법에 대해서 알아보자. PostgreSQL은 PostgreSQL Global Development Group (2007)에서 제공하고 있으며 MySQL과 마찬가지로 무료로 사용할 수 있으며 최신 버전은 8.2.4이다. 3.1. 요구되는 프로그램 R에서 PostgreSQL 데이터베이스 서버에 접속하려면 MySQL 데이터베이스 서버에 접속할 때와 같이 PostgreSQL 데이터베이스 서버(http://www.postgresql. org/ftp/ win32/), R에서 DBI(R Development Core Team, 2007b)와 RODBC(R Development Core Team, 2007c) 패키지, 클라이언트 컴퓨터에 ODBC 드라이버가 설치(http://postgresql. org/ftp/odbc/versions/msi)가 요구된다. 3.2. 윈도우 XP에서 PostgreSQL ODBC 설치와 환경설정 윈도우 XP용 PostgreSQL ODBC 드라이버는 http://postgresql.org/ftp/ odbc/versions/msi에서 psqlodbc-version.zip으로 되어 있는 압축파일 중에 서 PostgreSQL 서버의 버전과 version이 일치되는 파일의 압축을 해제하여 psql odbc.msi 파일을 실행하면 자동으로 설치된다. ODBC 드라이버 설치 확인은 2.2 절과 같이 새 데이터 원본 만들기 창에서 PostgreSQL Unicode와 Postgre SQL ANSI를 목록에서 확인한다. PostgreSQL DSN 설정은 그림 3.1(a)에서 추가 버튼

R 언어를 통한 데이터베이스 접근 (a) ODBC 데이터 원본 관리자 57 (b) 사용자 DSN 추가 그림 3.1: PostgreSQL ODBC 드라이버 설정 을 클릭하면 새 데이터 원본 만들기 창이 열리고, 여기에 보이는 목록 중 추가하 려는 드라이버 PostgreSQL Unicode와 PostgreSQL ANSI에서 하나를 선택한다. 그림 3.1(b)에서 Data Source에는 DSN 입력을, Description에는 DSN에 대한 간 단한 설명을, Database에는 데이터베이스 이름을, Server에는 데이터베이스가 설 치된 서버 컴퓨터 이름 또는 IP 주소를, Port에는 데이터베이스에 접속할 포트로 기본값은 5432를, User Name에는 데이터베이스 사용자 ID를, Password에는 해당 ID의 암호를 입력하면 DSN이 추가되며 그림 3.1(a)의 사각형에는 이와 같은 방법 으로 추가된 DSN 목록인 testpsql2가 있음을 볼 수 있다. 3.3. ODBC 연결을 위한 PostgreSQL 서버 설정 데이터베이스 서버가 설치된 리눅스 운영체제는 외부에서 불특정 다수의 접 근을 허락하지 않기 위하여 방화벽을 설정하였으며 데이터베이스 서버 자체적 으로 외부에서 접근에 대한 설정파일이 존재한다. 클라이언트 컴퓨터에서 PostgreSQL에 접속을 허가하려면 방화벽 설정을 해제하고, 두 개의 설정파일 내용을 변경해야 한다. 설정 파일은 다음과 같다. pg hba.conf 설정 파일은 서버로의 모든 접근을 관리하는 파일로 기본값이 외부 컴퓨터에서 접속할 수 없도록 설정되어 있다. 따라서 외부에서 접속하 려면 다음과 같은 IPv4 local connection 설정 # TYPE DATABASE USER # IPv4 local connections: CIDR-ADDRESS METHOD

58 심송용, 강희모, 이윤환 host all all 127.0.0.1/32 trust all 0.0.0.0/0 trust 의 CIDR-ADDRESS를 host all 로 변경하면 모든 클라이언트 컴퓨터에서 접속을 할 수 있다. 여기서 각 설정 은 TYPE는 접속 타입 설정, DATABASE는 데이터베이스 이름 설정, USER는 사 용자 이름 설정, CIDR-ADDRESS는 접속을 허가하는 IP 설정, METHOD는 패스 워드를 전송할 때 암호화 형태 설정이다. postgresql.conf 파일의 설정: pg hba.conf 파일은 외부에서 접속을 할 수 있도록 설정하는 것이고, postgresql.conf 파일은 PostgreSQL 서버 자 체의 접속에 대한 설정으로 외부 컴퓨터로부터 요청을 받을 수 있도록 한다. 변경할 부분은 listen_addresses의 값을 특정한 호스트로 바꾸거나 모든 호스트(*)로 바꾸는 것이다. 이 값은 최초에 localhost 로 설정되어 있다. 이 값을 변경하면 외부의 모든 컴퓨터에서 접속 요청을 받아 서버에 접속할 수 있다. 만일 특정한 컴퓨터에서만 접속을 허가한다면 그 컴퓨터의 IP 주소 를 입력하고, 설정할 IP가 여러 개이면 쉼표(,)로 구분하여 입력한다. 3.4. 적용사례 R에서 DBI, RODBC 패키지의 함수를 이용하여 PostgreSQL 서버에 접속하는 적용사례를 실행해 보자. 적용사례에 사용한 자료와 서버와 클라이언트 컴퓨터의 사양은 MySQL에서 제시한 것과 동일하다. R> library("dbi"); library("rodbc"); con <- odbcconnect("testpsql2") R> unix.time(res <- sqlquery(hdb, "select avg(attribute5), avg(attribute6) from rtest02")) user system elapsed 0.02 0.01 5.81 R> unix.time(res <- sqlquery(hdb, "select avg(attribute5), avg(attribute6) from rtest02")) user system elapsed 0.02 0.01 1.50 R> res avg avg 1 0.1266546 0.05042849

R 언어를 통한 데이터베이스 접근 59 위에서 1 줄의 testpsql2는 클라이언트에 설정된 DSN이고, 2 3 줄과 6 7 줄은 MySQL의 적용사례와 동일하게 DBMS에 접속하여 명령문 실행결과가 나오 기까지 소요시간을 unix.time으로 출력하였다. 출력결과 처음 명령문 소요시간은 5.81 초(5 줄)이고, 이후 다시 실행한 경우(9 줄) 캐시와 관련있기 때문에 실행시간 은 1.50 초가 소요되었다. 명령문 실행결과는 res(2, 6줄)에 저장하였고, 그 결과 는 10 12 줄에 출력하였다. 여기서 사용한 DBMS는 postgresql-8.1.8-1이다. 4. R과 Oracle 오라클(Oracle)은 미국 오라클사의 관계형 데이터베이스 관리 시스템(RDB S)의 이름으로 현재 가장 널리 사용되는 대표적인 제품의 하나이다. 현재 오라클의 최신 버전은 Oracle Database 10g로 그 종류는 네 종류가 있으며, 각 종류마다 사 용할 수 있는 기능에 차이가 있다. 4.1. 요구되는 프로그램 R에서 Oracle 데이터베이스 서버에 접속하려면 MySQL 데이터베이스 서버에 접속할 때와 같이 Oracle 데이터베이스 서버(http://oracle.com), R에 DBI(R Development Core Team, 2007b) 와 RODBC(R Development Core Team, 2007c) 패키 지, 클라이언트 컴퓨터에 ODBC 드라이버의 설치 (http://www.oracle.com/techn ology/software/tech/windows/odbc/index.html, http://www.oracle.com/techno logy/software/products/database/xe/htdocs/102xewinsoft.html)가 요구된다. 4.2. 윈도우 XP에서 Oracle ODBC 드라이버 설치와 설정 오라클 ODBC 드라이버는 http://www.oracle.com/technology/software /tech/windows/odbc/index.html에서 ODBC 드라이버를 얻을 수 있는데 이 드 라이버는 오라클 데이터베이스 서버 standard edition 이상의 설치 CD로 설치할 수 있다. ODBC 드라이버만 설치할 경우 http://www.oracle.com/technology/ software/products/database/xe/htdocs/102xewinsoft.html에서 OracleXE Client.exe을 실행하면 드라이버가 자동으로 설치된다. 이 경우 두 종류의 드라 이버가 설치되는데 하나는 Microsoft ODBC for Oracle이며 나머지 하나는 Oracle in XEClient이다. 이 오라클 ODBC 드라이버들은 그림 4.1(a)의 목록에서 확인할 수 있으며, 모두 Oracle 접속에 사용할 수 있다.

60 심송용, 강희모, 이윤환 (a) ODBC 데이터 원본 관리자 (b) 사용자 DSN 추가 (c) 사용자 DSN 정보 확인 그림 4.1: 오라클 ODBC 연결 4.2.1. Microsoft ODBC DSN 설정 Microsoft ODBC for Oracle 드라이버의 DSN 생성은 그림 4.1(a)의 사용자 DSN 탭 또는 시스템 DSN 탭에서 추가 버튼을 클릭하면 데이터 원본을 설정할 드라이버 목록이 새 데이터 원본 만들기 창에 보인다. 이 목록들 중 Mirosoft ODBC for Oracle을 선택하고 마침 버튼을 클릭하면 사용자 DSN의 정보를 입력하는 그림 4.1(b) 창이 나타난다. 이 창에서 입력되는 값으로 데이터 원본 이름에는 DSN을, 설명에 는 DSN의 간락한 설명을, 사용자 이름에는 접속할 오라클 서버의 사용자 ID를, 서 버에는 접속할 오라클 서버를 입력한다. DSN이 설정되었으면 R을 실행하여 오라클 서버의 데이터에 접근하자. 먼저 R을 실행하고 다음과 같이 입력하면 R> library("dbi"); library("rodbc"); con <- odbcconnect("testoracle") 그림 4.1(c)의 대화창이 생성되면서 접속할 Oracle 서버가 설치된 호스트와 DBMS 의 ID에 해당하는 암호를 요구한다. 이 창에는 그림 4.1(b)에서 설정한 암호를 입

R 언어를 통한 데이터베이스 접근 (a) 오라클 ODBC DSN 추가 61 (b) 오라클 ODBC 연결 설정 그림 4.2: 오라클 ODBC 연결 력한다. 요구되는 정보가 올바르게 입력되었으면 확인 버튼을 클릭할 때, R 콘솔 화면에 아무런 메세지가 출력되지 않으며, R에서 오라클 데이터베이스 서버에 접 속이 성공한 것이다. 접속이 실패할 경우 에러 메세지가 출력된다. 4.2.2. XEClient DSN 설정 Oracle in XEClient 드라이버의 DSN 생성은 그림 4.1(a)의 사용자 DSN 탭 또 는 시스템 DSN 탭에서 추가 버튼을 클릭하여 생성한다. 이 그림에서 보는 것과 같이 데이터 원본을 설정할 드라이버 목록이 새 데이터 원본 만들기 창에 나타나 는데 이 목록에서 Oracle in XEClient를 선택하고 마침 버튼을 클릭하면 사용자 DSN의 정보를 입력하는 그림 4.2(a) 창이 나타난다. 이 창에서 입력되는 값으로 Data Source Name에는 DSN 명을, Description에는 DSN의 간락한 설명을, TNS Service Name에는 접속할 오라클 서버와 데이터베이스를, User ID에는 접속할 오라클 서버의 사용자 ID를 입력한다. 설정이 올바르게 되었는지 확인은 Test Connection 버튼을 클릭하면, 연결설정 성공화면이 나타난다. DSN이 설정되었으면 R을 실행하여 오라클 서버의 데이터에 접근하자. 먼저 R을 실행하고 다음과 같이 입력하면 R> library("dbi"); library("rodbc"); con <- odbcconnect("testoracle") 그림 4.2(b)의 창이 나타나며 암호를 제외하고 그림 4.2(a)에서 설정된 값을 가져 온다. 여기에 암호를 입력하고 확인 버튼을 클릭할 때, 정보가 올바르게 입력하였

62 심송용, 강희모, 이윤환 으면 R 콘솔 화면에 아무런 메세지가 출력되지 않으며, R에서 오라클 데이터베이 스 서버에 접속이 성공한 것이다. 4.3. 적용사례 R에서 DBI, RODBC 두 패키지의 함수를 사용하여 Oracle에 대한 적용사례를 실행해 보자. 적용사례에서 사용하는 자료와 서버와 클라이언트 컴퓨터의 사양은 MySQL과 PostgreSQL에서 제시한 것과 동일하다. R> library("dbi"); library("rodbc"); con <- odbcconnect("testoracle") R> unix.time(res <- sqlquery(hdb, "select avg(attribute5), avg(attribute6) from rtest02")) user system elapsed 2.45 R> unix.time(res <- sqlquery(hdb, "select avg(attribute5), avg(attribute6) from rtest02")) user system elapsed 0.68 R> res AVG(ATTRIBUTE5) AVG(ATTRIBUTE6) 1 0.1266546 0.05042849 1 줄에서 con은 클라이언트에 설정된 DSN으로 DBMS에 접속을 시도하고, 2 3 줄과 6 7 줄은 R에서 DBMS에 접속하여 명령문이 모두 실행될때까지 소요시 간을 R의 unix.time로 출력하였다. 초기 실행시간은 2.45 초(5 줄)가 소요되었 고, 이후 동일한 명령문을 DBMS에서 실행한 경우 0.68 초(9 줄)가 소요되었다. 위의 세 가지 DBMS로 특정한 명령어를 실행한 결과 소요시간은 MySQL, Oracle, PostgreSQL 순으로 빠르게 나타났다. res(2, 6줄)는 명령문 실행결과를 저장하였 고, 그 결과는 10 12 줄에서 확인할 수 있다. 적용사례에 사용한 DBMS는 oraclexe-univ-10.2.0.1-1.0이다. 5. 결언 R은 선형 비선형 모델링, 시계열 분석, 분류, 다변량분석 등의 다양한 통계기 법, 화려한 그래픽 기법 그리고 고도의 확장성을 제공할 뿐 아니라 최신 통계이론 이 R로 구현되어 제공된다. 그리고 R은 무료 소프트웨어이기 때문에 누구나 자유 롭게 사용할 수 있으며, 다양한 운영체제에서도 사용할 수 있는 장점을 가지고 있 다. 또한 다양한 아스키, 바이너리 데이터 파일을 자유롭게 읽을 수 있고, 특히 얼

R 언어를 통한 데이터베이스 접근 63 마전까지도 제공하지 않았던 데이터베이스 서버에 접속하는 기능이 추가되어 대용 량 자료에 대한 처리가 가능해졌다. 이와 같이 R 언어는 SAS, SPSS 등과 같은 상 업용 통계프로그램의 주된 기능을 대부분 수행할 수 있을 뿐 아니라 상용 프로그램 이 제공하지 못하는 최신 이론을 접할 수 있기 때문에 교육용, 연구용 뿐만 아니라 기업용 통계분석 프로그램으로 사용하는데도 어려움이 없다. 참고문헌 심송용 (2005). <통계그래픽스>, 교우사, 서울. Dalgaard, P. (2002). Introductory Statistics with R, Springer, New York. Everitt, B. S. and Hothorn, T. (2006). A Handbook of Statistical Analysis Using R, Chapman & Hall/CRC, New York. PostgreSQL Global Development Group (2007), http://www.postgresql.org/. R Development Core Team (2007a). R: A Language and Environment for Statistical Computing. ISBN 3-900051-07-0, Vienna, Austria, http://www.r-pro ject.org. R Development Core Team (2007b). R: A Language and Environment for Statistical Computing. ISBN 3-900051-07-0, Vienna, Austria, http://cran.rproect.org/doc/packages/dbi.pdf. R Development Core Team (2007c). R: A Language and Environment for Statistical Computing. ISBN 3-900051-07-0, Vienna, Austria, http://cran.rproject.org/doc/packages/rodbc.pdf. R Development Core Team (2007d). R: A Language and Environment for Statistical Computing. ISBN 3-900051-07-0, Vienna, Austria, http://cran.rproject.org/src /contrib/descriptions/rodbc.html. http://dev.mysql.com/. http://kodiak.cs.cornell.edu/kddcup/. http://www.mysql.com/why-mysql/. http://www.postgresql.org/ftp/odbc/versions/msi/. http://www.postgresql.org/ftp/win32/. http://www.oracle.com. http://www.oracle.com/technology/software/tech/windows/odbc/index. html. http://www.oracle.com/technology/software/products/database/xe/htd ocs/102xewinsoft.html. [ 2007년 7월 접수, 2007년 10월 채택 ]

64 Access to Databases through the R-Language Songyong Sim 1), HeeMo Kang 2), YoonHwan Lee 3) Abstract In general, R is useful for small size data. We study how to access a large data set in a database by R-language. We provide real examples to access data sets stored in database servers MySQL, Oracle or PostgreSQL. Keywords: DBMS; MySQL; ODBC; SQL; Oracle; PostgreSQL. This work was supported by Hallym University Research Fund HRF-2007-029. 1) Professor, Department of Statistics, Hallym University, 1 Ockcheon-Dong, Chucheon, Kangwon-do 200-702, Korea. Correspondence: sysim@hallym.ac.kr 2) Full time instructor, Hallym University, 1 Ockcheon-Dong, Chucheon, Kangwon-do 200-702, Korea. 3) Part time instructor, Hallym University, 1 Ockcheon-Dong, Chucheon, Kangwon-do 200-702, Korea.