🌟 ⭐ 별다방⭐ 🌟
별별 영화 다 봐!
2021년 1학기 데이터베이스
수업 팀 프로젝트 결과물
🎬 프로젝트 소개
- 영화 정보 검색 앱 제작
영화정보를 관리(영화 제목, 장르, 출연 배우, 영화 줄거리, 개봉 날짜, 국가, 평점 등), 또는 콘서트(연극, 뮤지컬) 정보 관리(제목, 작품 설명, 위치, 공연 시간, 출연 배우 또는 가수, 평가 등)
👭 팀원 소개
💻 사용 기술
- IDE:
Intellij
- Language:
Java
with Swing, AWT - Database:
MySQL
with JDBC
💥 별다방의 강점
- 사용자 친화적인 화면과 index, view를 이용한 빠른 검색 기능을 제공합니다.
- 평점을 기준으로 영화를 정렬하여, 사용자가 영화를 선택하기 편리하게 합니다.
- 해당 사용자가 쓴 리뷰를 모아볼 수 있고, 해당 화면에서 리뷰를 수정하거나 삭제할 수 있어 사용자에게 편리함을 제공합니다.
- 로그인, 회원가입 기능을 구현하여 실제 서비스와 최대한 비슷하게 구현했습니다.
- 상세 정보에서 더 궁금한 영화, 배우, 감독의 이름을 클릭하면 그와 관련된 상세 화면으로 바로 이동하여 사용자가 편하게 정보를 탐색할 수 있도록 했습니다.
- 검색 시 정확히 일치하는 검색어 뿐 아니라 그 검색어를 포함하는 영화들을 모두 확인할 수 있습니다.
✏️ ER 다이어그램
💎 화면 및 기능
회원가입
- 첫 화면인 로그인, 회원가입과 관련 팝업들
로그인
- 로그인 후 메인화면(영화 순위, 검색, 리뷰, 마이페이지, 로그아웃)
영화 랭킹, 상세 화면
- 영화 순위(평점 순 영화 TOP10, 영화 상세 페이지 이동)
영화 검색
- 영화 검색 실패 시 화면
- 영화 검색 성공 시 화면
리뷰 작성
- 영화 리뷰 작성(영화, 평점, 후기), 내 리뷰 모아보기
유저 정보&나의 리뷰
- 마이페이지(내 정보 보기, 내가 쓴 리뷰 보기, 삭제, 수정)
- 리뷰 수정하기
- 리뷰 삭제하기
📝 프로젝트 요구사항
- 프로젝트 요구사항은 아래와 같았습니다.
- 5개 이상의 테이블을 가지고 있어야 하고 각 테이블들의 컬럼(Attribute)의 수를 합하면 20개 이상이어야 한다.
- 초기화를 위해 적어도 30개의 레코드(투플)를 가지고 있어야 한다. (모든 테이블들의 레코드 수의 총합이 30개 이상)
- 기본 키(primary key), 외래 키(foreign key), not null 제약조건(not null constraints)를 포함해야 한다
- 적어도 2개의 뷰를 정의해야 한다. (레포트에 view를 사용한 이유를 설명)
- 모든 테이블과 뷰의 이름들은 “DB2021_”라는 접두어를 가지고 있어야 한다. 예) DB2021_CONCERTINFO
- 적어도 4개의 인덱스를 정의해야 한다.
- 인덱스를 사용하는 쿼리들을 포함해야 한다.
- 뷰를 사용하는 쿼리를 포함해야 한다.
- 트랜잭션(transaction)을 포함해야 한다.
- 중첩된 쿼리(nested query)들을 가지는 쿼리들을 포함해야 한다.
- 조인 쿼리(join query)들을 가지는 쿼리들은 포함해야 한다.
- 매개 변수를 가지면서 동적으로 만드는 쿼리를 포함해야 한다. 다시 말해, 사용자로부터 입력 값을 받고 사용자가 입력한 값으로 쿼리를 생성한다.
- 그래픽 또는 문자 기반의 사용자 인터페이스를 사용해야 한다. 사용하기 쉽고 사용하기에 도움이 되는 정보를 가지고 있는 메뉴를 제공해야 한다.
- 데이터베이스에 삽입(insert)을 하기 위한 인터페이스와 쿼리를 가지고 있어야 한다.
- 데이터베이스에 갱신(update)을 하기 위한 인터페이스와 쿼리를 가지고 있어야 한다.
- 데이터베이스에 삭제(delete)를 하기 위한 인터페이스와 쿼리를 가지고 있어야 한다.
- 데이터베이스에 검색(select)을 하기 위한 인터페이스와 쿼리를 가지고 있어야 한다.