2011-07-12 27 views
19

Cuál es la diferencia básica entre coredata y sqlite, ya que ambas son bases de datos y se pueden usar con el desarrollo de IOS. y también dime cuál es mejor para guardar y recuperar datos de gran tamañoDiferencia entre coredata y sqlite

+3

posible duplicado de [Core de datos SQLite vs 3] (http: // stackoverf low.com/questions/523482/core-data-vs-sqlite-3) – Abizern

+1

también un posible duplicado de [¿Usar CoreData o SQLite en iPhone?] (http://stackoverflow.com/questions/1318467/use-coredata- or-sqlite-on-iphone) –

Respuesta

68

Hay una gran diferencia entre estos dos. SQLLite es una base de datos en sí misma, como tenemos MS SQL Server. Pero CoreData es un ORM (modelo relacional de objetos) que crea un layer entre database y UI. Es speeds-upprocess de interacción ya que no tenemos que write queries, solo trabaje con el ORM y deje que ORM maneje el back-end. Para save or retrieval of large data, recomiendo usar Core Data debido a su capacidad para manejar la menor velocidad de procesamiento del dispositivo. Espero que esto ayude.

@Arundhati: Al utilizar los datos centrales, podemos optimizar la memoria de manera eficiente.

Atentamente.

+1

Además de lo anterior, al utilizar los datos centrales, podemos optimizar la memoria de manera eficiente. – sample

+0

Sqlite no es ORM ... su administrador de gráfico de objetos – King

+0

De acuerdo con http://stackoverflow.com/a/524301/399741, Core Data no es un ORM. –

1

Al utilizar los datos centrales, podemos optimizar la memoria de manera eficiente.

+0

incorrecto; si crea un proyecto complejo, nunca use coredata .... – user1005462

3

Hay una gran diferencia entre coredata y sqlite.

La información principal en sí misma no es una base de datos, es solo un sistema de seguimiento de cambios, un envoltorio sobre las tiendas persistentes como SQLite (recuperar, guardar objetos en la tienda persistente). Puede tener SQLite como su RDBMS subyacente y coredata se puede utilizar como una capa para gestionar el cambio de las propiedades de las tablas (deshacer, rehacer, restablecer los cambios), también se optimiza en la gestión de la memoria (fallas).

15

Además de ser ORM (Modelo relacional de objetos) Puede comparar Core-Data y SQLite como;

SQLite:

  • característica de tener datos constriñe.
  • Funciona con datos almacenados en el disco.
  • Can Drop table y Edit data sin cargarlos en la memoria.
  • Lento en comparación con los datos del núcleo.

datos básicos:

  • No tiene limitaciones de los datos, si es necesario necesidad de implementar la lógica de negocio.
  • Opera en la memoria. (Los datos deben cargarse desde el disco a la memoria)
  • Necesitamos cargar datos completos si necesitamos quitar la tabla o actualizar.
  • rápido en términos de creación de registros. (Ahorro de ellos puede llevar mucho tiempo)

Además, aparte de SQLite como datos básicos de back-end pueden utilizar XML o formato binario para almacenar datos en el disco.

+0

Muchas gracias por compartir esto. – swiftBoy

2

SQLite

función principal es almacenar y recuperar datos

Funciona con los datos almacenados en el disco (o mínimamente y de manera progresiva cargado)

almacenes de datos "tontas"

Puede ser transaccional, seguro para subprocesos, de uso múltiple

Perpetuamente guardado en disco (y, a menudo accidente resiliente)

puede ser lento para crear millones de nuevos filas

Ofrece limitaciones de datos como las teclas "únicas"

Core Data

función principal es la gestión de gráficos (aunque leer y escribir en el disco es una función de soporte importante)

Opera en objetos almacenados en la memoria (aunque pueden cargarse de forma perezosa desde el disco)

Funciona con objetos de pleno derecho que la auto-gestionar una gran parte de su comportamiento y puede tener subclases y personalizados para más comportamientos

no transaccionales, de un solo subproceso, un solo usuario (a menos que se crea una abstracción de todo alrededor del núcleo los datos que proporciona estas cosas)

Requiere un proceso de guardado

Hojas limitaciones de los datos a un lado la lógica de negocio del programa