2009-08-21 4 views
4

오늘 프로그래밍을하면서 하루를보고 싶습니다.하지만 아직 그런 응용 프로그램을 본 적이 없습니다. 당신은 매우 높이 평가됩니다.다른 데이터베이스 엔진을 실행하는 동안 특정 데이터베이스 엔진을 가장 할 수있는 방법이 있습니까?

DBMS로 MSSQL 서버가 필요한 응용 프로그램이 있다고 가정 해 보겠습니다. 설치하고 뭔가를해야한다고 가정 해보십시오. (예 : 프로덕션 서버 등에서이를 파기하지 않을 것임)

그런 경우 MSSQL을 먼저 설치하는 오버 헤드가 발생할 수 있습니다. 나는 다른 DBMS를 사용하여 데이터를 저장할 수있는 소프트웨어 브리지 같은 것을 권장하고있다. 즉, 응용 프로그램은 MSSQL 인스턴스를 볼 수 있지만 그 아래에는 Access가있을 수 있습니다. 다리 가루는 일종의 개조를합니다.

다른 예 : MSSQL이 있지만 특정 애플리케이션에 Oracle이 필요합니다. 오라클을 구입해야합니다. 그러나 브리지와 같은 것을 사용하면 MSSQL DBMS에 정보를 넣을 수 있습니다. 브리지는 오라클과 마찬가지로 포트 1521을 수신하므로 응용 프로그램에는 "오라클 설치"가 있다고 가정합니다.

  1. 구현할 수없는 아이디어입니까?

  2. 이러한 응용 프로그램이 있습니까?

  3. 그렇다면 무엇입니까? 응용 프로그램은 제 3 자로부터 수 있습니다 : 해명을 추가

감사합니다 ... :)

. 당신은 그것의 내부 구조에 대한 지식이 없습니다. 당신은 단지 특정 DBMS를 사용한다는 것을 알고 있습니다. 타사 소프트웨어가 아닌 다른 DBMS를 사용하려고합니다.

+0

나는 당신이 추구하는 것을 더 잘 반영하기 위해 제목을 편집했습니다. –

+0

당신은 내 생각을 가지고 있습니다. :) Thanks buddy –

답변

4

일반적으로 응용 프로그램은 특정 데이터베이스 서버에 종속되어 있지 않거나 특정 이유로 인해 달라집니다.

응용 프로그램에서 oracle 또는 sql server 등을 묻는 경우 SQL, 저장 프로 시저 등을 실행하는 특정 공급 업체의 구현 세부 정보를 사용하기 때문입니다. ...

응용 프로그램이 매우 간단한 SQL (즉, 기본 삽입/선택 문) 만 실행하면 표준 드라이버 (odbc, ado 등)를 사용하고 해당 드라이버 모든 주요 SQL 데이터베이스 엔진을 수용 할 수 있습니다. 내 경험상, "단순 응용 프로그램"은 특정 데이터베이스 공급 업체를 요구하지 않습니다.

+0

아이디어는 "응용 프로그램이 단순하면 왜 응용 프로그램이 필요로하는 것과 동일한 DBMS가 필요한가?"입니다. –

+0

특정 애플리케이션을 염두에두고 있습니까? 잘 작성된 것이라면 아마도 SQL 데이터베이스에 액세스하기 위해 표준 드라이버를 사용합니다 ... – Brann

+0

@ Brann - 일부 응용 프로그램에서는이를 수행하지만 .. 모든 응용 프로그램에서는 그렇지 않습니다. ( –

3

이것은 ODBC이 해결해야하는 문제입니다 :-). 질문에 대한

그러나 응답 :이 구현 될 수없는 아이디어

인가?

구현할 수 있습니다.

지루하고 감사 할 일이 아니며 매우 제한적인 감사를 받게됩니다. 제 의견으로는 그럴만 한 가치가 없습니다.

이러한 응용 프로그램이 있습니까?

나는 알고있다.

그렇다면 무엇입니까?

나는 알고있다. 코멘트 섹션에서 Chandrasekar의 노트에 반입

......

:

슈퍼 사용자의 관점에서 보라는 ... 그는 좋은 응용 프로그램을 가지고 있지만 그는 수 없습니다 일부 DBMS없이 사용하십시오. 그러나 그는 여전히 프로그래머가 아닙니다. 그래서 그들은 그러한 제품이 필요합니다.

나는 그것이 애플 리케이션에 동의하지만 매우 제한된 감사를 가지고 있습니다 :).

당신이 제안하는 것은 파이어 폭스 플러그인 'ietab'과 같은 것입니다. 즉, 오직 설치되지 않았을 것입니다. 즉, 임베딩 대신 ie 파이어 폭스의 렌더링 창을 사용하여 완전히 다시 구현해야합니다.

제 생각에는 너무 많은 노력이 필요합니다 ... 단지 두 번째 데이터베이스를 설치하는 것이 더 간단합니다.

+1

슈퍼 사용자의 관점에서 살펴보십시오. 그는 훌륭한 응용 프로그램을 가지고 있지만 DBMS 없이는 사용할 수 없지만 여전히 프로그래머가 아니기 때문에 그러한 제품이 필요합니다 –

+0

"두 번째 데이터베이스를 설치하는 것이 더 간단합니다." 몇 가지 다른 관심사가 있습니다 .. 조직 정책, 비용 요인, ETAs 다루기 .. 많은 것들이 다른 :) –

0

이 응용 프로그램이 ADO를 사용하여 SQL Server에 연결하고 연결 문자열을 수정할 수 있으면 다른 데이터베이스를 사용하는 것이 매우 쉽습니다. 연결 문자열을 변경하십시오! 그러나 다른 데이터베이스는 SQL Server의 모든 기능을 지원할 수 있어야합니다. 게다가이 소프트웨어는 다른 데이터베이스에서 테스트되지 않았으므로 응용 프로그램이 충돌 할 수 있습니다. & 굽기.

연결 문자열을 변경할 수 없거나 응용 프로그램이 ADO를 사용하지 않으면 상황이 더 복잡해지고 불가능에 가깝습니다.

필자는 합당한 데이터베이스 독립적이어야하는 프로젝트에서 과거에 일했습니다. 데이터베이스는 저장 프로 시저를 지원해야했지만 다른 제한은 없었습니다. 기본적으로 우리는 SQL Server와 Oracle을 모두 지원하려고했습니다. (우리는 또한 Interbase를 지원했으나 이것을 광고하지 않았습니다.) 대부분 데이터베이스 독립적 인 상태로 유지했지만, 몇 가지 사소한 문제를 해결해야했습니다. 특히 우리 쿼리의 조인에는 스토어드 프로 시저에 더 많은 로직을 추가하여 방금 해결 한 몇 가지 문제가있었습니다.

0

"이것은 ODBC가 해결해야하는 문제입니다 :-)."

그리고 SQL이 해결하려고 한 것과 똑같은 문제입니다.

이 문제가 존재하는 이유는 데이터 처리 언어/인터페이스가 어떤 모양인지에 따라 세계가 겉으로보기에는 동의하지 않는 것 같습니다. 충분히입니다.

나는이 문제를 해결할 수 있다면 이미 완료되었을 것으로 생각합니다.

0

제가 들었던 가장 가까운 곳은 Postgres 위에 레이어를 구축 한 EnterpriseDB입니다. 그래서 오라클처럼 보입니다.

그러나 이러한 데이터베이스는 특허 및 저작권이 적용되는 기능을 가지고 있으므로 경쟁 제품이 실제 제품을 얼마나 모방 할 수 있는지에 대한 한계가 있음을 기억하십시오.

'다운'을 모방하는 것이 더 쉬울 것입니다. 예를 들어, MS-Access는 오라클이나 SQL Server의 많은 기능을 모방 할 수 없지만 SQL Server가 Access와 같은 간단한 DB를 모방 할 가능성은 훨씬 더 높습니다.

0

일반적으로 응용 프로그램은 특정 데이터베이스 서버에 의존합니다. 모든 데이터베이스는 공통 조상을 가진 MSSQL 및 Sybase조차도 약간 다르게 구현합니다.

모든 다리는 차이점을 추상화하려고 시도하지만 일부는 노출 될 수 있습니다. 이것들은 응용 프로그램에 미묘한 버그를 만들 가능성이 있습니다. 처음에는 제대로 작동하지만 데이터가 손상되거나 악화 될 수 있습니다.

또한 응용 프로그램 공급 업체는 이러한 경우를 지원하지 않을 것입니다. 단순히 해당 사용 사례를 지원하지 않는다고 말하면 브리지를 제거하고 해당 데이터베이스의 적절한 인스턴스를 설치해야합니다 .

간략히 말하자면 응용 프로그램이 특히 중요하지 않더라도 응용 프로그램이 미묘하게 오작동 할 위험이 크지 않으며 지원 없이도 남아있을 가치가 있다고 생각하지 않습니다. 응용 프로그램이 사용하는 기본 데이터베이스를 싫어하는 경우 다른 응용 프로그램을 선택하십시오.

관련 문제