page 2 q m WWW q HTML q























































![page 56 JCBC 이용 q 예제 class Select { public static void main(String argv[]) page 56 JCBC 이용 q 예제 class Select { public static void main(String argv[])](https://slidetodoc.com/presentation_image/3012975c23930cebc9ff6962b8aac96b/image-56.jpg)





























- Slides: 85
page 2 목차 q 서론 m WWW 소개 q HTML 문법 q CGI 프로그래밍 q Web과 Database 연동 m Java를 이용한 방법 n Java Language Binding n JDBC m CGI를 이용한 방법 n CGI Database Gateway n Illustra Web Data. Blade q 결론
page 4 WWW 소개 q HTML m generalized markup language n 문서의 논리적 구조, 출력 방식, 링크 m HTML 문서를 서버에서 관리 n 정보 변경이 용이 m 사용자 입력 기능 (Form) n 질의 검색 서비스나 주문형 서비스 용이 q URL m 형식 n protocol: //host. domain[: port]/directory/filename m예 n n http: //harp. kaist. ac. kr/kmedia. html#oodb http: //harp. kaist. ac. kr/cgi-bin/getdoc? museum ftp: //harp. kaist. ac. kr gopher: //cair. kaist. ac. kr
page 5 WWW 소개 q WWW 시스템 구조 HTML 문서 External Viewer WWW Browser 클라이언트 Request(URL) Response(HTML문서) WWW 서버 서버 CGI Application Java Applet
page 6 WWW 소개 q 클라이언트 m HTML 브라우져 n Mosaic, Netscape, MSIE, Hot. Java, Arena m VRML 브라우져 n Webspace m Push 클라이언트 n Point. Cast q 서버 m CERN httpd m NCSA httpd
page 7 HTML q HTML (Hyper Text Markup Language) 문서 m HTML은 페이지의 구조를 묘사한다 m HTML은 페이지의 모습을 묘사하지는 않는다 m 문서의 실제 내용과 각종 속성을 나타내는 tag들로 구성됨 (caseinsensitive) m 기본 문법은 ‘<tag_name>element</tag_name>‘의 형태 m <Tag> affected text </Tag> m <Tag attr 1=. . . attr 2=. . . > affected text </Tag>
HTML q 기본 구조 <HTML> <HEAD> Head of the document </HEAD> <BODY> Body of the document </BODY> </HTML>
page 9 HTML 문서의 예 (A Homepage) <HTML> <HEAD> <TITLE>Welcome to Byoung-yong Moon's Page</TITLE> </HEAD> <BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000 FF" VLINK="#FFFFFF" ALINK="#FF 0000"> <CENTER><P><IMG SRC="byheader. gif" border=0 HEIGHT=100 WIDTH=640></P></CENTER> <CENTER><P>Home of <FONT COLOR="#0000 FF">Byoung-yong Moon</FONT>, a graduate student of Computer Science Department at KAIST</P></CENTER> <CENTER><P><IMG SRC="line_l~1. gif" border=0 HEIGHT=26 WIDTH=560 ALIGN=ABSBOTTOM></P></CENTER> <CENTER><P><A HREF="personal. html"><IMG SRC="personal. jpg" border=0 HEIGHT=50 WIDTH=150></A><A HREF="career. html"><IMG SRC="career. jpg" border=0 HEIGHT=50 WIDTH=150></A><A HREF="favorites. html"><IMG SRC="favorites. jpg" border=0 HEIGHT=50 WIDTH=150></A><A HREF="links. html"><IMG SRC="links. jpg" border=0 HEIGHT=50 WIDTH=150></A></P></CENTER> <CENTER><P><A HREF="index-han. html"><IMG SRC="korean. jpg" border=0 HEIGHT=60 WIDTH=120></A></P></CENTER> <CENTER><P>If you want to reach me, email me at <I><A HREF="mailto: bymoon@mozart. kaist. ac. kr">bymoon@mozart. kaist. ac. kr. </A></I><BR>Last updated on <B>September 23, 1996</B></P></CENTER> </BODY> </HTML>
page 10 Head Element q <HEAD>. . . </HEAD>로 표시 q 문서에 대한 정보 기술 q 사용되는 Tag m <TITLE> 문서의 제목 </TITLE> n Web Browser 상단의 Title Bar에 표시 n Web Browser의 Bookmark에 사용 m <BASE href=“http: //dblab. kaist. ac. kr/~bpark/”> n base URL 지정 n HTML 문서 안의 모든 URL은 BASE tag에서 지정한 URL로부터 상대적 인 경로를 가짐 n예 <BASE href=“http: //dblab. kaist. ac. kr/~bpark/”> … <IMG src=“icons/logo. gif”>
Body Elements q q <BODY>. . . </BODY>로 표시 문서의 실제 내용을 포함 Web Browser의 문서 내용 영역에 보이는 부분 사용 가능한 Tag의 종류 m Block Formatting m Font Style m List m Anchor m Image m Table m Frame m Form
page 12 <BODY> Tag q 지정할 수 있는 속성들 m background m bgcolor m text m link m vlink - 배경 그림 background color text color link color visited link color q 색깔은 RGB 값이나 지정된 이름을 사용 q 예 m <BODY BACKGROUND=“tiles. gif”> m <BODY BGCOLOR=black TEXT=white LINK=purple>
Block Formatting (2/3) m Horizontal Rules <HR> n 수평선을 그려준다 n 가능한 속성 l <HR SIZE=6> : 선의 두께를 픽셀 단위로 지정 l <HR WIDTH=100 | 80%> : 선의 폭을 지정 l <HR ALIGN=LEFT | RIGHT | CENTER> m Line Break <BR> n 출력을 다음줄의 맨 왼쪽으로 이동 시킨다 m Address <ADDRESS>. . . </ADDRESS> n address, signature, authorship 등으로 사용 n Italic 체로 표시된다
Block Formatting (3/3) m Quotations <BLOCKQUOTE>. . . </BLOCKQUOTE> n 다른데서 인용된 문장을 나타내는 데 사용 n 들여 쓰기로 표시된다 m Text Alignment n 각 Element 별로 정렬하기 l <H 1 ALIGN=CENTER>Storage System</H 1> l <P ALIGN=CENTER></P> n Element 블럭을 정렬하기 : DIV l <DIV ALIGN=LEFT | CENTER | RIGHT>. . . </DIV> n <CENTER>. . . </CENTER> : Netscape Extension l HTML의 모든 내용을 중심에 배치해준다
Font Style (1/3) m Character Styles n Logical Styles l l l l <EM> <STRONG> <CODE> <SAMP> <KBD> <VAR> <DFN> <CITE> 강조하고자 할 때, Italic 체 더 강조하고자 할 때, Bold 체 코드, 타자체 literal 문자열, 타자체 키보드 입력, 타자체 변수의 이름, Italic 체 단어 정의, Italic 체 책 제목 등, Italic 체
Font Style (3/3) m 폰트 크기 설정 n <FONT> l <FONT SIZE=1. . . 7 COLOR=“CYAN”> l <FONT SIZE=-3. . . +4> n <BASEFONT SIZE=1. . . 7> : Netscape Extension l 기본 폰트 크기 설정. 기본값은 3 이다. m Headings n 여섯 단계 l <H 1> H 1 Tag </H 1> H 1 Tag l <H 2> H 1 Tag </H 2> H 2 Tag l <H 3> H 1 Tag </H 3> H 3 Tag l <H 4> H 1 Tag </H 4> l <H 5> H 1 Tag </H 5> l <H 6> H 1 Tag </H 6> H 4 Tag H 5 Tag H 6 Tag
List m Numbered Lists (Ordered Lists) n 각각의 아이템에 번호가 매겨진다 l <OL> <LI>List Item 1<LI>List Item 2 </OL> l <OL TYPE=A | a | I | i | 1 START=5> m Unordered Lists n 번호가 매겨지지 않고 심볼이 표시된다 l <UL> <LI>List Item 1<LI>List Item 2 </UL> l <UL TYPE=DISC | CIRCLE | SQUARE> m Definition Lists n 용어와 용어의 정의로 구성된다 l <DL>. . . <DT>term<DD>definition. . . </DL> l 예 Term 1 is defined as … Term 2 is defined as. . .
Images and Color (1/3) m 영상 데이터의 출력 m HTML에서 그림 삽입: <IMG> n 기본적인 사용 예 l <IMG SRC=“posters/volcano. jpg”> m 그림과 텍스트 정렬 n ALIGN 값으로 다음과 같은 속성을 지정해준다 l <IMG ALIGN=TOP | MIDDLE | BOTTOM | TEXTTOP | ABSMIDDLE | BASELINE | ABSBOTTOM> m 텍스트를 그림에 Wrapping n ALIGN=LEFT 혹은 ALIGN=RIGHT n 텍스트 Wrapping을 중단 시키기 l <BR CLEAR=LEFT | RIGHT | ALL>
Images and Color (2/3) m 그림의 크기 지정 n WIDTH, HEIGHT 속성값을 픽셀 단위로 지정한다 l <IMG SRC=“rei. jpg” WIDTH=80 HEIGHT=30> m 그림과 텍스트의 간격 조정 n VSPACE, HSPACE 속성값을 픽셀 단위로 지정한다 l <IMG SRC=“rei. jpg” VSPACE=30 HSPACE=30> m 그림과 링크 n <A> Tag 안에 <IMG>를 포함시키면 된다. l <A HREF=“home. html”><IMG SRC=“home. gif”></A> n BORDER 속성값을 지정해 줄 수도 있다. l <A. . . ><IMG SRC=“arrow. gif” BORDER=0></A> m 그림의 Alternative 제공 n ALT 속성에 문자열을 지정해준다. l <A HREF=“rei. jpg” ALT=“Rei’s Smiling Face”>
Images and Color (3/3) m 색을 지정하는 방법 n 미리 정의된 색 이름들 사용: red, blue, green. . . n RGB값을 16진수로 지정 l ex) #000000, #DE 04 E 4, #FFFF 00 l http: //colors. infi. net/colorindex. html m 배경색 및 텍스트 색 변경 n BODY의 속성에 원하는 값을 지정한다 l <BODY BGCOLOR=“#000000” TEXT=“#871 F 78” LINK=“#9805 FF” VLINK=“#70 DBDB”> n <FONT>로 일정 부분만 색 변경이 가능하다 l <FONT COLOR=“#FF 0000”>RED</FONT> m 배경 그림 사용 n BODY의 속성에 원하는 값을 지정한다 l <BODY BACKGROUND=“images/bkground. gif”>
page 27 Table (4/4) 교육내용안(1) q 예제 과정명 교육 기간 일수 <TABLE BORDER=2> 이론 주 6일 <CAPTION>교육내용안(1)</CAPTION> 데이타베이스 <TR> 실습 주 4일 <TH COLSPAN=2 ROWSPAN=2>과정명</TH> <TH COLSPAN=2>교육기간</TH> </TR> <TH>일수</TH> <TH>시간</TH> </TR> <TH ROWSPAN=2>데이타베이스</TH> <TH>이론</TH> <TD ALIGN=CENTER>주 6일</TD> <TD ALIGN=CENTER>24시간</TD> </TR> <TH>실습</TH> <TD ALIGN=CENTER>주 4일</TD> <TD ALIGN=CENTER>32시간</TD> </TR> </TABLE> 시간 24시간 32시간
page 28 Frame (1/2) m Frames n 하나의 화면을 분할시켜 구성 n Frame을 사용한 문서는 <BODY> tag 대신 <FRAMESET> 사용 n <FRAMESET>. . . </FRAMESET> l Frame들이 들어갈 수 있는 container l 속성 4 ROWS, COLS: 화면을 분할하는 방법을 지정 예) <FRAMESET COLS=“ 100, 50%, *”> <FRAMESET ROWS=“ 50%, 50%”> n <FRAME> l Frameset에 들어갈 하나의 frame을 정의 l 속성 4 4 SRC=“. . . ”: Frame에 들어갈 문서의 URL NAME=“. . . ”: Frame에 부여할 이름 SCROLLING=“yes|no|auto”: 스크롤이 가능하게 할지 아닐지 결정 NORESIZE, MARGINWIDTH, MARGINHEIGHT 등 n <TARGET> l <A HREF=“orchid. html” TARGET=“right”>Orchid</A>
page 29 Frame (2/2) q 예제 <html> <head> <title>Background Colors</title> </head> <FRAMESET ROWS="25%, 75%"> <FRAME SRC="cell 1. html" name="top" marginheight="1" SCROLLING="auto"> <FRAMESET COLS="33%, 67%"> <FRAME SRC="cell 2. html" name="left" margin width="1" scrolling="auto"> <FRAME SRC="cell 3. html" name="right" margin width="1" scrolling="auto"> </FRAMESET>
page 30 Form (1/7) q <FORM>. . . </FORM> m 사용자로부터 입력을 받아 서버에 전달 m 속성 n ACTION=“URL” l form input을 처리할 CGI 프로그램의 URL n METHOD=GET | POST l form input을 CGI 프로그램에 전달하는 방식 q FORM에서 입력받는 방법 m INPUT m SELECT m TEXTAREA
page 31 Form (2/7) q <INPUT> m 사용자가 입력, 수정할 수 있는 field m 속성: TYPE, NAME, VALUE, SIZE, CHECKED n TYPE=TEXT |PASSWORD |RADIO |CHECKBOX |SUBMIT |RESET l 입력 유형을 지정 n NAME=“…” l 입력 항목을 식별 n VALUE=“…” l 입력 항목의 값 n SIZE l 입력 필드의 크기(글자수) n CHECKED l TYPE=RADIO |CHECKBOX 일때 디폴트로 선택되었음을 의미
page 32 Form (3/7) q 예제 <HTML> <HEAD><TITLE>Input Form</TITLE></HEAD> <BODY> <H 2>INPUT FORM</H 2> <FORM action="cgi-bin/input. cgi" method=get> <TABLE> <TR><TD>이름<TD><INPUT type=text size=20 name=name></TR> <TR><TD>비밀번호<TD><INPUT type=password size=20 name=password></TR> <TR><TD>성별<TD><INPUT type=radio name=sex value=male checked>남(male) <INPUT type=radio name=sex value=female> 여(female)</TR> <TR><TD>직업<TD><INPUT type=checkbox name=job value=student checked>학생 <INPUT type=checkbox name=job value=company>회사원 <INPUT type=checkbox name=job value=research>연구원 <INPUT type=checkbox name=job value=misc> 기타</TR> </TABLE> <INPUT type=submit value="접수"> <INPUT type=reset value="지우기"> </FORM> </BODY> </HTML>
page 34 Form (5/7) q 예제 <HTML> <HEAD><TITLE>Select Form</TITLE></HEAD> <BODY> <H 2>SELECT FORM</H 2> <FORM action="cgi-bin/input. cgi" method=get> <TABLE> <TR><TD>나이<TD><SELECT name=age> <OPTION value=10>10~19 <OPTION value=20 selected>20~29 <OPTION value=30>30~39 <OPTION value=40>40~49 <OPTION value=50>50~59 <OPTION value=60>60~ </SELECT> </TR> <TR><TD>직업<TD><SELECT name=job multiple size=2> <OPTION value=student>학생 <OPTION value=company selected>회사원 <OPTION value=research>연구원 <OPTION value=personal>개인사업가 <OPTION value=free>프리랜서 </SELECT> </TR> </TABLE> <INPUT type=submit value="전송"> <INPUT type=reset value="지우기"> </FORM> </BODY> </HTML>
page 35 Form (6/7) q <TEXTAREA> m 사용자가 입력할 수 있는 여러 줄의 text block m 속성: NAME, SIZE, MULTIPLE n NAME=“…” l TEXTAREA 항목 식별자 n COLS=n l TEXTAREA의 창 크기(문자 수) n ROWS=n l TEXTAREA의 창 크기(라인 수) n WRAP=off | virtual | physical l 입력된 텍스트의 경계 처리
page 36 Form (7/7) q 예제 <HTML> <HEAD><TITLE>Text. Area Form</TITLE></HEAD> <BODY> <center> <H 2>TEXTAREA FORM</H 2> <FORM action="cgi-bin/input. cgi" method=get> <TABLE> <TR><TD>SQL 입력란<TD><TEXTAREA name=sql cols=30 rows=10></TEXTAREA> </TR> <TR><TD>사용자 의견란<TD><TEXTAREA name=user cols=30 rows=10 wrap=physical> 안녕하세요? 여기에 원하시는 내용을 입력해 주세요. 여기는 자동적으로 단어를 박스 경계에서 줄바꿈해 줍니다. </TEXTAREA></TR> </TABLE> <INPUT type=submit value="전송"> <INPUT type=reset value="지우기"> </FORM> </center> </BODY> </HTML>
page 38 CGI q WWW 서버(httpd) 환경 설정 m conf/srm. conf 파일중에서 Script. Alias와 Add. Type부분을 다음과 같 이 수정 # Script. Alias: This controls which directories contain server scripts. # Format: Script. Alias fakename realname Script. Alias /cgi-bin/ /usr/local/etc/httpd/cgi-bin/ Add. Type text/x-server-parsed-html Add. Type application/x-httpd-cgi. cgi
page 39 CGI q CGI 환경 변수 m SERVER_SOFTWARE=server_name/version m SERVER_NAME=domain_name m SERVER_PORT=number m REQUEST_METHOD=GET | POST m PATH_INFO=extra_path m PATH_TRANSLATED=/trans/extra_path m SCRIPT_NAME=/path/script_name m QUERY_STRING=query_string m REMOTE_HOST=domain_name m REMOTE_ADDR=IP_addr m REMOTE_USER=name m CONTENT_LENGTH=length
page 42 CGI 프로그래밍 q 예제 Http: //dblab. kaist. ac. kr/~bpark/index. html <FORM method=get action=“cgi-bin/getproc. cgi”> 이름: <INPUT type=text size=20 name=login> 나이: <INPUT type=text size=5 name=age> 성별: <INPUT type=radio name=sex value=male> male <INPUT type=radio name=sex value=female> female 학교: <SELECT name=school> <OPTION value=“[한국 대학]” checked> 한국 대학 <OPTION value=“[대전 대학]” checked> 대한 대학 </SELECT> <INPUT type=submit value=“등록”> <INPUT type=reset value=“지우기”> </FORM> m PATH_INFO n /~bpark/cgi-bin/getproc. cgi m QUERY_STRING n login=박병권&age=35&sex=male&school=%5 B한국+대학%5 D
page 48 WWW와 데이타베이스의 연동 q WWW 변화 과정 m GUI & Multimedia (1994) n Image, Audio, Video m CGI (1995) n Form, Table n CGI n Security m Java (1996) n Applet (mobile Code) m Object (1997) n Orblet (CORBA + Java) n Java Beans n Active. X
page 49 WWW 와 데이타베이스의 연동 WWW Client request WWW Java Client Call Level Interface HTML WWW Server CGI request HTML Orblet request WWW Server Middleware response WWW Client Orblet Database Gateway DB request WWW Client data DBMS (a) Database Gateway WWW Client Orblet (b) Database Middeware (c) Distributed Objects
page 50 Web과 Database 연동 q 연동 방법 m Browser External Viewer 이용 방법 m Java를 이용한 방법 n Java Language Binding n JDBC m CGI를 이용한 방법 n CGI Database Gateway n Illustra Web Data. Blade
page 51 Browser External Viewer를 이용 방법 q 시스템 구조 클라이언트 WWW Browser Database Access Internet 데이타베이스 관리 도구 DBMS 엔진 데이타베이스 Web 서버 서버
page 53 Java를 이용한 방법 q Java Language Binding m ODMG Object Model(ODL, OML)을 Java로 구현 n Java ODL, Java OML, Java OQL Java Applet Web Browser Download bytecode Database access Web Server DB Server Desktop Client Server Machine
page 54 Java를 이용한 방법 q Applets Download bytecode Java Applet JDBC Driver Database access Internet Web and Database Server Desktop Client Internet Server Machine q Applications Java Application JDBC Driver Local Disk Desktop Client Database access Internet Database Server
page 55 Java를 이용한 방법 q JDBC Driver Architecture Java Application JDBC API JDBC Manager JDBC Driver API JDBC-ODBC Bridge Driver A Driver B ODBC and DB Drivers Database Access Protocols JDBC 구현
page 56 JCBC 이용 q 예제 class Select { public static void main(String argv[]) { try { // Create a URL specifying an ODBC data source name. String url = “jdbc: odbc: wombat”; //Connect to the database at that URL. Connection con = Driver. Manager. get. Connection(url, “bpark”, “”); //Execute a SELECT statement. Statement stmt = con. create. Statement(); Result. Set rs = stmt. execute. Query(“SELECT id, name FROM Student”); //Step through the result rows. System. out. println(“Got results: ”); while (rs. next()) { // get the values from the current row: int a = rs. get. Int(1); char name[] = rs. get. String(2). tochar. Array(); . . . } stmt. close(); con. close();
page 57 CGI를 이용한 방법 q CGI Database Gateway 클라이언트 Web Browser 외부 뷰어 Internet Web Server Database Gateway HTML 문서 생성화일 서버 데이타베이스 응용 서버 DBMS 데이타베이스
page 58 CGI를 이용한 방법 q Web Server와 DBMS를 연결해 줄 수 있는 Database Gateway 가 필요함 q Database Gateway 개발 방법 m CGI (Common Gateway Interface) 이용 방법 m 확장 API (Netscape의 NSAPI) 이용 방법 m 특정 DBMS 전용 Web 서버 이용 방법
page 60 Database Gateway 개발 방법 q CGI를 이용한 Database Gateway 시스템 구조 (1) Web 서버 CGI Database Gateway . . . DBMS 엔진 데이타베이스 Database Gateway 데이타베이스 관리 도구
page 62 Database Gateway 개발 방법 q CGI를 이용한 Database Gateway 시스템 구조 (2) Web 서버 CGI . . . Dispatcher Database Gateway DBMS 엔진 데이타베이스 관리 도구
page 64 Database Gateway 개발 방법 q 확장 API를 이용한 Database Gateway 시스템 구조 Web 서버 확장 API Database Gateway DBMS 엔진 데이타베이스 관리 도구
page 66 Database Gateway 개발 방법 q 특정 DBMS 전용 Database Gateway를 내장한 Web 서버 시스템 구조 Web 서버 Database Gateway DBMS 엔진 데이타베이스 관리 도구
page 68 Database Gateway 사례 q 객체지향 DBMS 지원 m O 2 Web (O 2 Technology Inc. , France) n 지원 DBMS: O 2 n Gateway 방식: CGI 이용 n HTML 문서 생성: method function(o 2 report) 이용 m Inter. Serv (NTT Data Comm. , Japan) n 지원 DBMS: Uni. SQL n Gateway 방식: DBMS 전용 Web Server n HTML 문서 생성: Script 언어 이용
page 69 Database Gateway 사례 q 객체지향 DBMS 지원 m Navi. Server (Navi. Soft, Inc. ) n 지원 DBMS: Illustra n Gateway 방식: DBMS 전용 Web Server n HTML 문서 생성: SQL-Embedded HTML 이용 m Illustra’s Web Data. Blade (Illustra Infor. Tech. , Inc. ) n 지원 DBMS: Illustra n Gateway 방식: CGI 이용 n HTML 문서 생성: Function Library 이용
page 70 Database Gateway 사례 q 관계형 DBMS 지원 m Web/Genera (Yale Univ. ) n 지원 DBMS: Sybase n Gateway 방식: CGI 이용 n HTML 문서 생성: Web/Genera schema 이용 m Web. Rex (Information Technology Solutions, Inc. ) n 지원 DBMS: Oracle n Gateway 방식: DBMS 전용 Web Server n HTML 문서 생성: ?
page 71 Database Gateway 사례 q 관계형 DBMS 지원 m Blackie/WWWEnterprise/15 (Blackie DBGateway Tech. , Inc. ) n 지원 DBMS: Informix n Gateway 방식: CGI 이용 n HTML 문서 생성: Script 언어 이용 m Decoux (Oracle) n 지원 DBMS: Oracle n Gateway 방식: CGI 이용 n HTML 문서 생성: 확장된 HTML markup 이용
page 72 Database Gateway 사례 q ODBC 지원 m Web. DBC (Nomad Development, Inc. ) n 지원 DBMS: ODBC n Gateway 방식: CGI 이용 n HTML 문서 생성: HTX라는 확장된 HTML markup 이용 m Web. Base (Exper. Telligence, Inc. ) n 지원 DBMS: ODBC n Gateway 방식: DBMS 전용 Web Server n HTML 문서 생성: . htf라는 확장된 HTML markup 이용
page 73 Database Gateway 사례 q ODBC 지원 m Commerce Builder (The Internet Factory, Inc. ) n 지원 DBMS: ODBC n Gateway 방식: DBMS 전용 Web Server n HTML 문서 생성: SMX라는 script 언어 이용 m Cold Fusion (Allaire, Inc. ) n 지원 DBMS: ODBC n Gateway 방식: CGI 이용 n HTML 문서 생성: DBML이라는 script 언어 이용
page 74 Database Gateway 사례 q 본 연구실에서 개발한 사례 m KAIST Database Gateway n 지원 DBMS: 오디세우스 (ODYSSEUS) - 본 연구실에서 개발한 객체지 향 DBMS n Gateway 방식: proprietry 방식 n HTML 문서 생성 방식: proprietry 방식
page 75 Illustra Web Data. Blade q Architecture Illustra Webdriver(CGI) Web Server request SQL Application pages Build SQL statement Dynamic Page CGI Envn’t Web. conf HTML page with dynamic with MISQL data tag Web. Explode() Web Data. Blade
page 76 Illustra Web Data. Blade q Webdriver m Web Server와 Illustra를 연결하는 CGI Driver m DB로부터 HTML 응용 page를 extract 하여 Web. Explode를 수행시킴 m Web. Explode가 생성한 HTML 문서를 Web Server에게 전달 q Web. Explode function m HTML 응용 page안에 내장된 SQL 문장을 생성 및 수행 m SQL 수행 결과를 Webdriver에 전달 q Web Data. Blade tags and attributes m SGML-compliant tags and attributes m SQL 문장을 HTML 응용 page 속에 내장시킴 q Web Data. Blade functions m Formatting of HTML pages m Retrieval of CGI environment variables
page 77 Illustra Web Data. Blade q Configuration Variables in Web. conf m m m m MI_USER MI_DATABASE MItab MInam Micol Mival WEB_HOME miadmin webdb web_pages ID page apb /cgi-bin/Webdriver q web_pages Table ID desc page select_table The 1 st application page <HTML>…<? MISQL>. . . display_table The 2 nd application page <HTML>…<? MISQL>. . .
page 78 Illustra Web Data. Blade q Application page 예 select_table <HTML> <HEAD> <TITLE> Select from Table </TITLE> </HEAD> <BODY> <FORM METHOD=POST ACTION=<? MIVAR>$WEB_HOME<? MIVAR>> <? MIVAR COND=($table_name. nxst. ) NAME=$table_name> <? /MIVAR> Select from table: <HR> <? MIVAR> <INPUT TYPE=text SIZE=40 NAME=table_name VALUE=$table_name> <? /MIVAR> <INPUT TYPE=submit VALUE=Select> <INPUT TYPE=hidden NAME=Mival VALUE=display_table </FORM> </BODY> </HTML>
page 79 Illustra Web Data. Blade q Application page 예 display_table <HTML> <HEAD> <TITLE> Display Table Data </TITLE> </HEAD> <BODY> <? MIBLOCK COND=($table_name. xst. )> <TABLE BORDER=3> <TR> <? MISQL SQL=“SELECT a. column_name FROM columns a, tables b WHERE a. column_member = b. table_type AND b. table_name = trim(both from ‘$table_name’); ”> <TD>$* </TD> <? /MISQL> </TR> <? MISQL SQL=“SELECT * FROM $table_name; ”> <TR> { <TD> $* </TD> } </TR> <? /MISQL> </TABLE> <? /MIBLOCK > </BODY> </HTML>
page 80 Database Gateway 예제 q GSQL m A simple public domain database gateway n 지원 DBMS: Sybase, Oracle n Gateway 방식: CGI 이용 n HTML 문서 생성: proc file (SQL-specification file)이라는 script file 이용
page 81 Database Gateway 예제 q GSQL Database Gateway 시스템 구조 WWW server CGI executable (shell script) SQL HTML gsql (database gateway) proc file sqlmain (database application program) DBMS Database
page 82 Database Gateway 예제 q CGI Executable 예제 (C Shell Script) # ! /bin/csh # set DBMS environment source setup # dispatch the sample PROC file. /gsql sample. proc $QUERY_STRING
page 83 Database Gateway 예제 q GSQL PROC file 예제 HEADING <H 2> Database Gateway Example Using GSQL </H 2>; TEXT <HR>; TEXT <P>. . . ; TEXT <HR>; SUB SUB SHOW paintings sculture objects _attrlist SELECTLIST AS paintings; SELECTLIST AS sculture; SELECTLIST AS objects; SELECTLIST variable $; TITLE “<P> Select what you want. ” SCROLL paintings, sculture, objects d’art; . . . SQLPROG /gsql_demo/sqlmain; FROMLIST museum; DEFINE database login passwd sample_db; whang;
page 84 Database Gateway 예제 q GSQL 예제 PROC file의 실행 화면





















































































