제11장 웹 Database
2009. 08. 21
목 차
11.1 웹 페이지
11.2 웹 페이지 구조 11.3 동적 페이지
11.4 XML
11.5 연습문제
Web의 영향
intranet + internet 전자상거래, 경매, 전자정부,,,
URL: 인터넷에서 접근할 수 있는 주소 HTTP:
프로토콜: 통신 메시지 구조를 정의하는 표준들의 집합.
클라이언트/서버 프로토콜: 웹 브라우저와 HTTP 서버 사이
11.1 WWW
Web
제11장 WWW
다양한 형태의 자료 집합
[표 11.1) ] 자료 구조의 형태
자료 구조 특 징 실 례
구조화된
자료 구조가 잘 정의된 자료 DBMS에 저장된 금융, 고객 자료 반 구 조 화
된 자료
부분적으로 구조화된 자 료
다양한 형태의 참고문헌(책, 논 문, 잡지,,)
비 구 조 화
11.1 WWW
생성 언어 Markup Language: 문서를 기술하는 표기 언어
문서의 각 부분들을 내용과 의미와 표기로 기술하는 언어.ex. 프린터, 전자출판 HTML:
텍스트, 문서 스타일의 정의, 하이퍼링크를 표현하는 표기 언
어.문자, 오디오, 비디오 포함.
디스플레이 목적을 위한 문서의 구조 표시.
제11장 WWW
HTML의 특징
1989 Tim Berners-Lee가 제안, 1992년 HTML을 처음 기술 HTML 문서를 프로그램이 자동으로 읽고 이해하기 곤란.
스키마 부재 구조화된 자료 표현 곤란
일반 응용을 위한 문서 내부의 자료 구조 표현 곤란.
Display는 가능하나 저자의 이름과 성을 구분하기 곤란 복잡한 문서들의 교환에 부적합.
11.1 WWW
HTML
제11장 XML
<HTML>
<HEAD>Book List on Hand</HEAD>
<BODY>
<br>
Science
<UL>
<LI>Authhor: James Martin</LI>
<LI>Title: Information Retrieval</LI>
<LI>Published 1990</LI>
</UL>
Fiction
<UL>
<LI>Authhor: Margaret Mitchel</LI>
<LI>Title: Gone with the wind</LI>
<LI>Published 1939</LI>
<LI>Paperback</Li>
</UL>
</BODY>
Book List on Hand Science
Authhor: James Martin Title: Information Retrieval Published 1990
Fiction
Authhor: Margaret Mitchel Title: Gone with the wind Published 1939
SGML Standard Generalized Markup Language
1988. 문서 교환 언어를 정의할 수 있는 메타 언어 복잡한 문서들을 대량 관리하는 조직체용.
너무 복잡해서 불편 XML
문서의 구성과 의미를 기술하는 표기 언어.
HTML + SGML XML95
11.1 WWW
XML
제11장 XML 개요
[표 11.2) ] HTML와 XML의 비교
구분 HTML XML
태그 고정식, 제한적 사용자 정의 가능: 의미 부 여 기능
정보 표현 단순 표현 정보의 내부 구조 반영
Database
연계 속성 구분 곤란 속성 별로 저장, 교환과 공 유 가능
검색 효율 비효율적 구조와 내용 분리로 효율 적
장점 쉽고 간결 문서 작성 편리
Client/Server 시스템
서비스를 요청하는 client와 제공하는 server로 구성된 분산 시 스템.
응용을 여러 시스템들이 나누어 협동 처리하는 시스템.
웹 서비스 프로그램
3계층 C/S 프로그램 - Intranet11.2 웹 페이지 구조
Client/Server 시스템 구성요소
제11장 구조
구성 요
소 기 능 실 례
표현논리 사용자에게 자료의 내용을 보여주는
프로그램 Form, Browser
응용논리 현실 문제를 해결하는 프로그램 급여계산, 상품 주문 자료논리 자료 연산을 수행하는 프로그램 SQL 프로그램
DBMS 데이터베이스 엔진 Access, Oracle, Sybase
(1)
2계층 모델
(2)
3계층 모델(2단계)
11.2 웹 페이지 구조
3계층 모델 3단계
제11장 구조
11.2 웹 페이지 구조
Database와 Web 동적 페이지
client의 요청 시 HTML 문서 생성, client로 전송.
정적 사이트? DBMS 연동?
ex. CRM
다양한 서비스: 관련 정보 제공, 사전 요청 정보 & 기능 제 공,,,,
분산 Database 처리:
제11장 XML
동적 페이지
FORM을 이용한 클라이언트/서버 사이의 자료교환
<form action="order.cgi" method="get" name="LoginForm">
Please input user name
<input type="text" name="userName" id="uname"><p>
<input type="text" name="address" id="address"><p>
<input type="text" name="company" id="company"><p>
...
<input type="submit" value="send">
</form>
11.2 웹 페이지 구조
웹 서버와 데이터베이스의 연결
제11장 XML
웹 페이지 접속
Client: URL을 이용하여 서버 호출 서버: 새 프로세스 생성
CGI 규약으로 이 프로세스를 실행 실행 결과를 HTML 문서로 작성
HTML 문서 전송 ClientClient: display
11.3 동적 페이지
CGI common gateway interface
서버는 새 프로세스를 하나 만들고 CGI 규약으로 교신.
프로세스 폭주 가능
제11장 구조
ASP와 다른 기술의 비교
기술 특성 CGI ASP JSP PHP
웹 서버 all MS IIS, PWS all all
이식성 종속적 종속적 독립적 독립적
재사용/모듈성 곤란 곤란 용이 용이
스크립트 언어 C, Perl VB Script,
JScript Java C
병행성 곤란 우수 우수 우수
11.3 동적 페이지
ASP 동작 절차
제11장 구조
JSP 동작 절차
11.3 동적 페이지
ODBC 역할
제11장 구조
[표 11.1) ] ODBC와 JDBC의 비교
기술 특성 ODBC JDBC 비 고
웹 서버 MS IIS, PWS all
DB RDB RDB
인 터 페 이 스
VB Script,
JScript 자바
브릿지 JDBC-
ODBC
Java에서 ODBC 사용 장점 가장 많이 보
급 이식성
JDBC 실행절차
11.3 동적 페이지
3계층 JDBC 시스템
제11장 구조
사용자가 새로운 태그 정의 가능.
어떤 문서도 태그를 이용하여 조직 가능.
HTML 문서와 DB 스키마 사이를 이어주는 연결 고리.
특징:
1) 정확한 내용 전달: 정보교환 및 자료공유 용이, 2) Tag로 자료에 대한 구조 제공: DB화 가능, self-
documenting
11.4 XML
HTMP과 XML 문서
제11장 구조
<HTML>
<HEAD></HEAD>
<BODY>
<font size=3> 과학
<p> 정보검색 </p>
<p> 도서출판 그린</p>
<p> 2009년 4월</p>
</font>
</BODY>
</HTML>
<?xml version="1.0" encoding="euc-kr" ?>
<과학>
<제목>정보검색</제목>
<출판사>도서출판 그린</출판사>
<출판일자>2009년 4월 9일</출판일자>
</과학>
XML의 목표:
1) SGML과 호환되어야,,
2) XML 프로세서를 작성하기 쉬워야,, 3) 설계가 형식적이고 정교해야,,
XML의 구조:
1) HTML과 비슷하게 보여야
2) 엘리먼트라 불리는 사용자-정의 태그의 계층구조
<HTML>
<HEAD></HEAD>
<BODY>
<font size=3> 제품정보 <p> 배 </p>
<p>나주시 </p>
<p> 1 </p>
<p> 56000 </p>
</font>
</BODY>
</HTML>
제11장 XML
<?xml version=“1.0” encoding=“utf-8 ? >
<제품정보>
<과일> 배 </과일>
<생산지역> 나주시 </생산지역>
<수량> 1 </수량>
<가격> 56000 </가격>
</제품정보>
11.4 XML 실례
XML 문서 = Prolog + Body
Prolog: XML 문서에 대한 정보를 기술
PI, DTD, XML 스키마 등으로 구성
Body: 문서 기술 부분. 여러 요소element들로 구성
XML 문서의 구성요소
- PI Processing Instruction - comment
11.4 XML 구조
- Element: 일명 Tag. 기본 구성 단위. <ELM> .. </ELM>
<BOOK genere=“Fiction”>
<AUTHOR>
<FIRSTNAME>Gildong </FIRSTNAME>
<LASTNAME>Hong </LASTNAME>
</AUTHOR>
</BOOK>
- Attribute: 추가 정보 저장용 <ELM att=“value”>
- entity reference
제11장 XML
<?xml verion=”1.0" encoding=”euc-kr” ?>
<!-- BODY (This is Comment) -- >
<제품정보>
<과일 종류=”배”>
<생산지역> 나주시 </생산지역>
<수량> 1 </수량>
<가격> 56000 </가격>
</과일>
</제품정보>
Prolog: PI
element
attribute comment Root element
11.4 XML DTD
DTD: XML 자료를 위한 스키마
XML 문서의 선택적 부분.
사용자 자신의 원소, 속성, 개체들의 집합을 표시할 수 있도록
허용하는 규칙의 집합.구분: 내부 DTD, 외부 DTD
DTD 구성요소: 요소 선언, 속성 선언, 개체 선언, 노테이션 선
언, 주석, 조건부 세션, PI<!ELEMENT 요소명 요소유형>
요소 유형: EMPTY, #PCDATA, 자식 요소명, MIXED, ANY
제11장 XML
<!DOCTYPE BOOKLIST[ 키워드 루트 요소명
<!ELEMENT BOOKLIST (BOOK)*>
<!ELEMENT BOOK (AUTHOR,TITLE,PUBLISHED?)>
<!ELEMENT AUTHOR (FIRSTNAME,LASTNAME)>
<!ELEMENT FIRSTNAME (#PCDATA)>
<!ELEMENT LASTNAME (#PCDATA)>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT PUBLISHED (#PCDATA)>
11.4 외부 DTD 참조시 //DTD 부분만 기술하여 확장자를 .dtd로 정의
<?xml version=“1.0” encoding=“euc-kr” ?>
<!DOCTYPE BOOKLIST “chapter.dtd”> 키워드 루트 요소명 DTD 파일명
<BOOKLIST>
<BOOK GENERE=“Fiction”>
<AUTHOR>
<FIRSTNAME>균</ FIRSTNAME >
<LASTNAME> 허</LASTNAME>
</AUTHOR>
<TITLE> 홍길동전</TITLE>
<PUBLISHED> 1443</ PUBLISHED >
</BOOK >
제11장 XML
1) 파일로 저장
2) Database로 저장
XML 자료가 많을 경우에 데이터베이스화 필수 3) XML 자료를 관계형으로 바꾸고, RDB에 저장
비관계형 자료 저장
- 일반 파일로 저장 - XML database 생성
DOM을 C++ 기반의 객체지향 DB에서 구현
11.4 XML 준구조화 자료
준구조화 자료 semistructured data 부분적으로 구조화된 자료.
ex. 참고문헌 파일: 저자, 제목 외에는 비구조화 자료 필요성
- 자료의 구조가 내재적이고 감추어져 있다.
- 자료의 교환과 변환이 중요
- 스키마 지식이 없으면서도 질의를 던지고 싶을 때
제11장 XML
Namespace
정보 공유 시 동일한 이름의 태그 충돌 예방 XML Schema
DTD의 한계를 개선한 것.
XSL eXtensible Stylesheet Language
HTML과 같이 익숙한 형태로 표현하게 해주는 스타일링 기 술
11.4
NameSpace이름이 동일한 요소에서 발생하는 이름 충돌방지 기술.
Tag를 자유롭게 만드는 것이 오히려 충돌 야기.
제11장 XML 문서 구조
<?xml version=“1.0” encoding=“euc-kr”?>
<Cus:User>
<Cus:ID>pinkgirl</Cus:ID>
<Cus:Name>홍길동</Cus:Name>
<Cus:Good>
<Order:Good>
<Order:ID>19908-098</Order:ID>
<Order:Name>NoteBook</Order:Name>
</Order:Good>
</Cus:Goods>
NameSpace 선언 by XML 1.0 spec
기본 형식: <prefix:ElementName xmlns:prefix=URL>
실례: <Cus:User xmlns:Cus= “http://www.pop.com/buy/cus”
xmlns:Order=“http://www.techom.net/2002/Order”>
<?xml version=“1.0” encoding=“euc-kr”?>
<Cus:User xmlns:Cus= “http://www.pop.com/buy/cus”
xmlns:Order=“http://www.techom.net/2002/Order”>
<Cus:ID>pinkgirl</Cus:ID>
<Cus:Name>홍길동</Cus:Name>
<Cus:Good>
11.4
XML Schema다음과 같은 DTD의 한계점을 개선함.
- DTD는 구현이 어렵다.
- DTD의 자료형은 제한적
- 재사용과 확장성 불가
- string, integer, numeric, date, boolean 내장형 정의
C:\XML\chapter6\test.xsd
<xs: schema xmlns:xs=http://www.w3.org/2001/XMLSchema>
<xs: element name=“제품군” type=“xs:string”/>
제11장 XML 문서 구조
ERD
고 객 사 원
주 문
구매 지원
영업
사번 고객번호
주문번호 1
1 1
n
n n
이름 사번
사번 고객번호 일자
영업 사원
구매 영업
사번
고객번호 1
1 n
이름
이름 고 객
11.4
XML인터넷 서점 데이터베이스의 ERD
제11장 XML 문서 구조
/
cellular
salesType maker telecom
cellular model:cx-00
salesType maker telecom
products
요소 노드 속성노드
루트노드
문서 루트(가상노드)
model:sch-00
<products>
<cellular model="sch-00">
<telecom>019</telecom>
<salesType>change</salestype>
<maker>samsung</maker>
</cellular>
<cellular model="cx-00">
<telecom>011</telecom>
<salesType>newbuy</salestype>
<maker>LG</maker>
</cellular>
</products>