database design 2반 5조 발표자료

16
Micro Blog Database 중앙대학교 컴퓨터공학부 데이터베이스 설계 5조 Tumblr(텀블러) 사이트에 대한 데이터베이스 분석 - 중간제출 장익환(20060957) 유혜성(20091509) 강수현(20110483) 황정윤(20114509)

Upload: ikwhan-chang

Post on 02-Jul-2015

482 views

Category:

Documents


3 download

DESCRIPTION

중앙대학교 컴퓨터공학부 데이터베이스 설계 2반 5조 발표자료 Presentation by Matthew.J

TRANSCRIPT

Page 1: Database Design 2반 5조 발표자료

Micro Blog Database중앙대학교 컴퓨터공학부 데이터베이스 설계 5조Tumblr(텀블러) 사이트에 대한 데이터베이스 분석 - 중간제출장익환(20060957) 유혜성(20091509) 강수현(20110483) 황정윤(20114509)

Page 2: Database Design 2반 5조 발표자료

2INDEX

• 응용 분야

• 참조 사이트

• 응용의 기능

• 질의 리스트

Page 3: Database Design 2반 5조 발표자료

3응용 분야• 우리팀은 웹 서비스 중 “블로그”를 응용 분야의 한 주제로 선정하였다.

• 네이버 블로그, 티스토리, 이글루스 등 수 많은 블로그 플랫폼 중에 이러한 방대한 기능을

배제하고, 기본적인 블로그의 기능인 “포스팅” 기능을 세분화하여 여기에 추가적으로 소셜

네트워크 기능(SNS)을 제공하는 응용 분야를 생각하였다.

• 따라서, 본 응용분야는 기본적인 사용자 처리(회원가입,로그인 등)의 기능과 블로깅(글, 그

림, 오디오, 비디오) 기능, 그리고 추가적으로 SNS기능의 일부인 친구관리 및 타임라인 기

능을 처리하게 된다.

Page 4: Database Design 2반 5조 발표자료

참조 사이트

텀블러(tumblr)는 사용자들이 문자, 그림,

영상, 링크, 인용, 소리를 그들의 조그마한

텀블로그에 게재할 수 있게 도와 주는 마이

크로블로그 플랫폼이자 웹사이트이다.

! 사용자들은 다른 사용자를 팔로우(follow)

할 수 있고, 또 이들의 텀블로그를 개인의

것으로 만들 수 있다. 이 서비스는 이용성을

강조하고 있다.

www.tumblr.com

Page 5: Database Design 2반 5조 발표자료

5자•텀블러 응용 기능

텀블러 DB

회원 관리(Users)

포스팅 기능(Posts) SNS 기능(connections)

친구 관리

타임 라인

글 쓰기, 수정, 삭제

글/사진/비디오/오디오 …

Page 6: Database Design 2반 5조 발표자료

5질의 리스트•사용자 테이블 생성

CREATE TABLE 회원 ( 아이디 VARCHAR(20) NOT NULL, 비밀번호 VARCHAR(20) NOT NULL, 이메일 VARCHAR(100) NOT NULL, 이름 VARCHAR(20) NOT NULL, 가입일자 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 사용자사진URL VARCHAR(100) NOT NULL, 사용자상태 INT(1) NOT NULL DEFAULT 1, PRIMARY KEY(‘아이디’) UNIQUE KEY ‘회원’ (‘아이디’,’이메일’));

✴위의 테이블은 예시이며, 최종 결과물 제출시 변경될 수 있음.

Page 7: Database Design 2반 5조 발표자료

5질의 리스트•사용자 추가

INSERT INTO 회원(아이디,비밀번호,이메일,이름) VALUES(‘izie’,password(‘1231’), ‘[email protected]’,’장익환’);

✴ password() 함수는 MySQL의 비밀번호 해싱 함수.

Page 8: Database Design 2반 5조 발표자료

5질의 리스트•사용자 수정

UPDATE 회원 SET 비밀번호=password(‘4321’) WHERE 이메일=‘[email protected]

✴ password() 함수는 MySQL의 비밀번호 해싱 함수. ✴ 텀블러의 경우 email 이 primary_key 이며, 사용자는 본 이메일 주소를 통해 비밀번호를 수정할 수 있으므로 이를 통해 사용자 구분을 하게 됨.

Page 9: Database Design 2반 5조 발표자료

5록•사용자 탈퇴

UPDATE 회원 SET 상태=0 WHERE 이메일=‘[email protected]

✴웹서비스의 경우, 재가입을 대비해서 유저 데이터를 완전히 삭제하지 않는다. 따라서, 사용자의 상태를 나타내는 status 를 0으로 업데이트 함으로써 사용자 탈퇴를 처리할 수 있다.

Page 10: Database Design 2반 5조 발표자료

5질의 리스트•사용자 삭제

DELETE 회원 WHERE 이메일=‘[email protected]

✴사용자 삭제의 경우 관리자의 실수나 데이터의 꼬임 등에 의한 에러용으로, DBA만 처리 가능하다.

Page 11: Database Design 2반 5조 발표자료

5질의 리스트•포스팅 테이블 생성

CREATE TABLE 포스팅 ( 포스팅번호 INT(11) NOT NULL, 사용자ID VARCHAR(20) NOT NULL, 제목 VARCHAR(100) NOT NULL, 내용 TEXT NOT NULL, 포스팅타입 INT(11) NOT NULL, // 1:텍스트 2:이미지 3:오디오 4:동영상 등록일자 DATE NOT NULL, 수정일자 DATE, 조회수 INT(11) NOT NULL DEFAULT 1, 사용자IP VARCHAR(20), PRIMARY KEY(‘포스팅번호’) KEY ‘포스팅’ (‘포스팅번호’,’사용자ID’)

✴위 테이블은 예시이며, 최종 제출시 변경될 수 있음.

Page 12: Database Design 2반 5조 발표자료

5질의 리스트•포스팅 등록

INSERT INTO 포스팅(사용자ID,제목,내용,포스팅타입,등록일자,사용자IP) VALUES(‘izie’,’내가오늘한일’, ‘오늘 나는 과제를 했다.<br/>그리고 또 과제를 했다…<br/>’,1,now(),’1.209.21.1’);

✴ 내용의 경우 블로그 서비스의 특성상 HTML 테그로 들어가게 된다. ✴ now() 는 현재 시간을 불러오는 MySQL의 함수이다.

Page 13: Database Design 2반 5조 발표자료

5록•특정 회원의 가장 조회수가 높은 포스팅

SELECT MAX(조회수) AS MAX_HITFROM 포스팅 WHERE사용자ID=(SELECT 사용자ID FROM 회원 WHERE 이메일=‘[email protected]’)

✴ 텀블러 서비스의 경우 email로 회원을 구분하므로, 이메일을 통해 사용자 ID를 가져오게 된다.

Page 14: Database Design 2반 5조 발표자료

5질의 리스트•특정 회원의 작성일자별 포스팅 등록 횟수

SELECT 작성일자,COUNT(*) AS 등록 횟수FROM 포스팅 WHERE사용자ID=(SELECT 사용자ID FROM 회원 WHERE 이메일=‘[email protected]’)GROUP BY 작성일자

✴ 텀블러 서비스의 경우 email로 회원을 구분하므로, 이메일을 통해 사용자 ID를 가져오게 된다.

Page 15: Database Design 2반 5조 발표자료

5질의 리스트•특정 일자의 각 회원별 포스팅 등록회수

SELECT 사용자ID,COUNT(*) AS 등록횟수FROM 포스팅 WHERE등록일자=‘2013-11-13’GROUP BY 사용자ID

✴ 텀블러 서비스의 경우 email로 회원을 구분하므로, 이메일을 통해 사용자 ID를 가져오게 된다.

Page 16: Database Design 2반 5조 발표자료

thanks!

www.matthewlab.com

최종제출 PT에서는 더 폭넓은 설계를 통해 ERD를 설계하여 완성하도록 하겠습니다.