2013-07-09 3 views
5

단일 사용자 데이터베이스와 다중 사용자 데이터베이스의 차이점은 무엇입니까? 왜 단일 사용자 데이터베이스를 사용해야합니까? 왜 만들어 졌지?단일 사용자 데이터베이스 대 다중 사용자 데이터베이스

같은 로그인 자격 증명을 사용하여 같은 데이터베이스에 여러 스레드가 동시에 액세스하는 경우 다중 사용자 데이터베이스가 필요합니까?

답변

6

단일 사용자 데이터베이스와 복수 사용자 데이터베이스의 차이점은 무엇입니까? 왜 단일 사용자 데이터베이스를 사용해야합니까? 왜 을 만들었습니까?

단일 사용자 모드에서는 주어진 순간에 데이터베이스에 단 하나의 연결 만 허용됩니다.

이 질문을 SQLite로 태그 지정 했으므로 해당 특정 엔진에 대한 답변을 기반으로하겠습니다.

SQLite의 동시성 보호 모델은 디스크의 데이터베이스 파일에 직접 파일을 읽고 쓰는 것을 기반으로하므로 분명히 두 개의 서로 다른 프로그램이 정확히 같은 시간에 디스크의 같은 파일에 쓸 수 없습니다. SQLite는 데이터베이스 파일을 변경하는 동안 두 번째 쿼리를 기다리게합니다.

SQLite는 INSERT 및 UPDATES가 수행 될 때 운영 체제 파일 잠금을 사용하여 파일/데이터베이스 손상을 방지합니다. 하지만 동시에 여러 개의 읽기 전용 핸들을 허용합니다 (데스크톱에서 읽기 전용으로 동일한 파일을 여러 번 열 수 있지만 변경 내용을 저장할 수없는 것과 같습니다).

SQL Server와 같은 다른 데이터베이스에서 단일 사용자 모드는 백업 파일 복원, 데이터베이스 구조 변경 또는 전역 데이터베이스 설정 변경과 같이 유지 관리가 필요한 경우에만 주로 사용됩니다.

단일 사용자 모드는 이러한 종류의 변경을 수행하는 동안 클라이언트를 연결하고 데이터를 읽거나 쓸 수 없기 때문에 유용합니다.

그러나 정상적인 조건에서는 성능상의 이유로 단일 사용자 모드에서 SQL Server를 실행하지 않으려합니다. 그러나 대용량 웹 서비스가 없으면 SQLite는 디스크에서 한 번에 하나씩 변경 되더라도 성능 요구 사항을 처리 할 수 ​​있습니다.

동일한 로그인 자격 증명을 사용하여 같은 데이터베이스에 여러 스레드가 동시에 액세스하는 경우 다중 사용자 데이터베이스가 필요합니까?

아니요, 여전히 작동합니다. 그리고 SQLite 데이터베이스는 인증을 전혀 필요로하지 않으며, 파일/디렉토리 권한 이외의 다른 자격 증명도 없습니다.

관련 문제