References
Difference between Hierarchical, Network and Relational Data Model - GeeksforGeeks
[DBMS] 데이터베이스(Database) 종류와 장/단점 (계층형/네트워크형/SQL/NoSQL)
[DB] 데이터베이스(Database)의 종류
References
SQL - 위키백과, 우리 모두의 백과사전
[MySQL] DB vs DBMS
CoreData: 데이터를 사용하려면 반드시 메모리에 적재가 되어야하므로 메모리에 로딩하는 과정이 비동기임!
장점
스키마의 생성이 쉽고 시각적으로 보여서 편하다?
App의 용량 등에 있어서 추가적인 영향이 없다.
데이터의 변동을 Undo, Redo할 수 있다.
백그라운드에서 datatask를 진행하여 결과를 저장하거나 캐시할 수 있다.
View의 Datasource와 데이터를 동기화할 수 있다.
데이터 모델의 버전을 관리하고, 앱이 발전함에 따라 사용자 데이터를 migration하는 매커니즘 → 장점인가?
Core Data Model Versioning and Data Migration
iOS) CoreData - Migration
CloudKit을 사용해 다른 기기들과 연동가능하다
암호화를 할 수도 있다. → addPersistentStore(ofType:configurationName:at:options:)
여러가지 DBMS를 사용할 수 있다.
단점
어렵다. API에 대한 깊은 이해가 필요하다.
ManagedObjectContext
의 객체들을 변동이 있을 때마다 저장시켜줘야함
Apple만을 위한 것이다
메모리에 로딩된 객체에 대해서만 수정 가능하다.
멀티스레드 환경을 위해 디자인되었지만, 모든 object가 thread-safe하지는 않다.
Managed object contexts are bound to the thread (queue) that they are associated with upon initialization.
Managed objects retrieved from a context are bound to the same queue that the context is bound to.
구조를 알아야 이해할 수 있을 듯
Apple Developer Documentation (Using CoreData in the background)
스레드끼리 Lock기능이 존재하지 않음
References
CoreData vs Realm: What to Choose as a Database for iOS Apps | Agilie app development company blog
Migration: 기존의 칸을 수정하거나, 생기는 등의 변경이 생겨서 기존의 DB를 최신 양식에 맞춰서 업데이트
NSInmemoryStoreType: In-memory에서 끝난다. → 얘는 영구 저장소가 아님!!
NSBinaryStoreType : 최소 디스크 공간 차지, 저장소 유형 중 가장 빠르게 로드
NSXMLStoreType: iOS 환경에서 사용할 수 없다.
NSSQLiteStoreType: 기본으로 저장되는 타입
Persistent Store Types and Behaviors
Object Relational Mapping
[DB] ORM이란 - Heee's Development Blog
References
Why core data is not an ORM
Framework
로 설계되었다.References
사실 상 대체불가..
Realm
SQLite
References
iOS Database Comparison. What are the differences?
iOS의 데이터베이스 비교 (SQLite, Core Data, Realm)
iOS. 에서 사용할수 있는 데이터베이스 비교하기