2010-01-06 3 views
2

Access Development 용 모범 사례 중 하나 인 as specified by Microsoft은 액세스 응용 프로그램을 두 부분으로 나눕니다. 테이블을 제외한 모든 오브젝트를 보유하는 프론트 엔드와 테이블을 보유하는 백엔드.MS Access 데이터베이스 분할 - 프런트 엔드 부품 위치

msdn 페이지는 프로세스를 자세히 설명하는 Splitting Microsoft Access Databases to Improve Performance and Simplify Maintainability 문서로 연결됩니다.

다중 사용자 환경에서 프런트 엔드가 각 사용자에게 배포되는 동안 백 엔드는 서버/공유 폴더에 저장되는 것이 좋습니다.

프런트 엔드에 변경 사항이있을 때마다 모든 사용자 컴퓨터에 배포해야 함을 의미합니다.

내 질문은 :

는 사용자가 자신뿐만 아니라 옆에있는 서버에이를 떠나의 단점/위험 일 것입니다 무슨 응용 프로그램의 프런트 엔드 부분을 수정할 수있는 권한이없는 가정하면 백엔드 복사본?

여기서 성능 문제를 볼 수는 있지만 여기에 가능한 손상 등의 위험이 있습니까?

는 질문에 지정된 시나리오는 서버에 저장하고 사용자가 공유 한 프런트 엔드를 가정, 당신은

편집

그냥 명확하게 주셔서 감사합니다.

각 사용자 컴퓨터에 FE를 배포하는 것이 좋습니다.하지만 수행하지 않으면 위험에 대해 더 자세히 알고 있습니다.

예. 서버에서 FE와 BE의 접근 방식을 사용하는 기존 솔루션이 주어질 때. 성능이 만족스럽고 고객이 접근 방식을 변경하는 것을 꺼려한다면 여전히 변경 사항을 적용 할 것입니까? 왜 정확히? 예를 들어 잠재적 인 데이터 손상의 위험은 분명히 충분히 강력한 논증이 될 것입니다. 그러나 그 경우입니까?


그것은 서버의 프런트 엔드를 유지하기 위해 내 앞의 질문 From SQL Server to MS Access 2007

+1

각 사용자의 개별 프런트 엔드를 서버에 저장하는 것에 관한 질문은 단순히 성능 문제입니다 (상식 - 프런트 엔드는 "응용 프로그램"이므로 사용자 응용 프로그램을 설치하지 않습니다). Novell 환경에서는 15 년 전이나 그렇게 일반적인 서버 였지만 요즘 서버). 단일 프론트 엔드 공유를 염두에두고 있다면, 그것은 다른 물고기의 주전자이며, 어떤 댓가를 치르더라도 피해야하는 것입니다. –

+0

그러나 터미널 서버/Citrix 서버에는 여전히 사용자 응용 프로그램을 설치합니다. –

+0

David 감사합니다. 나는 모든 것이 상식처럼 들리는 것을 동의합니다. "하나의 프런트 엔드를 공유하는 것을 피해야합니다"라고 말하면 사용자가 FE 수정 권한이없는 시나리오를 가정 할 때의 위험과 그 이유는 무엇인지 실제로 명확히 할 수 있습니까? – kristof

답변

5

FE의 개별 사용자 특정 복사본을 서버에 남겨 두는 유일한 단점은 네트워크 성능입니다. 데이터 손상만큼 큰 차이는 없습니다.

하지만 여러 사용자간에 FE를 공유해서는 안됩니다.이것은 FE와 다른 별난에 부패하기 쉽습니다. 각 사용자는 자신의 FE 사본을 얻어야합니다. 또한 사용자가 사용하는 동안 새 사본으로 대체 할 수 없습니다.

클라이언트가 파일 서버의 개별 사용자 폴더에서 FE를 사용하지만 Citrix 클러스터에서 msaccess.exe를 실행하여 몇 년 동안 실행되었습니다. IT 직원은 Citrix 클러스터 서버 시스템의 로컬 하드 드라이브를 업데이트하고 싶지 않았습니다.

FE를 배치하는 한 내 웹 사이트에서 Auto FE Updater을 참조하십시오. 다음 주에 큰 변화가 생겨 초기 서버 설치와 사용자 초기 설치가 훨씬 쉬워졌습니다.

+0

토니에게 감사드립니다. 내가 올바르게 이해한다면 여기에 설명 된 시나리오는 각 사용자가 서버에 별도의 FE를 가지고 있다는 것입니다. 그리고 여기서 유일한 단점은 네트워크 성능 일 것입니다. 모든 사용자가 공유하는 FE가 하나만있는 상황은 어떻습니까? – kristof

+0

Auto FE Updater 공유를위한 큰 축하 – kristof

+0

FE 공유를 방해하기 위해 OP 편집에 대한 응답으로 내 게시글을 업데이트했습니다. Auto FE Updater에 대한 귀하의 친절한 말씀에 감사드립니다. –

2

의 후속 조치의 일환입니다 것 더 많거나 적은 패배 데이터베이스를 분할하는 목적. 프런트 엔드를 데스크톱에 배치하면 응용 프로그램을 사용할 때마다 검색되지 않으므로 네트워크 트래픽이 줄어들고 프런트 엔드 데이터베이스에 설정이나 임시 데이터를 저장하기 위해 각 사용자에게 개인 데이터가있는 테이블이 포함될 수 있습니다.

데이터 손상을 방지하려면 각 사용자가 프런트 엔드 사본을 보유해야합니다. Allen Browne은 부패 방지에 대한 자세한 내용을 제공합니다. this article

필요에 따라 데스크톱의 프런트 엔드 버전을 업데이트하는 데 사용할 수있는 유틸리티가 많이 있거나 직접 유틸리티를 작성할 수도 있습니다.

+0

Remou에게 감사드립니다. 저는 FE에 대한 업데이트를 개발 한 다음 단일 파일 솔루션에 비해 큰 이점으로 데이터를 걱정할 필요없이 기존 파일을 새로운 파일로 대체함으로써 변경 사항을 배포 할 수 있다고 생각합니다. 그것은 제가 설명한 시나리오에서 사라지지 않을 것입니다. 성능에 미치는 영향은 꽤 직관적이지만 데이터 오염 등 더 심각한 함정이 있는지 궁금합니다. – kristof

+0

제 대답에 조금을 추가했습니다. – Fionnuala

+0

+1 감사합니다. – kristof

0

다른 사람들과 동의합니다. fe를 서버에 유지하는 것은 권장되지 않습니다. 밀어 넣기를 수행하는 서버에 배치 파일을 넣기 만하면됩니다. 업데이트가있을 때 전자 메일을 통해 배치 파일에 대한 바로 가기를 보냅니다. 그것은 많은 솔루션 중 하나입니다. 일단 그것을 설정하면 문제가되지 않습니다. 백엔드에 연결되는 프런트 엔드 (FE)을 사용하여 Access 2007 프로그래머로 세스

+1

배치 파일에서 바로 가기를 실행하는 사용자는 보안 경고를받을 수 있습니다. 나는 보안 경고를 무시하는 습관을 가지지 않는 편이 좋다. 또한 일부 사용자는 배치 파일 등을 절대 실행하지 않습니다. –

0

는 데이터베이스 (일명, 분할 데이터베이스) 나는 위의 두를 수행 한 (BE). 사용자에게 업데이트 된 FE를 보내면 다른 오버 헤드가 발생합니다. 특히 타사 컨트롤이나 응용 프로그램이 사용되는 경우가 있습니다.

Citrix의 경우 Access 97 일 이전에 Citrix 관리자가 서버 파일 위치에 FE 복사본 하나를 넣을 수있었습니다. 로그인 한 각 사용자에 대해 새로운 인스턴스를 생성 할 것입니다. 우리는 영향이없는 50 명 이상의 사용자를 사용할 수있었습니다. Access VBA 코드가 단순한 Select 문이 아닌 롤백으로 효율적인 업데이트 및 트랜잭션을 사용한다고 말하면서이 문제를 해결해야합니다.

현재 문제는 Citrix 서버 (Windows 2003)에서 실행되는 Access 2007입니다. 제가 Citrix에 로그인 한 유일한 사람인 경우 응용 프로그램 (필자는 테스트 자동화를 통해 사용자 지정 Excel 스프레드 시트를 만드는 복잡한 보고서를 선택했습니다)은 XP 워크 스테이션에서 FE를 실행하는 것보다 1 % 빨리 실행하고 연결합니다 Citrix 서버 하드 드라이브의 BE에 연결하십시오.

그러나 2 ~ 3 명이 Citrix Server에 로그인하면 같은 보고서가 3 번 걸립니다. 그러나 2 ~ 3 명이 Citrix에 로그인 한 상태에서 XP 워크 스테이션에서 FE를 실행할 수 있으며 Citrix의 단일 사용자와 똑같이 실행됩니다.

공유 네트워크 드라이브에 게시 된 FE는 2 ~ 3 명의 사용자가 공유하므로 이와 같은 이유로 권장되지 않습니다. 액세스 FE는 공유하도록 설계되지 않았습니다 (* 세부 사항 *는 예비 할 것입니다). 그래서 사람들은 각 워크 스테이션에 FE를두고 하나의 데이터베이스 (BE)를 공유합니다.

Citrix에서 부족한 점은 Citrix에서 Access FE를 실행하는 데 필요한 단계별 "방법"입니다. 하나의 파일을 게시하는 것이 이상적입니다. 사용자가 Citrix에 로그온하면 Citrix는 FE의 복사본을 만들고 해당 사용자의 로그인에 대한 리소스 (액세스 용)를 할당해야합니다. 나는 이것이 MS 오피스가 자동적으로하는 것 또는 적어도 그것을하는 방법에 대한 지침을 가지고 있다고 생각합니다.

해당 문서가있는 경우 게시하십시오. 나 같은 프로그래머는 Citrix 관리자에게 직접 알려주고 싶어합니다. 그것은 많은 문제를 해결할 것입니다.

+1

Citrix 관리자와 일반 Windows 서버 시스템 관리자는 액세스를 얻지 못하고 문제를 일으키는 방식으로 문제를 조정할 수 있습니다. 귀하의 질문에 대한 답이 없습니다. Citrix 서버가없는 일반 바닐라 WTS에만 배포했기 때문입니다. 나는 당신이 그 시나리오에서 묘사하고있는 종류의 문제를 본 적이 없다. 변경 사항을 배포하는 Tony의 AutoFEUpdater를 사용해 본 적이 있는지 궁금합니다. 그는 Citrix/WTS 환경에서 실행하기위한 요구 사항을 충족시키기 위해 특별히 설계했습니다. –

관련 문제