/Database_TeamProject

데이터베이스 팀 프로젝트

Primary LanguageJava

🌟별다방🌟

별별 영화 다 봐!

2021년 1학기 데이터베이스 수업 팀 프로젝트 결과물

🎬프로젝트 소개

  • 영화 정보 검색 앱 제작

영화정보를 관리(영화 제목, 장르, 출연 배우, 영화 줄거리, 개봉 날짜, 국가, 평점 등), 또는 콘서트(연극, 뮤지컬) 정보 관리(제목, 작품 설명, 위치, 공연 시간, 출연 배우 또는 가수, 평가 등)

👭팀원 소개

💻사용 기술

  • IDE: Intellij
  • Language: Java with Swing, AWT
  • Database: MySQL with JDBC

💥별다방의 강점

  • 사용자 친화적인 화면과 index, view를 이용한 빠른 검색 기능을 제공합니다.
  • 평점을 기준으로 영화를 정렬하여, 사용자가 영화를 선택하기 편리하게 합니다.
  • 해당 사용자가 쓴 리뷰를 모아볼 수 있고, 해당 화면에서 리뷰를 수정하거나 삭제할 수 있어 사용자에게 편리함을 제공합니다.
  • 로그인, 회원가입 기능을 구현하여 실제 서비스와 최대한 비슷하게 구현했습니다.
  • 상세 정보에서 더 궁금한 영화, 배우, 감독의 이름을 클릭하면 그와 관련된 상세 화면으로 바로 이동하여 사용자가 편하게 정보를 탐색할 수 있도록 했습니다.
  • 검색 시 정확히 일치하는 검색어 뿐 아니라 그 검색어를 포함하는 영화들을 모두 확인할 수 있습니다.

✏️ER 다이어그램

  • 스키마 다이어그램을 그린 후 수정 사항이 발견되어 새로 그린 버전
    1

💎화면 및 기능

회원가입

  • 첫 화면인 로그인, 회원가입과 관련 팝업들

2

로그인

  • 로그인 후 메인화면(영화 순위, 검색, 리뷰, 마이페이지, 로그아웃)

3

영화 랭킹, 상세 화면

  • 영화 순위(평점 순 영화 TOP10, 영화 상세 페이지 이동)

4

영화 검색

  • 영화 검색 실패 시 화면

5

  • 영화 검색 성공 시 화면

6

리뷰 작성

  • 영화 리뷰 작성(영화, 평점, 후기), 내 리뷰 모아보기

7

유저 정보&나의 리뷰

  • 마이페이지(내 정보 보기, 내가 쓴 리뷰 보기, 삭제, 수정)

8

  • 리뷰 수정하기

9

  • 리뷰 삭제하기

10

📝프로젝트 요구사항

  • 프로젝트 요구사항은 아래와 같았습니다.
  1. 5개 이상의 테이블을 가지고 있어야 하고 각 테이블들의 컬럼(Attribute)의 수를 합하면 20개 이상이어야 한다.
  2. 초기화를 위해 적어도 30개의 레코드(투플)를 가지고 있어야 한다. (모든 테이블들의 레코드 수의 총합이 30개 이상)
  3. 기본 키(primary key), 외래 키(foreign key), not null 제약조건(not null constraints)를 포함해야 한다
  4. 적어도 2개의 뷰를 정의해야 한다. (레포트에 view를 사용한 이유를 설명)
  5. 모든 테이블과 뷰의 이름들은 “DB2021_”라는 접두어를 가지고 있어야 한다. 예) DB2021_CONCERTINFO
  6. 적어도 4개의 인덱스를 정의해야 한다.
  7. 인덱스를 사용하는 쿼리들을 포함해야 한다.
  8. 뷰를 사용하는 쿼리를 포함해야 한다.
  9. 트랜잭션(transaction)을 포함해야 한다.
  10. 중첩된 쿼리(nested query)들을 가지는 쿼리들을 포함해야 한다.
  11. 조인 쿼리(join query)들을 가지는 쿼리들은 포함해야 한다.
  12. 매개 변수를 가지면서 동적으로 만드는 쿼리를 포함해야 한다. 다시 말해, 사용자로부터 입력 값을 받고 사용자가 입력한 값으로 쿼리를 생성한다.
  13. 그래픽 또는 문자 기반의 사용자 인터페이스를 사용해야 한다. 사용하기 쉽고 사용하기에 도움이 되는 정보를 가지고 있는 메뉴를 제공해야 한다.
  14. 데이터베이스에 삽입(insert)을 하기 위한 인터페이스와 쿼리를 가지고 있어야 한다.
  15. 데이터베이스에 갱신(update)을 하기 위한 인터페이스와 쿼리를 가지고 있어야 한다.
  16. 데이터베이스에 삭제(delete)를 하기 위한 인터페이스와 쿼리를 가지고 있어야 한다.
  17. 데이터베이스에 검색(select)을 하기 위한 인터페이스와 쿼리를 가지고 있어야 한다.