리얼엠에 대해서 ①

6606 단어 RealmRealmSwift
비망록
개시하다
Realm을 배우기 위해 쓰고 전제로 iOS를 사용해 대화를 나눈다.
※ 참조이 책와 각 웹사이트를 통해 학습.
원래 데이터베이스(DB)는?色んなデータを格納しているデータの集合体 .
기본적으로 응용 프로그램이 완전히 끝나면 데이터는 데이터 저장소에서 사라진다.
예를 들어 TODO 애플리케이션을 통해 응용 프로그램 시작에 추가된 작업을 DB에 저장함으로써 アプリ内にタスクというデータを保存する事が可能 된다.
또 DB에도 과거 저장된 임무効率よく検索できる機能가 갖춰져 있다.
iOS에서 준비된 저장 방법
・UserDefaults
키와 저장할 값 쌍은 간단하게 응용 프로그램에서 지속될 수 있습니다 キーバリュー型のDB.
plist 형식(XML 파일)으로 저장합니다.
.plist는 무엇입니까?
코드로 쓰면 이런 느낌↓
import Foundation

// キーバリュー型のDB
let userDefaults = UserDefaults.standard

// キーと値
var key = "hogeKey"
var text = "hoge"

// 保存
userDefaults.set(text, forKey: key)

// 取得
var savedText = userDefaults.string(forKey: key) ?? ""

// 削除
userDefaults.removeObject(forKey: key)
○ 장점
  • 다양한 유형의 API를 저장하고 가져올 수 있도록 준비
  • 순수한 프레임이라 쉽게 사용할 수 있음
  • 낮은 학습 비용
  • ○ 단점
  • 자신이 준비한 금형은 보관할 수 없지만 약간의 노력이 필요하다
  • 사용 시 모든 데이터를 스토리지에 배치해야 하며, 데이터를 대량으로 저장하면 스토리지의 부담이 크기 때문에 대량의 데이터 저장에 적합하지 않다
  • 검색 기능 없음
  • ・SQLite
    애플리케이션에 사용하기 위해 제작된 DB는 매우 가볍습니다.
    상세히 말하면 SQLite는RDBMS(リレーショナルDB管理システム)の一つ, 사용SQL(DB言語)으로 조작된다.
    ○ 장점
  • 다양한 검색 기능을 갖춘 고속 동작
  • 오픈 소스
  • 다른 DB에서도 사용할 수 있는 SQL
  • ○ 단점
  • SQL을 쓰지 않으면 작동할 수 없음
  • 비동기식 또는 동시 쓰기 작업을 위해 직접 제어 및 관리해야 함
  • ※ 이른바 DBMS(DB관리시스템)
    현실에 비유하면 DB는 도서관, DBMS는 그곳에서 일하는 직원, SQL은 일본어와 영어 등이다.
    직원에게 "이 책을 추가하고 싶다"고 부탁하면 "이 책은 어디 있나요?"이렇게 말하면 자기가 찾는 것보다 더 효율적으로 읽고 싶은 책을 찾을 수 있다.
    다음 사이트를 참조하면 DB는 データベースファイル(データが書き込まれているファイル) + DBMS 2개로 구성되며, 이 데이터베이스 파일에 데이터를 쓰거나 읽는 것은 DBMS↓이다
    DB와 DBMS(DB 관리 시스템)의 차이점
    ※ RDBMS(관계DB관리시스템)는
    DBMS는 계층형과 네트워크형 등 다양한 형태가 있는데 그 중에서 주류는関係(リレーショナル)型이다.
    큰 특징으로 表(テーブル),行(レコード),列(カラム)로 구성되어 있다.・表(テーブル)여러 개의 데이터를 수용하는 곳.
    ・行(レコード)데이터 한 부.
    ・列(カラム)데이터를 구성하는 각 항목.

    이른바 리얼m
    모바일 설계를 위한 DB.
    가장 큰 특징은 Swiftのクラスが、Realmでのテーブル定義인데 이 유형에서 리얼m 특유의Objectクラス를 계승함으로써 리얼m의 표가 된다는 것이다.
    import RealmSwift
    
    // Realmのテーブル定義
    class Hoge: Object {
      // DBで扱いたい値をプロパティで定義する
      @objc dynamic var hoge: String = "hogehoge"
      @objc dynamic var fuga: Bool = false
    }
    
    SQLite에서는 SQL 정의표를 사용해야 하고 Swift의 대상으로 처리하는 클래스를 정의해야 한다.
    하지만 리얼엠에서 스위프트로 반을 만들면 테이블이다.
    ○ 장점
    /SQLite 및 순수한 Core Data보다 빠른 속도 그런 것 같아요.
    클래스 정의는 테이블로 직접 정의
    • 자신의 금형을 간단하게 보존할 수 있다
    ・주 키워드 지정 가능
    ○ 단점
    ・자동 증가 설정 불가
    데이터를 가져오는 상한선을 설정하지 않은 limit
    ※ 주 키워드는テーブル内でレコードを一意(重複しない)に識別することができるように指定される項目(カラム) .
    현실에 비유하자면 어느 학교의 한 반은 책상이고 학생들은 음반 출석 번호가 주요하다.
    인상은 이런느낌↓

    출석번호, 이름, 성별 세 항목이 열거되어 있다.
    모든 주요 열쇠가 다 할 수 있는 것은 아니다. 반드시 다음과 같은 두 가지 조건을 만족시켜야 한다.
    1. 一意になっていること2. nil(空)ではないこと위 열은 주 키워드로 지정할 수 있습니다.
    아까 테이블에서'출석번호'는 유일하고, 학생이 있으면 반드시 번호를 분배하기 때문에 메인 키에 적용된다.
    ※ 자동 증가는
    데이터가 지정한 열에 추가되었을 때 自動的に1ずつ値を付与してくれる機能.
    기본적으로 자동 증가는 주 키워드와 함께 사용된다.
    끝말
    ② Realm의 읽기, 쓰기, 삭제 등을 총괄하고 싶다.
    그리고 이사 같은 거.
    만약 무슨 잘못이나 의문이 있으면 메시지를 남겨 주세요. 감사합니다.

    좋은 웹페이지 즐겨찾기