데이터베이스의 종류와 iOS에서 주로 사용되는 데이터베이스Life style/TIL2024. 5. 19. 14:45
Table of Contents
데이터베이스는 크게 2가지로 나눌 수 있다.
- 관계형 데이터베이스
- 비관계형 데이터베이스
관계형 데이터베이스(RDBMS)
데이터를 행과 열로 구성된 2차원 테이블 형태로 저장된다.
SQL을 사용하여 데이터를 조작한다.
비관계형 데이터베이스(NoSQL)
키-값으로 데이터를 저장한다.
JSON 등의 문서 형태로 데이터를 저장한다.
iOS에서 사용되는 SQLite, Core Data, Realm 등의 특징과 사용 사례
Core Data는 관계형 데이터베이스와 객체 지향 프로그래밍을 결합한 것으로 객체-관계 맵핑된다.
Entity, Attribute, Relationship로 정의된 스키마로 저장되어 SQL와 유사하게 데이터를 쿼리할 수 있다.
데이터는 SQLite 데이터베이스에 저장된다.
Swift Data에서는 Core Data와 같이 Swift 코드가 아닌 파일과 도구를 사용하는 것이 아닌 Swift를 사용하여 Model과 Relation을 관리할 수 있다. 또한, SwiftUI와 연계되기 쉽도록 만들어졌다.
관계형 데이터베이스 ACID 특성과 트랜잭션의 개념
Transaction은 데이터베이스 관리 시스템(DBMS)에서 하나의 작업 단위로 실행되는 일련의 연산들을 의미한다.
또한, ACID를 만족해야 한다.
- Atomicity(원자성)
: Transaction의 작업은 완전히 실행되거나 실행되지 않아야 한다. 부분적으로 실행되어서 안된다. - Consistency(일관성)
: Transaction 성공적으로 완료되면 일관된 상태를 유지해야 한다. 데이터베이스의 무결성 제약 조건 - Isolation(고립성)
: 동시에 실행되는 Transaction이 서로 영향을 미치지 않고 독립적으로 실행되어야 한다 - Durability(지속성)
: 성공적으로 완료되면 영구적으로 데이터베이스에 반영되어야 한다.
iOS에서 데이터베이스 스키마 버전 관리와 마이그레이션을 처리하는 방법
앱을 시작할 때 데이터베이스 스키마 버전을 확인하여 앱에 포함된 스키마 버전을 확인한다.
다르다면 마이그레이션을 해야 한다.
변경된 부분을 추적하여 자동으로 마이그레이션 하거나 맵핑을 통해서 어떻게 변환할지 정할 수도 있다.
'Life style > TIL' 카테고리의 다른 글
Swift에서 Optional이란? (1) | 2024.06.04 |
---|---|
iOS에서 자동 참조 카운팅(ARC)과 가비지 컬렉션(Garbage Collection)의 차이점 (0) | 2024.05.31 |
iOS 앱의 메모리 사용량 최적화를 위한 방안과 고려 사항 (0) | 2024.05.19 |
가상 메모리의 개념과 동작 원리 (0) | 2024.05.13 |
렌더링 속도의 향상을 위한 MIP maps: 밉맵 (0) | 2024.05.13 |
@jaewpark :: 코스모스, 봄보다는 늦을지언정 가을에 피어나다
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!