티스토리 뷰

TIL

[TIL] 2022 / 08 / 22

희철 2022. 8. 23. 02:18

RDBMS

 

 

DB

 

-> 데이터를 저장한 파일들의 집합체

 

DBMS

 

-> DB를 관리하는 소프트웨어

 

RDBMS

 

-> 관계형 데이터베이스를 관리하는 소프트웨어

-> 테이블 형태로 데이터 저장

 

 

구조

 

 

Schema

 

-> 데이터베이스의 구조와 데이터들이 갖는 제약 조건에 관해 전반적 명세를 기술한 것

    데이터의 집합인 테이블들이 모여서 스키마를 이루는 것 같음

 

Table

 

-> Row, Column으로 이루어진 데이터 집합

 

Column

 

-> 테이블에서 세로로 묶은 데이턴데, 데이터 타입을 지정할 수 있음.

 

Record

 

-> 한 객체에 대한 정보를 갖고있는 데이터. 즉, 하나의 데이터를 의미하는 듯.

 

 

 

Table의 제약 조건

 

 

Primary Key

 

-> 테이블에 한 개만 생성가능한 테이블 고유 식별 값.

-> 데이터가 중복될 수 없고, 빈 값(nil)일 수도 없음.

 

 

Foreign Key

 

-> 다른 테이블의 PK를 의미하는데, 서로 참조할때 사용하는 듯.

 

 

Unique Key

 

-> 중복을 막기 위해 column에 설정한 제약.(nil 가능)

 

 

 

Realm

 

 

모델 설계

 

Primary Key설정

 

 

위의 사진에서 볼 수 있음.

 

UUID, ObjectID처럼 자동으로 만들어지는 값으로도 만들 수 있고, 별도로 선언 가능.

 

별도로 선언한 경우

 

 

Realm파일에 접근하는 상수 선언

 

데이터 저장

try 사용

 

 

데이터 읽기

 

 

아래처럼 그때그때 형식에 맞게 선언하면됨.

 

 

Realm Studio

 

 

프로그램을 다운받으면 만든 테이블을 직접 확인할 수 있음.

 

아래처럼 localRealm.configuration.fileURL!을 출력함.

 

출력된 값인데 드래그해서 OpenURL을 누르면 자동으로 열림.

 

직접 만든 테이블 확인 가능

-> 스튜디오 내에서 수정 가능

 

 

따로 만든 구조를 타입으로 선언하고 싶을땐 아래처럼 EmbeddedObject로 설정.

 

또한 [Movie]형식으로 하니까 안됐음.

-> List<Movie>()처럼 선언해야함. Array로 할 수 없어서 그런듯.

 

Realm문서를 보면 아래와 같이 나옴.

Array대신 List를 사용하는 것임.

 

또한 지원하는 프로퍼티 타입을 보면 Array가 없고 List가 있음.

결론은 Swift의 Array와 거의 같으므로 Realm을 사용할땐 List를 사용하면 됨.

 

 

위와 같은 클래스를 이용해 데이터를 불러와 담을 배열을 선언할땐 타입이 Result가 아닌 Element?임.

 

따라서 아래처럼 선언.

 

 

 

데이터 정렬한 상태로 가져오기

 

'TIL' 카테고리의 다른 글

[TIL] 2022 / 08 / 24  (0) 2022.08.25
[TIL] 2022 / 08 / 23  (0) 2022.08.24
[TIL] 2022 / 08 / 21  (0) 2022.08.22
[TIL] 2022 / 08 / 20  (0) 2022.08.21
[TIL] 2022 / 08 / 19  (0) 2022.08.20
댓글
최근에 올라온 글
Total
Today
Yesterday