Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

헬퍼 클래스가 어떤 클래스이고 스키마는 어떤 것인가 #16

Open
fkrdlaos opened this issue Nov 13, 2023 · 1 comment
Assignees

Comments

@fkrdlaos
Copy link
Collaborator

문제

  1. 헬퍼 클래스가 어떤 클래스일까?
  2. 스키마는 어떤 것인가?

선정 배경

저희 프로젝트에서 데이터 베이스를 많이 사용하는데 이때 헬퍼 클래스가 가장 많이 사용되어서 이렇게 중요하다고 생각하여 선정하게 되었습니다.

@fkrdlaos
Copy link
Collaborator Author

헬퍼(Helper)클래스

데이터베이스를 만드는 것 외에도 테이블의 정의가 바꿔어서 스키마(Schema)를 업그레이드 할 필요가 있을때 사용하는 클래스

스키마(Schema)

  • 데이터 베이스의 구조와 제약 조건에 관해 전반적인 명세를 기술한 것

    • 속성(Attribute), 개체(Entity), 관계 (Relation), 제약 조건들을 기술함
  • 테이블의 구조는 필요에 따라 바꿜 수 있음

  • 테이블 안에 사용자가 저장한 데이터가 있는 경우, 그 데이터가 삭제되거나 수정되어야 할수 있음
    -스키마를 수정할때는 테이블이 이미 사용되고 있는 상태인지 구별한 뒤에 처리해야 함

헬퍼 클래스를 사용하기 위해서는 SQLiteOPenHelper클래스를 사용해야 함

SQLiteOPenHelper 클래스-데이터베이스를 만들거나 열기 위해 필요한 작업들을 도와주는 역할

public SQLiteOPenHelper (Context context, String name, SQLiteDatabase.CursorFactory factory, int version)

  • 첫번째 파라미터 (Context context): 액티비디 안에서 만들 경우 this로 지정 할 수 있음
  • 두번째 파라미터 (String name):데이터 베이스의 이름
  • 세번째 파라미터 (factory): 데이터 조회 시 반환하는 커서를 만들어 낸 CursorFactory 객체
  • 네번째 파라미터 (int version): 데이터 베이스 업그레이드를 위해 사용하며 기존에 생성되어 있는 데이터베이스 버전 정보와 다르게 지정하여 데이터베이스의 스키마나 데이터를 바꿀수 있음

SQLiteOPenHelper 객체는 데이터 베이스를 만들거나 열기 위해 필요한 작업을 도와주는 역할을 하지만, 해당 객체를 만든다고 해서 데이터베이스 파일이 바로 만들어지는 것은 아님!

파일 생성을 위해서는 getReabableDatabase()또는getWritableDatabase()메서드를 호출해야 함

->이 클래스의 장점은 데이터베이스가 만들어지거나 업그레이드 할 때 콜백메서드가 호출됨

->데이터베이스 생성, 업그레이드 등 여러가지 상태에 따라 콜백 메서드를 다시 정의하면 각각의 상태에 맞게 처리할 수 있음

@fkrdlaos fkrdlaos self-assigned this Nov 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant