Db 이미지 저장 - db imiji jeojang

Store and retrieve images

common requirement of many project

많은 프로젝트에서 요구되는 기능인데 크게 두 가지 방법이 있다. 

disc approach 와 database approach 이다.

Disc approach

save real images on disc

실제 이미지 파일을 데이터베이스가 아니라 디스크에 저장하고

keep data reference in DB

파일 path 와 같은 메타데이터 정보를 데이터베이스에 저장한다. 

good in big size of images

큰 데이터 파일이면 유리하다.

better performance

속도가 빠르다. 

multi database can share

이미지 파일을 특정 데이터베이스에 저장하는게 아니라서 데이터베이스가 여러 개면 이미지 파일을 공유할 수 있는 장점이 있다. 

Db 이미지 저장 - db imiji jeojang

Database approach

save real images in database

실제 이미지를 데이터베이스에 바이트 데이터로 저장하는 방법 

image size is small

파일 사이즈 크면 부담이 되니 작게

BLOB column in database

데이터베이스 칼럼은 Binary large object로 정의함

setBinaryStream()

자바에서는 setBinaryStream 메소드를 통해서 이미지를 데이터베이스에 저장하고

이미지를 가져올 경우 java.sql에 있는 BLOB타입으로 가져오면 된다.

Db 이미지 저장 - db imiji jeojang

데이터베이스에 이미지 저장하기

Db 이미지 저장 - db imiji jeojang

데이터베이스에서 이미지 가져오기

BLOB 형식으로 데이터베이스에서 가져온 다음 바이트 어레이 형식으로 변환하고  ouputstream에서 바이트 어레이 데이터를 넣어서 이미지를 생성한다. 

정리

Disc apporach Database approach
save images on disc save images in database
Image size is not small Image size is small
setString(FILE_PATH) setBinaryStream( )
much faster slow performance
multiple database share only one database uses

윤관희

unread,

Nov 8, 2001, 4:44:17 PM11/8/01

to

이미지를 DB에 저장하려면 어떻게 하죠?
반대로 DB에 저장되어 있는 이미지를 웹에서 보여주려면 어떻게 하죠?
DB는 SQL Server 2000입니다.

blue

unread,

Nov 12, 2001, 12:01:30 PM11/12/01

to

꼭 DB에 이미지를 저장해야 하는지요 ?
저도 그 방법을 찾아 보았지만, 그리 권장할만한 일이 아니어서 포기 했습니다.

왜냐면 이미지는 이외로(?) 양이 많은 관계로 DB에 부하를 많이 주는것으로
알고 있습니다.

그래서 많은 분들이 DB에 이미지를 저장하는 것보다는
이미지는 서버에 저장한 다음 이미지경로를 DB에 저장하는 방법을 사용하고
있습니다.

즉....
이미지를 서버에 올리고..... C:\Inetbup\wwwroot\website\image 에 이미지를
올린 후
DB에는 그 경로를 ..... http://IP or Website Name/image/image.gif
등을 사용합니다.

DB에 이미지를 넣는것 보다 이방법이 사용하시기 쉬울것 같은데........
꼭 DB에 넣어야 한다면....... 어쩔 수 없네요.....


"윤관희" <> wrote in message
news:eaedrhBaBHA.2068@tkmsftngp02...

미친병아리 (madchick)

unread,

Nov 13, 2001, 2:57:45 AM11/13/01

to

제가 알기로는 ASP에서 직접 BLOB 필드를 인서트 하고
Select 해오기는 불가능한 것으로 아는데요..

가능하다면.. 무지한 제게 방법을 알려주세요..

제가 알고 있는 방법이라고는 ASP 서버 컴포넌트를 만들어서
처리하는 것인데..

블루님이 답변 올려두신 것 처럼..
웹페이지와의 연동을 위해서라면..
파일시스템으로 업로드 시키고 경로만 DB에 저장하는것이
가장 바람직한 방법이라고 생각됩니다..

굳이 웹 연동뿐만이 아니라
반드시 이미지가 DB에 저장되어야 하는 경우가 아니라면..
(이런 경우가 있는지는 잘 모르겠군요..
제 경험상으로는 없어서리..)
모든 DB 어플리케이션 개발에서 일반적으로
이렇게 하는 것으로 알고 있습니다..

BLOB 필드는 DB에 부하를 아무래도 좀 더 줄테니까요..

기람..

미친병아리 서비였네용.. 삐약~ !!


, http://www.madchick.com

DaulSoft Co., Ltd. 02-529-4722, 02-529-4723(FAX)
, http://www.daulsoft.com
Seohan Bldg #203, Dogok-dong 943-2, Kangnam-gu, Seoul, Korea 135-270

http://www.neotest.com - Something beyond On-Line testing

Industrial Engineering Dept. of Dankook Univ.
,
,
;

미친병아리의 프로그래머 이야기..
http://www.emag21.com/home/?magid=20000522000935

KISS~ !! (Keep It Small and Simple)
Let's share all information we have.


"blue" <> wrote in message
news:OR4laUxaBHA.1540@tkmsftngp04...

Alripica

unread,

Nov 14, 2001, 12:03:11 AM11/14/01

to

"미친병아리 (madchick)" <> wrote in message
news:usilLQ5aBHA.2008@tkmsftngp04...

>
> 제가 알기로는 ASP에서 직접 BLOB 필드를 인서트 하고
> Select 해오기는 불가능한 것으로 아는데요..
>

저도 binary를 데이터베이스에 저장해본적이 없어서 모르겠지만.. ^^;
우선 가져오기는 됩니다. MS KB에 많은 예가 있으니 참고하시면 되겠네요..
SQL SELECT 문으로도 되고, ADO의 GetChunk 메서드를 사용한 예도 있습니다.

데이터베이스에 binary를 저장...
이건 잘모르겠습니다만, ASP 페이지내에서 써비(?)님의 말씀이 거의(?) 맞는듯
합니다. ^^;
MS KB에 보면 AppedChunk에 대한 기사가 있는데 내용은 컴포넌트를 쓰라고
하네요..
http://support.microsoft.com/support/kb/articles/Q200/2/61.ASP

[...]

이하 전적으로 다른 모든 분의 의견에 동의합니다. ^^;

>
>
> 블루님이 답변 올려두신 것 처럼..
> 웹페이지와의 연동을 위해서라면..
> 파일시스템으로 업로드 시키고 경로만 DB에 저장하는것이
> 가장 바람직한 방법이라고 생각됩니다..
>
> 굳이 웹 연동뿐만이 아니라
> 반드시 이미지가 DB에 저장되어야 하는 경우가 아니라면..
> (이런 경우가 있는지는 잘 모르겠군요..
> 제 경험상으로는 없어서리..)
> 모든 DB 어플리케이션 개발에서 일반적으로
> 이렇게 하는 것으로 알고 있습니다..
>
>
>
> BLOB 필드는 DB에 부하를 아무래도 좀 더 줄테니까요..
>

[...]