일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 알림 우선순위
- notifications
- notification manager
- android notification 예제
- 안드로이드 알림
- setDefaults(NotificationCompat.DEFAULT_ALL)
- setPriority(NotificationCompat.PRIORITY_HIGH)
- 안드로이드 알림채널
- 알림 인텐트
- 펜딩인텐트
- 버전별 관리
- setContentIntent
- 안드로이드 알림 예제
- notification channel
- Pending Intent
- NotificationCompat.Builder
- Today
- Total
공부용 블로그
RDBMS 후보군 검토 중 이해안가는 부분 - ing 본문
Q. AltiBase DB의 라이센스 정책을 보고 있는데, 라이센스 종류에 따라 소켓서버의 제한이 있거나 디스크 DBMS 사용에 제한이 있다고 되어있다. 이해안가는 점은..
디스크 DBMS가 내 서버 컴퓨터에 속해 있는거 아닌가? altibase를 사용하는데 왜 내 컴퓨터 내부의 DBMS 사용이 제한되는거지? (그냥 라이센스에 따른 옵션 정책 모두가 다 이해안감..)
http://kr.altibase.com/faq/altibases-license-maintenance-model/
Q. in-memory DB는 데이터를 디스크에 저장하지 않고 메모리(RAM)에 저장한다고 했는데, RAM은 용량이 하드디스크에 비해 훨씬 작을텐데 어떻게 그 많은 양의 데이터를 저장한다는거지?
=> 메모리에 데이터를 "모두" 저장한다는 것은 확실하지 않음. 메모리에 자주 사용하는 데이터만 올려놓고 쓸 수도 있다.
인메모리와 디스크 방식을 합쳐놓은 방법도 있다.
그리고 컴퓨터 끄면 RAM에 있는 데이터는 지워지는거 아닌가??
=> 기본적으로는 맞음. 이걸 보완하기 위한 방법이 나왔음. 예를 들어 ArtiBase DB
Q. 탑 10개 rdb특징이나 포함된 기능을 보고 개념이 먼지 이해. 내 서비스에 꼭 필요한 기능인지 생각. 필요하다면 선정 기준에 포함시키자.
내 서비스에 맞는 스키마 구조 짜보기
조인문 필요한가?
필요하지 않다면 왜 RDB를 써야함?
DB 버퍼 캐시
데이터 블록을 읽어올때 디스크 I/O 작업은 시간이 걸리기 때문에 이 시간을 줄이기 위해
최근에 읽어온 데이터 블록에 대한 정보를 저장한다.
Q. 블록이 아니라 블록에 대한 정보면 헤더정보만 저장해둔다는건가?
=> 블록자체가 한 단위이기때문에 헤더만 따로 저장하는 것이 아니라 헤더를 포함한 실제 데이터까지 저장하는 것 같음
http://jeong-pro.tistory.com/147?category=816292
Q. 그럼 저장은 어디까지 되고(버퍼캐시 용량은 어떻게 정해지지?), 언제까지 저장되어 있지?(시간지나면 자동삭제? 덮어쓰기?)
유한한 메모리 자원을 좀 더 효율적으로 사용해야 하므로 자주 액세스하는 블록들이 캐시에 더 오래 남아 있도록 LRU 알고리즘을 사용
http://wiki.gurubee.net/display/STUDY/Memory+vs+Disk+IO%2C.
=> LRU 알고리즘에 대해 알아보기
결국 디스크 I/O를 최소화하고, 대부분 처리를 메모리에서 할 수 있도록 버퍼 캐시 효율성을 높이는 것이 데이터베이스 성능을 좌우하는 열쇠
http://wiki.gurubee.net/display/STUDY/Memory+vs+Disk+IO%2C.
Q. 여기서 처리라는것은 쿼리문 처리? or 쿼리문을 읽은 후 데이터까지(메모리에 있는) 가져오는것까지 포함?
=> DB마다 다름. SQL문만 저장하는 경우도 있고 그에 해당하는 값까지 저장하는 경우도 있음
Q. RDBMS에서 지원되는 프로그래밍 언어는 왜 필요한거지?
mysql 썼을때는 쿼리문빼고 직접 코드 짠게 없었기때문에 어떤 언어가 필요하지 않았는데
지원되는 언어가 있다는거면 직접 코드를 짤 수도 있다는건가? 쿼리문이외에?
=> 웹서버와 데이터베이스를 연결해주기 위한 프로그램의 언어(혹은 웹서버의 언어가 될 수도 있음. 왜냐면 웹서버와 DB를 연결해야 하는데 웹서버가 자바스크립트로 코딩되어 있으면 DB에서 자바스크립트를 지원해야 연결할 수 있는것처럼..)
예를 들어, MySQL이 지원하는 프로그래밍 언어는 다음과 같다.
APIs and other access methods (데이터베이스에 접근할수 있는 방법, API) |
Proprietary native API ADO.NET |
Supported programming languages (지원되는 프로그래밍 언어) |
Ada C |
* JDBC는 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API
'설계 > RDBMS' 카테고리의 다른 글
페이지 알고리즘 (0) | 2018.11.04 |
---|---|
DataBase 아키텍처(오라클) (0) | 2018.11.04 |
DataBase가 생겨나게 된 배경 (0) | 2018.11.03 |
RDBMS 개념 익히기 (0) | 2018.10.31 |
mysql 연결 오류 (0) | 2018.10.02 |