2011-07-12 28 views
19

Qual è la differenza fondamentale tra coredata e sqlite poiché entrambi sono database e possono essere utilizzati con lo sviluppo IOS. e dimmi anche quale è meglio per il salvataggio e il recupero dei grandi datiDifferenza tra coredata e sqlite

+3

possibile duplicato del [core data vs SQLite 3] (http: // stackoverf low.com/questions/523482/core-data-vs-sqlite-3) – Abizern

+1

anche un possibile duplicato di [Usa CoreData o SQLite su iPhone?] (http://stackoverflow.com/questions/1318467/use-coredata- o-sqlite-on-iphone) –

risposta

68

C'è un'enorme differenza tra questi due. SQLLite è un database stesso come abbiamo MS SQL Server. Ma CoreData è un ORM (modello relazionale oggetto) che crea uno layer tra lo database e lo UI. È speeds-up il process di interazione come noi non dobbiamo write queries, solo lavorare con l'ORM e lasciare che ORM gestisce il back-end. Per save or retrieval of large data, consiglio di utilizzare i dati principali a causa delle sue capacità di gestire la minore velocità di elaborazione del dispositivo. Spero che questo ti aiuti.

@Arundhati: utilizzando i dati di base possiamo ottimizzare la memoria in modo efficiente.

Saluti.

+1

Oltre a quanto sopra, utilizzando i dati di base possiamo ottimizzare la memoria in modo efficiente. – sample

+0

Sqlite non è ORM ... suo Object graph manager – King

+0

Secondo http://stackoverflow.com/a/524301/399741, Core Data non è un ORM. –

1

Utilizzando i dati principali, è possibile ottimizzare la memoria in modo efficiente.

+0

errato; se create progetti complessi non usate mai coredata .... – user1005462

3

C'è una grande differenza tra coredata e sqlite.

dati fondamentali di per sé non è un database è solo un sistema di rilevamento delle modifiche un wrapper sopra i negozi persistenti come SQLite (retrive, salvare gli oggetti al negozio persistente). Puoi avere SQLite come RDBMS di base e coredata può essere usato come un livello per gestire la modifica alle proprietà delle tabelle (annulla, ripristina, ripristina le modifiche), è anche ottimizzato nella gestione della memoria (faulting).

15

Oltre ad essere ORM (modello relazionale oggetto) è possibile confrontare Core-Data e SQLite come;

SQLite:

  • funzione dispone di dati Vincoli.
  • Funziona su dati, memorizzati su disco.
  • Può trascinare la tabella e modificare i dati senza caricarli in memoria.
  • lento rispetto ai dati di base.

Core Data:

  • Non hai vincoli dati, se necessario richiesto per implementare la logica di business.
  • Si accende in memoria. (I dati devono essere caricati da disco in memoria)
  • È necessario caricare interi dati se è necessario eliminare la tabella o aggiornare.
  • veloce in termini di creazione di record. (Salvandoli può richiedere molto tempo)

Inoltre oltre a SQLite come dati fondamentali di back-end possono utilizzare XML o in formato binario per la memorizzazione dei dati su disco.

+0

Grazie mille per aver condiviso questo. – swiftBoy

2

SQLite

funzione primaria è la memorizzazione e il recupero dei dati

Funziona con dati memorizzati su disco (o minimamente e incrementale caricata)

Memorizza dati "non intelligenti"

può essere transazionale, thread-safe, multiuso

Perpetuo salvato in disco (e spesso arresto resiliente)

può essere lento per creare milioni di nuove righe

Offerte vincoli di dati come chiavi "unici"

Core Data

funzione primaria è la gestione grafico (sebbene la lettura e la scrittura su disco siano importanti funzioni di supporto)

Funziona su oggetti archiviati in memoria (sebbene possano essere caricati pigramente dal disco)

funziona con gli oggetti a pieno titolo che l'auto-gestire un sacco di loro comportamento e può essere sottoclasse e personalizzato per ulteriori comportamenti

non transazionali, a thread singolo, singolo utente (a meno che non si crea un intero un'astrazione intorno core i dati che fornisce queste cose)

Richiede un processo di salvataggio

Leaves vincoli dati al lato logica di business del programma