Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 2레벨
- suspend programming
- keystore
- 데이터베이스 첫걸음
- 피보나치 수 2
- github action
- Android
- Bitrise
- 브론즈1
- LazyRow
- kotlin
- 백준
- .github
- 실버 4
- 브론즈 1
- compose
- 성빈랜드
- 최댓값 최솟값
- DB
- 실버2
- navigation component
- 프로그래머스
- 데이터베이스
- gradlew
- capitalize
- 개발하는 정대리
- Activirty
- LazyColumn
- DB 기능
- Myungpyo Shim
Archives
- Today
- Total
plzy의 개발 블로그
[DB] 데이터베이스의 기능 2 (동시성 제어) 본문
2.동시정 제어
개인이 관리하는 주소록이라면, 이걸 갱신하는거나, 검색하는 것은 자기 자신뿐 입니다.
하지만 비지니스나, 공공목적으로 이용되는 데이터는 불특성 다수의 사용자가 동시에 접근하는 것이 보통입니다.
즉 데이터베이스는 동시에 복수의 사용자로 부터 검색이나 갱신처리를 받습니다.
이때 문제되는것은 '갱신의 무결성을 어느정도로 보장하는가?' 입니다.
예를들어 데이터베이스의 사용자가 2명이라고 생각해 봅시다.
Pc의 주소록 파일을 아버지, 아들이 공유하고 있습니다.
아버지는 박00 씨의 주소를 갱신하려고 할때 아들도 박00씨의 주소를 잘못된 주소로 갱신하려고 하면 어떻게 될까요?
동작은 다음 3가지로 나뉘어 집니다.
-
1.최초로파일을 연사람이 파일을 열고 있을 때 그 다음으로 파일을 열라고 한 사람은 파일을 열 수 없다.
-
2.최초로 파일을 연 사람이 파일을 열고 있을 때 그다음으로 파일을 열라고 한 사람에게는 파일이 '읽기 전용'으로밖에 열리지 않는다
-
3.어떤 사람도 문제없이 파일을 여는 것이 가능하고 나중에 수행된 쪽의 갱신이 반영된다.
1. 아버지가 최초로 파일을 연 경우로, 아버지가 갱신을 끝내고 파일을 닫을 때 까지 아들은 주소록을 볼 수가 없습니다. 2. 아버지가 최초로 파일을 연 경우로, 파일을 열어보는 것은 가능하나, 수정 및 갱신은 불가능 합니다. 3. 아버지와 아들 양측에서 동시에 갱신하려는 경우로, 주소록이 물리적인 책이라고 생각하면 동시에 펜을 쥐고 쓰려고 합니다.
괴로은 프레이드오프의 관계
데이터베이스를 복수의 사람에 쓸려면 데이터를 갱신하는 상황에 대한 제어가 필요합니다.
앞에서, 어떤사람은 불편하고 어떤 사람은 괜찮은 관계를프레이드오프의 관계라고 합니다.
이렇게 복수 사용자의 갱신을 조절하기 위한 기능을 "동시성 제어" 또는 "베타 제어" 라고 합니다.
아들 시점으로 봤을 때는 1이 가장 심하고 3이 가장 느슨합니다. 1일 때에는 아무것도 할 수 없지만, 3일 때는 누군갈 의식 안한채로 수정할 수 있습니다.
이러한 관점에서는 3이 아들입장에서는 가장 바람직한 상황이고, 아버지가 볼 때에는 자신이 갱신하려는 상황에 타인이 마음대로 갱신하려는 3은 위험하고 의도적이지 않은 상황입니다. 따라서 아버지의 관점에서는 1이 제일 바람직한 상황입니다.
'DB' 카테고리의 다른 글
데이터베이스의 종류 (0) | 2021.02.20 |
---|---|
[DB] 데이터베이스의 기능 4 (보안) (0) | 2021.02.20 |
[DB] 데이터베이스의 기능 3 (장애 대응) (0) | 2021.02.20 |
[DB] 데이터베이스의 기능들에는 어떤 것이 있을까? (검색과 갱신) (0) | 2021.02.20 |
[DB] 데이터베이스란 무엇일까 ? (0) | 2021.02.20 |