عندما طورت SAP قاعدة البيانات المُضمّنة بالذاكرة HANA، اكتشفوا أن تطبيقاتهم هي أسوأ أعداء قاعدة البيانات الجديدة المُضمّنة بالذاكرة. أدركت SAP أنه يجب تحسين تطبيقاتها للاستفادة من HANA. لكن في حين أن SAP لم تضع في اعتبارها سوى HANA، فإن قواعد البيانات الغنية بالميزات مثل Oracle يمكنها دعم نفس التحسينات والاستفادة منها.
اعتادت SAP التفكير في قاعدة البيانات بصفتها مخزن بيانات غامض. عندما يريد المستخدم القيام بشيء مُفيد باستخدام البيانات، يجب نقله، لأن التحليل الذكي يبقى في SAP Application Server.
عيوب هذا النهج واضحة: إذا كان مجموع مليون قيمة تحتاج إلى حساب وإذا كانت هذه القيم تمثل المال بعملات مختلفة، يتم نقل مليون قيمة فردية من خادم قاعدة البيانات إلى خادم التطبيق - ليتم التخلص منه بعد الانتهاء من الحساب فحسب. إن حركة مرور الشبكة الناتجة عن هذا النهج مسؤولة عن الأداء السيئ.
استجابة لهذه الرؤى، طورت SAP استراتيجية "النقل لأسفل": دفع التعليمات البرمجية التي تتطلب عمليات حسابية كثيفة البيانات من طبقة التطبيق إلى طبقة قاعدة البيانات. طورت نموذج برمجة جديدًا تمامًا يسمح للتعليمة البرمجية ABAP (ضمنيًا أو صريحًا) باستدعاء الإجراءات المخزنة في قاعدة البيانات. وحددت مكتبة من الإجراءات القياسية، تُسمى SAP NetWeaver Core Data Services (CDS).
قبل 20 عامًا، كانت Oracle لديها بالفعل الفكرة نفسها واتخذت القرار نفسه. حسب الإصدار 7، تتيح Oracle Database للمطورين إنشاء إجراءات ووظائف يمكن تخزينها وتشغيلها داخل قاعدة البيانات. لذلك كان من الممكن توفير CDS لـ Oracle Database أيضًا، ويمكن لمطوري تطبيقات SAP اليوم الاستفادة منها.
تم تحديد نماذج بيانات SAP (مجموعة الجداول التي يستخدمها التطبيق والعلاقات بينها) منذ 15 أو 20 عامًا وتحسينها لقواعد البيانات الموجهة للقرص. لكن، كما اتضح، ما ظهر على أنهتحسين في عصر الحوسبة المستندة إلى القرص هو عقبة في عصر الحوسبة داخل الذاكرة.
إن المثال الأشهر هو على الأرجح الهيكل الداخلي لمكعب SAP BW. ما يبدو من منظور العمل أو المستخدم مثل "مكعب" واحد، هو في الواقع مجموعة من الجداول المُتعددة، ويمكن وصف العلاقات بينها على أنها تدرج مُتعدد المستويات ("مُخطط "نجمي" أو "snowflake"). تعمل هذه البنية المُعقدة، التي تتطلب العديد من الروابط عند تنفيذ استعلام أو تقرير، على إبطاء قواعد البيانات المُضمنة في الذاكرة بشكل كبير. لذلك، صممت SAP نموذج بيانات جديد أبسط لـ SAP BW على HANA، وبالتالي سُميت HANA-Optimized InfoCubes. لكن لم يتم تحسين نموذج البيانات الجديد هذا لـ HANA فحسب. تم تحسينه للحوسبة المُضمّنة بالذاكرة بشكل عام. لذلك، SAP بالنسبة إلى مستخدمي Oracle الذين نشطوا Oracle Database In-Memory يمكن تنفيذه أيضًا، الفرق الوحيد هو الاسم (Flat InfoCubes أو ببساطة Flat Cubes).
تحسين أقل شهرة، مع ذلك مُهم، إنه إلغاء تجميع الجدول. يخزن جدول المجموعة سجلاً كاملاً (منطقيًا) في عمود جدول واحد (فعلي). يمكن تفسير هذه القيمة المُعقدة من SAP Application Server، لكن ليس بواسطة خادم قاعدة بيانات - مما يعني أن الانتقال للأدنى للتعليمات البرمجية غير ممكن، إذا كان ثمة جدول مجموعة متداخل. لذلك تدعم SAP الآن إلغاء تجميع الجداول لـ HANA وكذلك لـ Oracle Database.
لا تقتصر مزايا إطار CDS الموضحة للتو على تطبيقات SAP بأي حال من الأحوال (أي التطبيقات القياسية التي أنشأها مطورو SAP). بالنسبة للعملاء، تعد التطبيقات المحلية جزءًا أساسًا من بيئة SAP. يمكن للعديد من هذه التطبيقات الاستفادة بشكل كبير من استخدام ميزات CDS.
يمكن الكشف عن طرق عرض CDS عبر OData. استنادًا إلى كشف OData عن CDS، من السهل إنشاء تطبيقات SAP Fiori باستخدام إطار التطوير SAP WEB IDE. للحصول على تفاصيل، راجع تقرير ABAP Core Data Services على anyDB.