App. NET - Dovremmo utilizzare SQL Server e duplicare alcuni dati di riferimento da un DB Oracle esterno? O usare Oracle e avere un collegamento DB?

3

Stiamo cercando di migrare alcuni processi Excel / Access esistenti in un nuovo sistema che fornirà agli utenti un frontend di Silverlight per l'esecuzione e la visualizzazione dei report invece di utilizzare MS Access. L'idea iniziale era di avere SQL Server 2008 come RDBMS.

Il problema è che abbiamo alcuni dati statici come codici paese, controparti, ecc. che vivono in un DB Oracle esistente. Dal momento che non vogliamo duplicare i dati (se possibile), stavamo pensando di avere un collegamento DB tra SQL Server e Oracle, ma la nostra azienda non lo consente.

Quindi le opzioni sono duplicazione dei dati o utilizzo di Oracle come RDBMS: a sorpresa, l'azienda consente collegamenti DB tra database Oracle.

L'idea iniziale era anche di usare i servizi RIA di WCF, Entity Framework, ecc. che non siamo sicuri che funzionino bene con Oracle, ecco perché è stato deciso di utilizzare SQL Server in primo luogo.

Consiglieresti di andare su Oracle in modo che possiamo semplicemente collegare i dati statici? O utilizzare SQL Server 2008 e replicarlo perché è "più sicuro" rimanere all'interno della terra Microsoft? Per utilizzare o meno l'uso di Entity Framework e dei servizi RIA WCF?

Saluti.

AGGIORNAMENTO: grazie a tutti per le vostre risposte. Niente è ancora scolpito nella pietra. Cercheremo di importare i dati anziché il collegamento, come se l'altro DB dovesse andare giù, il nostro sistema può ancora continuare. È probabile che utilizzeremo SQL Server solo perché molti sviluppatori hanno più esperienza con esso. Anche se utilizzassimo i Servizi RIA, possiamo sostituire il Data Access Layer e utilizzare altri framework come quelli menzionati di seguito.

    
posta Daventry 11.06.2012 - 13:46
fonte

4 risposte

2

Il DailyWTF è disseminato di aziende che inseriscono nuovi sistemi per il gusto piuttosto che andare con ciò che funziona, imparare da loro:)

EF fa (principalmente) lavoro con Oracle, ma francamente, eviterei EF e in primo luogo andare con un ORM diverso. Le mie esperienze con EF non erano le migliori quando facevamo un sistema molto grande che lo utilizzava. Fortunatamente, ci sono alternative migliori: DevArt ha fatto del lavoro per creare un ORM che funziona con le caratteristiche di Oracle e superiore a EF, L'ActiveRecord di Castleprojects potrebbe essere adatto a te, oppure SubSonic ha un ottimo ORM, potresti anche usare NHibernate .

Quindi, andrei con l'infrastruttura Oracle esistente, si adatterà meglio alla tua azienda e questo è sempre un grande successo, se non altro per i DBA che possono applicare tutta la loro esperienza di backup e manutenzione ai tuoi dati.

    
risposta data 11.06.2012 - 15:01
fonte
1

Non so di "WCF RIA Services, Entity Framework" che funziona con Oracle o meno, ma la tua azienda sembra fare molto affidamento su Oracle; Vorrei restare con esso. In una situazione aziendale, tutti devono pianificare le cose e andare sulla stessa pagina. Avere più copie di dati IMHO è una cattiva idea senza una sorta di collegamento o replica. Ovviamente qualcuno deve pensarci due volte a modificare uno di questi tavoli senza considerare la tua app.

    
risposta data 11.06.2012 - 15:18
fonte
1

Il tuo software sarà di sola lettura di quel database esterno? Il tuo software sta aggiornando, inserendo, eliminando quel database esterno?

Se le tue risposte sono "sì" e "no":

(1) Si parla di "database [SQL] esterno". Wheter è Oracle, Ms.SQL Server o altro.

Diversi progetti, su cui ho lavorato, hanno avuto diversi problemi tecnici, tra diversi "fornitori di sql".

Suggerisco di creare una copia di tale database Oracle su un database interno [Metti il tuo marchio SQL locale]. Utilizzando uno schema, se non uguale, il più simile possibile, a quello originale. Crea un processo per importare i dati.

Vantaggi

In questo modo, i dati di origine rimangono invariati, problemi di accesso, compatibilità, problemi di sicurezza.

Svantaggi

Aggiunta di un ulteriore livello di dati e logica. Lavoro extra.

(2) Per la struttura della libreria, come M.S. "Entità", WPF, qualsiasi cosa, potresti voler controllare, la politica della tua azienda e le scelte di sviluppo tecnologico a lungo termine.

Capisco che questo punto non sia correlato alla domanda, ma, nel mondo reale, ciò influisce, specialmente con il software M $.

Ho già incontrato alcuni casi, in cui le aziende hanno migrato da un altro database a Oracle, a causa della sua stabilità (Im non correlato a Oracle o M $).

Hai menzionato "Silverlight", che è stato ufficialmente ritirato, da $.

Saluti.

    
risposta data 11.06.2012 - 15:52
fonte
1

La domanda chiave da porre qui per prendere una decisione ragionevole è

  • chi mantiene i dati statici, come (e con quale frequenza) vengono forniti aggiornamenti / modifiche / correzioni di errori?

Se la risposta è "Gli sviluppatori software del sistema", quindi mantenere tali dati al di fuori di qualsiasi database e fornire alcuni script SQL per l'inizializzazione o l'aggiornamento dei dati. Questo può essere fatto in modo da mantenere i dati in un unico posto, usando gli script SQL indipendenti da DB o creando un generatore SQL per ciascun sistema.

Se la risposta è "Alcuni utenti connessi al sistema Oracle e i dati non devono essere disponibili in modo istantaneo nel DB MS SQL", è meglio fornire un processo di estrazione-trasformazione-trasferimento (da eseguire a intervalli ragionevoli) a estrai i dati dal DB Oracle nel tuo MS SQL DB. Vantaggio: se il DB Oracle sta andando offline, il sistema funziona ancora, hai una disponibilità molto più elevata e l'intero sviluppo e test sarà più facile dal momento che ti dividi da un terzo sistema.

Solo se la risposta è "i dati devono essere disponibili in modo istantaneo", pensa di utilizzare lo stesso database (sistema) per i dati statici e il tuo sistema.

Normalmente non prenderei una decisione tra MS SQL DB e Oracle a causa di "alcuni dati statici". Entrambi i sistemi sono maturi e forniscono una ricca infrastruttura di sviluppo. Chiedete alla vostra azienda / cliente quale database preferiscono, questo è principalmente una questione di quale know-how di database è già presente, vogliono vivere con un'infrastruttura di database mista o non ecc. Se la società utilizza principalmente Oracle, quindi utilizzare Oracle . Se hanno entrambi i tipi di DB, chiedi cosa preferiscono per il futuro.

    
risposta data 11.06.2012 - 14:00
fonte

Leggi altre domande sui tag