بيانات أساسية
Core Data هو إطار عمل لرسم بياني للكائنات وتخزينها ، توفره Apple لأنظمة التشغيل macOS و iOS . تم تقديمه في نظامي التشغيل Mac OS X 10.4 Tiger و iOS مع حزمة تطوير البرامج (SDK) الخاصة بـ iPhone 3.0. [ 1 ] يسمح Core Data بتحويل البيانات المنظمة وفقًا لنموذج الكيان-الخاصية العلائقي إلى سلاسل نصية بتنسيق XML أو ثنائي أو SQLite . يمكن معالجة البيانات باستخدام كائنات عالية المستوى تمثل الكيانات وعلاقاتها. يتولى Core Data إدارة النسخة المُسلسلة، موفرًا إدارة دورة حياة الكائن ورسمه البياني ، بما في ذلك التخزين . يتكامل Core Data مباشرةً مع SQLite ، مما يعزل المطور عن لغة SQL الأساسية . [ 2 ]
كما تتولى روابط Cocoa العديد من مهام وحدة التحكم في تصميم نموذج-عرض-متحكم ، تتولى Core Data العديد من مهام نموذج البيانات. ومن بين مهامها الأخرى، إدارة التغييرات، والتسلسل إلى القرص، وتقليل استهلاك الذاكرة ، والاستعلامات على البيانات.
الاستخدام
يصف Core Data البيانات بنموذج بيانات عالي المستوى يُعبّر عنه من حيث الكيانات وعلاقاتها، بالإضافة إلى طلبات جلب البيانات التي تسترجع الكيانات التي تستوفي معايير محددة. يمكن للبرنامج استرجاع هذه البيانات ومعالجتها على مستوى الكائنات فقط، دون الحاجة إلى القلق بشأن تفاصيل التخزين والاسترجاع. تستطيع كائنات التحكم المتوفرة في Interface Builder استرجاع هذه الكيانات ومعالجتها مباشرةً. عند دمجها مع روابط Cocoa، يمكن لواجهة المستخدم عرض العديد من مكونات نموذج البيانات دون الحاجة إلى كتابة أي كود برمجي في الخلفية.
على سبيل المثال: قد يقوم مطور بكتابة برنامج لإدارة بطاقات vCard . ولإدارة هذه البطاقات، يعتزم المطور قراءة بياناتها وتحويلها إلى كائنات، ثم تخزينها في ملف XML واحد أكبر. باستخدام Core Data، يقوم المطور بسحب مخطط البيانات من مصمم البيانات في Xcode إلى نافذة مُنشئ الواجهات لإنشاء واجهة رسومية (GUI) خاصة به. بعد ذلك، يمكنه كتابة كود Objective-C أو Swift قياسي لقراءة ملفات vCard ووضع البيانات في كيانات مُدارة بواسطة Core Data. من هذه النقطة فصاعدًا، يتعامل كود المطور مع كائنات Core Data هذه، بدلاً من بطاقات vCard نفسها. Saveسيؤدي ربط عنصر القائمة بالطريقة المناسبة في كائن وحدة التحكم إلى توجيه وحدة التحكم لفحص مكدس الكائنات، وتحديد الكائنات التي طرأت عليها تغييرات ، ثم إعادة كتابة ملف مستند Core Data بهذه التغييرات.
يتم تنظيم البيانات الأساسية في تسلسل هرمي كبير من الفئات، على الرغم من أن التفاعل شائع فقط مع مجموعة صغيرة منها.
| اسم | يستخدم | الأساليب الرئيسية |
|---|---|---|
| NSManagedObject |
|
|
| NSManagedObjectContext |
|
|
| NSManagedObjectModel |
|
|
| NSFetchRequest |
|
|
| منسق المتجر الدائم NSPersistentStoreCoordinator |
|
|
| NSPredicate |
|
|
تنسيقات التخزين
يُمكن لـ Core Data تحويل الكائنات إلى XML أو بيانات ثنائية أو SQLite للتخزين. [ 2 ] مع إصدار نظام التشغيل Mac OS X 10.5 Leopard ، أصبح بإمكان المطورين إنشاء أنواع تخزين ذرية مخصصة . لكل طريقة مزاياها وعيوبها، مثل سهولة قراءة XML أو كفاءة استخدام الذاكرة (SQLite).
يشبه هذا الجزء من Core Data نظام Enterprise Objects Framework (EOF) الأصلي، حيث يُمكن كتابة استعلامات متطورة إلى حدٍ ما. على عكس EOF، لا يُمكن كتابة استعلامات SQL مخصصة، لأن قاعدة البيانات الأساسية قد لا تكون مبنية على SQL. مؤخرًا، أُتيح مخزن Core Data لـ ODBC ضمن إطار عمل ODBC . [ 6 ]
تتميز مخططات Core Data بمعيارية موحدة. إذا كان لديك ملف نموذج بيانات Xcode، يمكنك قراءة وكتابة الملفات بهذا التنسيق بحرية. مع ذلك، وعلى عكس EOF، فإن Core Data غير مصمم حاليًا للوصول المتعدد المستخدمين أو المتزامن إلا إذا كنت تستخدم إطار عمل ODBC. [ 6 ]
تُعدّ عملية ترحيل المخطط عملية معقدة، وتتطلب في أغلب الأحيان كتابة كود برمجي. إذا كان لدى مطورين آخرين إمكانية الوصول إلى نموذج بياناتك ويعتمدون عليه، فقد تحتاج إلى توفير كود لترجمة الإصدارات بالإضافة إلى نموذج بيانات جديد في حال تغيير المخطط.
التاريخ والنشأة
يعود الفضل في تصميم Core Data إلى حد كبير إلى منتج سابق من NeXT ، وهو Enterprise Objects Framework (EOF). [ 7 ]
كانت EOF عبارة عن نظام ربط بين الكائنات وقواعد البيانات العلائقية لمحركات قواعد بيانات SQL المتطورة مثل Microsoft SQL Server و Oracle . كان لـ EOF غرضان: أولهما، الاتصال بمحرك قاعدة البيانات وإخفاء تفاصيل التنفيذ؛ وثانيهما، قراءة البيانات من تنسيقها العلائقي وتحويلها إلى مجموعة من الكائنات. عادةً ما كان المطورون يتفاعلون مع الكائنات فقط، مما سهّل تطوير البرامج المعقدة، على حساب بعض الإعدادات لربط البيانات بالكائنات. صُمم نموذج كائنات EOF عمدًا لجعل البرامج الناتجة تعمل بطريقة شبيهة بالمستندات؛ حيث يمكن للمستخدم تعديل البيانات محليًا في الذاكرة، ثم حفظ جميع التغييرات بأمر حفظ واحد.
على مرّ تاريخها، احتوت EOF على عدد من أجزاء الشيفرة المفيدة التي لم تكن متاحة في NeXTSTEP / OpenStep . على سبيل المثال، تطلّبت EOF القدرة على تتبّع الكائنات التي طرأت عليها تغييرات حتى يتمكّن النظام من كتابتها لاحقًا. عُرض هذا للمطور ليس فقط كنظام شبيه بالمستندات، بل أيضًا في شكل مكدس أوامر تراجع غير محدود، حيث يُمثّل كل أمر يُطبّق على البيانات إجراءً قابلاً للتراجع. اشتكى العديد من المطورين من أن شيفرة إدارة الحالة هذه كانت مفيدة للغاية بحيث لا يمكن عزلها في EOF، ونُقلت لاحقًا إلى واجهة برمجة تطبيقات Cocoa أثناء الانتقال إلى نظام التشغيل Mac OS X.
في البداية، لم تتم ترجمة EOF نفسها. كانت EOF تُستخدم بشكل أساسي مع منتج آخر من حقبة OpenStep، وهو WebObjects ، الذي كان خادم تطبيقات مبنيًا في الأصل على لغة Objective-C . في ذلك الوقت، كانت Apple بصدد نقل WebObjects إلى لغة برمجة Java ، وكجزء من هذا التحويل، أصبح استخدام EOF من Cocoa أكثر صعوبة. ومرة أخرى، كثرت الشكاوى بين مطوري الطرف الثالث.
من أهم الاستنتاجات أن نظام إدارة حالة الكائنات في EOF لم يكن مرتبطًا فعليًا بقواعد البيانات العلائقية. فقد كان بإمكان المطورين استخدام نفس الشيفرة، بل واستُخدمت بالفعل، لإدارة رسوم بيانية لكائنات أخرى. وفي هذا السياق، كانت الأجزاء المفيدة حقًا في EOF هي تلك التي تُنشئ مجموعات الكائنات تلقائيًا من البيانات الأولية، ثم تتعقبها. وهذا المفهوم هو الذي يُشكل أساس Core Data.
ملحوظات
مراجع
- شركة آبل (17 سبتمبر 2009). "دليل برمجة Core Data". تم استرجاعه من https://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/CoreData/cdProgrammingGuide.html
- شركة آبل (9 سبتمبر 2009). "دليل استخدام Core Data لنظام تشغيل iPhone". تم استرجاعه من https://developer.apple.com/iphone/library/documentation/DataManagement/Conceptual/iPhoneCoreData01/Introduction/Introduction.html
- شركة آبل (2006). "دليل مستخدم EOModeler". تم استرجاعه من https://developer.apple.com/legacy/mac/library/documentation/WebObjects/UsingEOModeler/Introduction/Introduction.html#//apple_ref/doc/uid/TP30001018-CH201-TP1
- جورويتز، م. وشركة آبل (2010). "فيديوهات تطوير تطبيقات آيفون: العمل مع Core Data". تم استرجاعها من https://developer.apple.com/videos/iphone/#video-advanced-coredata
- ستيفنسون، س. (2005). "نظرة عامة على فئات البيانات الأساسية". تم الاسترجاع من http://cocoadevcentral.com/articles/000086.php
- زارا، ماجستير (2009). Core Data: واجهة برمجة تطبيقات Apple لحفظ البيانات على نظام التشغيل Mac OS X. المبرمجون العمليون.
- لامارش، ج.، ومارك، د. (2009). المزيد من تطوير آيفون 3: معالجة حزمة تطوير البرامج (SDK) الخاصة بآيفون 3. أبريس.
روابط خارجية
- شركة آبل (2018). "البيانات الأساسية". تم الاسترجاع من https://developer.apple.com/documentation/coredata
- شركة آبل (2009). "دليل استخدام كائنات الويب". تم استرجاعه من https://developer.apple.com/legacy/mac/library/documentation/DeveloperTools/Conceptual/WOTutorial/Introduction/Introduction.html
- CocoaDev. (بدون تاريخ). تم الاسترجاع من https://web.archive.org/web/20080801025517/http://www.cocoadev.com/
- GitHub. "إطار عمل ODBC". https://github.com/mhakman/osx-cocoa-odbc
- شركة mFluent LLC. "عرض ملفات بيانات Core Data الدائمة". https://github.com/yepher/CoreDataUtility
- ستيفنسون، س. (2005). "بناء تطبيق Core Data". تم الاسترجاع من http://cocoadevcentral.com/articles/000085.php
- واجهات برمجة تطبيقات نظام التشغيل macOS
- نمذجة البيانات
- برامج إدارة البيانات
- المثابرة
- أوبجكتيف سي
- التالي
