أكثر

هل تستخدم الهندسة بدلاً من أنواع البيانات الجغرافية في SQL Server Spatial؟


من الناحية التاريخية ، عملت بشكل أساسي مع إحداثيات خطوط الطول والعرض البسيطة في خادم SQL. لقد قمت بتخزينها كنوع بيانات جغرافي في SQL Server ، وعرضتها على مجموعة متنوعة من شاشات العرض (خرائط Google بشكل أساسي).

لقد بدأت مؤخرًا العمل مع مجموعات بيانات ذات أشكال مختلفة من مصادر مختلفة ، وهي عبارة عن هندسة على وجه الحصر تقريبًا. علاوة على ذلك ، يستخدمون مجموعة متنوعة من الأنظمة المرجعية للإحداثيات.

من الجنون العمل معه.

  • تستخدم هيئة المسح الجيولوجي الأمريكية ، لبعض بياناتها ، CRS نادرًا جدًا ويصعب التعرف عليه.
  • تقول مقاطعة Los Angels أنها تستخدم طائرة State Plane 5 (بدون الإشارة إلى CRS على وجه التحديد) ، وبالطبع هناك العديد من "طائرة الدولة 5" للاختيار من بينها في QGIS.

هل هناك حقًا بعض المزايا لهذه الأنظمة المرجعية المكانية المعينة التي لا يمكن تحقيقها من خلال التمسك بـ WGS84 ، مع الأخذ في الاعتبار أن غالبية الأشخاص الذين يشاهدونها ويستهلكونها سيرغبون في ذلك بهذا التنسيق؟


هناك إجابة جيدة في Stack Overflow ، وهي عبارة عن شيء مثل هذا:

نوع الجغرافيا أكثر تقييدًا قليلاً من الهندسة. لا يمكن أن تعبر نصفي الكرة المختلفين ويجب رسم الحلقة الخارجية عكس اتجاه عقارب الساعة.

يمكن العثور على الباقي في نوع بيانات الجغرافيا مقابل نوع بيانات الهندسة في SQL Server.

تقدم مقالة Geometry vs Geography في SQL من مدونة Trenches مزيدًا من التفاصيل:

إذا كنت تبحث عن أكبر فرق بين نوعي البيانات ، فسترى أنها الوظيفة. كائن الهندسة هو مجرد مضلع مسطح ثنائي الأبعاد. هذا يعني أنه لا يهم إذا كنت تأخذ دولة على سطح الأرض (على سبيل المثال كندا ، وهي "منحنية") ، أو دولة قريبة من خط الاستواء (على سبيل المثال البرازيل ، وهي "مسطحة").

من ناحية أخرى ، فإن كائن الجغرافيا هو مضلع ثلاثي الأبعاد (أو حتى رباعي الأبعاد) ، له نفس منحنى شكل الأرض. هذا يعني أن الفرق بين نقطتين لا يتم حسابه في خط مستقيم ، ولكن يجب مراعاة انحناء الأرض.

هناك اختلاف مهم آخر يتمثل في القدرة على تخزين بياناتك في أنظمة إحداثيات قياسية ، مثل NAD_1983_StatePlane_California Zone 5 ، واستخدام جميع إمكانيات قاعدة البيانات المكانية ، والوظائف المكانية ، وما إلى ذلك ، والأهم من ذلك الدقة المكانية لنظام إحداثيات محلي - مع الالتزام الجغرافيا كنوع بياناتك ، يمكنك فقط تخزين بياناتك في WGS84.

لذا أود أن أقول إذا كان لديك الخيار ، اذهب مع الهندسة ، واستخدم EPSG: 102645/102245 (سيتعين عليك التحقق من "منطقة مستوى المستوى 5" القياسية لـ SoCal) وستكون جاهزًا لأي التحليل الذي تريد إجراؤه. إذا كنت ترغب في المشاركة ، فقم بتصدير مجموعات البيانات الخاصة بك إلى WGS84 إذا كان ذلك مفضلاً للمشاركة.


ربما تحقق من خصائص أنظمة الإحداثيات المتوقعة ، للحصول على نظرة عامة على فائدتها؟

هناك 3 جوانب أو خصائص معروضة في أنظمة الإحداثيات المتوقعة التي تحدد فائدتها ومبرراتها. أي إسقاط لمساحة ثلاثية الأبعاد على سطح ثنائي الأبعاد سيظهر بالطبع تشويهًا مقابل الواقع. اعتمادًا على التطبيق الخاص بك ، يمكن أن يضمن استخدام نظام إحداثيات Projected معين تمثيلًا أكثر دقة للواقع ، وفي بعض التطبيقات ، تعتبر دقة الحبوب الدقيقة أمرًا مهمًا.

ثلاث خصائص لأنظمة الإحداثيات المتوقعة. يمكن أن يكون لديك الكمال في البعض ، ولكن لا يمكنك أبدًا الكمال في الكل:

متساوي البعد - المسافات (من مكان معين) الموضحة على الخريطة صحيحة في الواقع.

امتثالي - عند التكبير ، تكون الزوايا الموضحة على الخريطة مطابقة للواقع.

منطقة متساوية - المساحات المسجلة على الخريطة تساوي مساحات الأشياء في الواقع.


في كاليفورنيا ، تستخدم مكاتب المساحين إسقاط لامبرت المخروطي المطابق وتقسم الولاية إلى مناطق لتقليل التشوهات. طائرة الدولة 5 هي واحدة من تلك المناطق.

http://www.conservation.ca.gov/cgs/information/geologic_mapping/state_plane


تحديث

طرحErik Philips القدرة على إجراء عمليات بحث عن قرب باستخدام الجغرافيا ، وهو أمر رائع جدًا.

من ناحية أخرى ، يُظهر الاختبار السريع أن التحديد البسيط للحصول على خط العرض وخط الطول يكون أبطأ بشكل ملحوظ عند استخدام الجغرافيا (التفاصيل أدناه). ، والتعليق على الإجابة المقبولة لسؤال SO آخر حول الجغرافيا يثير قلقي:

SaphuA على الرحب والسعة. كإجراء جانبي ، يجب الحرص الشديد على استخدام فهرس مكاني على عمود نوع بيانات جغرافي قابل للقيمة. هناك بعض المشكلات الخطيرة في الأداء ، لذا تأكد من أن العمود الجغرافي غير قابل للإلغاء حتى إذا كان عليك إعادة تشكيل مخططك. - توماس 18 يونيو الساعة 11:18

الكل في الكل ، مع تقييم احتمالية إجراء عمليات البحث عن قرب مقابل المقايضة في الأداء والتعقيد ، قررت التخلي عن استخدام الجغرافيا في هذه الحالة.

تفاصيل الاختبار الذي أجريته:

لقد أنشأت جدولين ، أحدهما يستخدم الجغرافيا والآخر يستخدم النظام العشري (9،6) لخط العرض وخط الطول:

وأدرجت صفًا واحدًا باستخدام نفس قيم خطوط الطول والعرض في كل جدول:

أخيرًا ، يُظهر تشغيل الكود التالي أنه ، على جهازي ، يكون تحديد خط العرض وخط الطول أبطأ بنحو 5 مرات عند استخدام الجغرافيا.

الأمر الأكثر إثارة للدهشة هو أنه حتى في حالة عدم تحديد أي صفوف ، على سبيل المثال تحديد مكان RowId = 2 ، وهو أمر غير موجود ، كانت الجغرافيا لا تزال أبطأ:


استنتاج

لتطوير تطبيق مدرك للموقع ، يجب أن يكون لديك حل لتخزين البيانات للبيانات المكانية. يوفر SQL Server 2008 دعمًا للبيانات الجغرافية من خلال تضمين أنواع بيانات مكانية جديدة ، والتي يمكنك استخدامها لتخزين المعلومات المستندة إلى الموقع ومعالجتها. تأتي أنواع البيانات الأصلية هذه في شكل نوعين جديدين من البيانات. نوع البيانات الجغرافية للبيانات المكانية الجيوديسية ونوع البيانات الهندسية للبيانات المكانية المستوية.

هذه المقالة هي الرابعة في سلسلة. المقالات الأخرى في السلسلة هي:


مقاطع قوس دائرية

يمكن أن تأخذ ثلاثة أنواع قابلة للحساب مقاطع قوس دائرية: CircularString, كومباوند كيرف، و منحنى مضلع. يتم تعريف مقطع القوس الدائري بثلاث نقاط في مستوى ثنائي الأبعاد ولا يمكن أن تكون النقطة الثالثة هي نفسها النقطة الأولى. أمثلة قليلة على مقاطع القوس الدائري:

يوضح المثالان الأولان مقاطع قوس دائرية نموذجية. لاحظ كيف تقع كل نقطة من النقاط الثلاث على محيط الدائرة.

يوضح مثالان آخران كيف يمكن تعريف مقطع خطي على أنه مقطع قوس دائري. لا تزال هناك حاجة إلى ثلاث نقاط لتحديد مقطع القوس الدائري على عكس مقطع خط عادي ، والذي يمكن تحديده بنقطتين فقط.

تستخدم الطرق التي تعمل على أنواع مقاطع القوس الدائري مقاطع مستقيمة لتقريب القوس الدائري. يعتمد عدد مقاطع الخط المستخدمة لتقريب القوس على طول القوس وانحناءه. يمكن تخزين قيم Z لكل نوع من أنواع مقاطع القوس الدائري ، لكن لن يتم استخدامها في الحسابات.

إذا تم إعطاء قيم Z لمقاطع القوس الدائري ، فيجب أن تكون هي نفسها لجميع النقاط في مقطع القوس الدائري حتى يتم قبولها للإدخال. على سبيل المثال: تم قبول CIRCULARSTRING (0 0 1، 2 2 1، 4 0 1) ، ولكن CIRCULARSTRING (0 0 1، 2 2 2، 4 0 1) غير مقبولة.

مقارنة LineString و CircularString

يوضح هذا المثال كيفية تخزين مثلثات متساوية الساقين متطابقة باستخدام كلا من a LineString المثال و CircularString مثل:

لاحظ أن أ CircularString يتطلب المثال سبع نقاط لتحديد المثلث. LineString يتطلب المثال أربع نقاط فقط لتحديد المثلث. والسبب في ذلك هو أن أ CircularString يخزن المثيل مقاطع قوس دائرية وليس مقاطع خطية. جوانب المثلث المخزنة في CircularString المثال هو ABC و CDE و EFA. جوانب المثلث المخزنة في LineString المثال هو AC و CE و EA.

ضع في اعتبارك المثال التالي:

CircularString تستخدم المثيلات نقاطًا أقل لتخزين حدود المنحنى بدقة أكبر من LineString حالات. CircularString المثيلات مفيدة لتخزين الحدود الدائرية مثل نصف قطر البحث 20 ميلًا من نقطة معينة. LineString تعد الأمثلة جيدة لتخزين الحدود الخطية مثل كتلة مدينة مربعة.

مقارنة LineString و CompoundCurve

توضح أمثلة التعليمات البرمجية التالية كيفية تخزين نفس الشكل باستخدام LineString و كومباوند كيرف الأمثلة:

في الأمثلة أعلاه ، إما أ LineString مثال أو أ كومباوند كيرف يمكن أن يخزن المثال الرقم. يستخدم هذا المثال التالي ملف كومباوند كيرف لتخزين شريحة فطيرة:

أ كومباوند كيرف يمكن للمثال تخزين مقطع القوس الدائري (2 2 ، 1 3 ، 0 2) مباشرة ، ولكن أ LineString سيتعين على المثال تحويل المنحنى إلى عدة مقاطع خط أصغر.

مقارنة CircularString و CompoundCurve

يوضح مثال الكود التالي كيف يمكن تخزين شريحة الفطيرة في ملف CircularString مثل:

تخزين شريحة الفطيرة باستخدام ملف CircularString يتطلب المثال استخدام ثلاث نقاط لكل مقطع خطي. إذا كانت النقطة الوسيطة غير معروفة ، فيجب إما حسابها ، أو مضاعفة نقطة نهاية مقطع الخط كما يظهر المقتطف التالي:

كومباوند كيرف تسمح الحالات على حد سواء LineString و CircularString بحيث يلزم معرفة نقطتين فقط إلى المقاطع المستقيمة للشريحة الدائرية. يوضح مثال الرمز هذا كيفية استخدام ملف كومباوند كيرف لتخزين نفس الشكل:

مقارنة المضلع والمنحنى

منحنى مضلع يمكن استخدام الحالات CircularString و كومباوند كيرف حالات عند تحديد حلقاتها الخارجية والداخلية. مضلع لا يمكن للحالات.


ما هو الفرق بين أنواع البيانات المكانية

ما الفرق بين نوعي البيانات المكانية في SQL Server 2008؟ أعلم أنهما جغرافيا وهندسة ، لكن كيف يختلفان؟

Тим пользователям нравится это

4 тветов

твет بوب هوفيوس · 22/10/09 00:04

تتعامل البيانات الهندسية مع النقاط والخطوط والمنحنيات والمساحات على الأسطح المستوية ، بينما تتعامل البيانات الجغرافية مع هذه "الكائنات" نفسها التي تم تعيينها على سطح الأرض. أقول سطح الأرض ، وليس سطحًا منحنيًا ، لأن الأرض ليست كرة كاملة. تنتفخ في المنتصف.

يتم تعريف الكائنات في النظام الهندسي بأزواج إحداثيات تكون ببساطة نقاط X و Y على شبكة مسطحة. يتم تعريف الكائنات في النظام الجغرافي باستخدام أزواج الإحداثيات التي تمثل خطوط الطول والعرض. التمييز الحاسم تمامًا هو من حيث الحجم والمسافة والتشويه.

المسافة هي أسهل مثال. في نظام إحداثيات هندسي ، يمكن حساب المسافة بين نقطتين باستخدام نظرية فيثاغورس وإحداثيات x و y للنقطتين المعنيتين.

هذا لا يعمل مع أزواج خطوط الطول / العرض في نظام جغرافي بسبب انحناء الأرض. عندما تسافر بين نقطتين على الكرة الأرضية ، فأنت تسافر في منحنى. (تطير الخطوط الجوية بشكل روتيني مسارات تبدو وكأنها منحنيات كبيرة إذا تم رسمها على خريطة حائط ، ولكنها أقصر مسافة عند رسمها على الكرة الأرضية.)

كما أنه لا يعمل بسبب طبيعة إحداثيات خطوط العرض / الطول. هل سبق لك أن لاحظت كيف تسير الخطوط الأفقية (خط العرض) على الكرة الأرضية بشكل متوازي ، بينما تقترب الخطوط العمودية (خط الطول) من بعضها البعض عندما تكون بالقرب من القطبين؟ إذا كانت نقطتان على خط الاستواء تفصل بينهما درجة واحدة تمامًا من خط الطول ، فهما على مسافة أبعد من نقطتين في ألاسكا أو جنوب إفريقيا تفصل بينهما درجة واحدة تمامًا. تذكر أن جميع خطوط الطول تتلاقى عند القطبين ، لذلك إذا كانت قريبة من القطب الشمالي أو الجنوبي ، فإن درجة الفصل ستُترجم إلى بضع بوصات فقط.

من الواضح أن تأثير المسافة يشوه أيضًا الحجم والشكل. ولكن عند استخدام أنواع البيانات الجغرافية ، فإن الوظائف المضمنة للمسافة والمساحة تمثل جميع تقلبات الأرض المستديرة.

أصبحت أنظمة الخرائط الجغرافية أكثر دقة بمرور الوقت ، ويمكن تعريف نوع البيانات الجغرافية من حيث عدد من المعايير المختلفة ، لكل منها رقم فريد في MS-SQL. من المهم أن تكون على دراية بهذا ، لأنك قد تقوم بتحميل البيانات من مصدر يستخدم معيارًا مختلفًا عن الذي تستخدمه كمعيار افتراضي في قاعدة البيانات الخاصة بك. يمكن أن تترجم الإجراءات المكانية في SQL ذلك من أجلك ، طالما أنك تحدده بشكل صحيح.


أنواع البيانات النصية

إذا قمت بإنشاء حقل VARCHAR أو VARCHAR (MAX) في قاعدة بيانات SQL Server ، فسيتم تعيينه إلى نوع بيانات ArcGIS TEXT عند عرضه في ArcGIS. إذا قمت بإنشاء حقل TEXT في قاعدة بيانات SQL Server من ArcGIS ، فسيتم استخدام NVARCHAR أو NVARCHAR (MAX).

في قاعدة البيانات الجغرافية للمؤسسة ، إذا تم تعيين معلمة تكوين UNICODE_STRING على FALSE وكان حقل النص 7999 حرفًا أو أقل ، فسيتم استخدام VARCHAR.

إذا تم تعيين معلمة التكوين UNICODE_STRING على FALSE وكان حقل النص 8000 حرف أو أكثر ، فسيتم استخدام VARCHAR (MAX).

إذا تم تعيين معلمة التكوين UNICODE_STRING على TRUE وكان حقل النص 3999 حرفًا ، فسيتم استخدام NVARCHAR.

إذا تم تعيين معلمة التكوين UNICODE_STRING على TRUE وكان حقل النص 4000 حرف أو أكثر ، فسيتم استخدام NVARCHAR (MAX).


تأثير

إذا كنت لا تزال معي ، فلنذهب خطوة أخرى إلى الأمام: لنفترض أنك تريد ترقية مجموعة الكائنات "الأساسية" إلى .NET Standard. لا يمكنك. لأن EF Core لا تدعم DbGeography حتى الآن. ولا يمكنك استخدام Microsoft.Spatial (أو أي من المكتبات الأخرى المذكورة) ، لأنها لا ترتبط مباشرة بـ SQL Server.

خيارك الوحيد (على الأقل ، الخيار الوحيد الذي يمكنني العثور عليه) هو إزالة خاصية DbGeography من نموذجك الأساسي ، واستخدام مشغل قاعدة البيانات لتحليل "WellKnownText" (تمثيل نصي قائم على المعايير للبيانات الجغرافية) إلى حسابك عمود "الجغرافيا" لتتمكن من تشغيل استعلامات مثل "اعرض لي جميع الشقق الواقعة على بُعد 50 ميلاً من فينيكس ، أريزونا".

أعلم أن هذا كان طويلاً ، لكن آمل أن يقدم تفسيراً لعمق المشكلة.


فهرس فريد

يتم استخدام الفهرس الفريد للحفاظ على تكامل بيانات الأعمدة التي تم إنشاؤه عليها ، من خلال التأكد من عدم وجود قيم مكررة في مفتاح الفهرس وصفوف الجدول التي تم إنشاء هذا الفهرس عليها. يضمن ذلك أن تكون البيانات فريدة بناءً على مفتاح الفهرس ، اعتمادًا على خصائص البيانات المخزنة في عمود مفتاح الفهرس أو قائمة الأعمدة. إذا كان مفتاح الفهرس الفريد يتكون من عمود واحد ، فسوف يضمن SQL Server أن تكون كل قيمة في مفتاح الفهرس فريدة. من ناحية أخرى ، إذا كان مفتاح الفهرس الفريد يتكون من عدة أعمدة ، فيجب أن تكون كل مجموعة من القيم في مفتاح الفهرس فريدة. يمكنك تعريف الفهارس Clustered و Non-Clustered لتكون فريدة ، طالما أن البيانات الموجودة في مفاتيح الفهرس هذه فريدة.

سيتم إنشاء فهرس فريد تلقائيًا عند تحديد قيود المفتاح الأساسي أو مفتاح فريد على الأعمدة المحددة. في جميع الحالات ، يوصى بشدة بإنشاء فهرس فريد على البيانات الفريدة ، بدلاً من إنشاء فهرس غير فريد على نفس البيانات ، حيث سيساعد مُحسِّن استعلام SQL Server على إنشاء خطة التنفيذ الأكثر كفاءة بناءً على العناصر الإضافية المعلومات المفيدة التي يوفرها هذا الفهرس.

افترض أننا بحاجة إلى إنشاء الجدول أدناه ، باستخدام عبارة CREATE TABLE T-SQL أدناه ، دون تحديد أي عبارة CREATE INDEX ، كما هو موضح أدناه:

سترى أنه سيتم إنشاء فهرس فريد متفاوت المسافات تلقائيًا في عمود المعرف في ذلك الجدول ، لفرض قيد PRIMARY KEY ، وسيتم إنشاء فهرس فريد غير متفاوت تلقائيًا في عمود الاسم لفرض قيد UNIQUE ، كما هو موضح أدناه:

ضع في اعتبارك أن الفهرس الذي يتم إنشاؤه تلقائيًا لفرض أي قيد لا يمكن إسقاطه باستخدام عبارة DROP INDEX T-SQL. إذا حاولنا إسقاط الفهرس الفريد الذي تم إنشاؤه مسبقًا لفرض قيود UNIQUE باستخدام عبارة DROP INDEX T-SQL أدناه:

ستفشل العبارة ، مما يوضح أنه لا يمكننا صراحة إسقاط أي فهرس يتم إنشاؤه تلقائيًا لفرض قيد ، كما هو موضح في رسالة الخطأ أدناه:

لإسقاط هذا الفهرس ، يجب أن نتخلص من القيد الذي أنشأ الفهرس ، باستخدام ALTER TABLE… DROP CONSTRAINT T-SQL بيان أدناه:

يمكن أيضًا إنشاء الفهرس الفريد يدويًا ، بعيدًا عن القيد ، عن طريق تحديد الكلمة الأساسية الفريدة في بيان إنشاء الفهرس Clustered أو Non-Clustered ، كما في عبارة CREATE INDEX T-SQL أدناه:

يمكن استخدام عبارة CREATE INDEX السابقة لإنشاء فهرس فريد غير متفاوت في عمود الاسم ، كما هو موضح أدناه:

يتم استخدام الفهرس الفريد لفرض الطابع الفريد لقيم مفتاح الفهرس. على سبيل المثال ، يتم استخدام الفهرس السابق للتأكد من عدم توفر قيمة مكررة لعمود الاسم في هذا الجدول. إذا حاولنا تنفيذ عبارة INSERT INTO أدناه والتي تُدرج سجلين جديدين بنفس قيم الاسم في هذا الجدول:

ستفشل العبارة ، مما يوضح أنه لا يُسمح بإدخال قيم مكررة لعمود الاسم ، والذي يتم فرضه بواسطة الفهرس الفريد الذي تم إنشاؤه ، مع توفير القيم المكررة التي تم منعها ، كما هو موضح في رسالة الخطأ أدناه:

إذا حاولنا إسقاط الفهرس الفريد ، باستخدام عبارة DROP INDEX T-SQL أدناه:

ثم قم بتنفيذ نفس عبارة INSERT INTO ، سترى أنه سيتم إدراج قيم الاسم المكررة بنجاح ، بدون أي قيود أو فهرس يفرض تفرد قيم هذا العمود ، كما هو موضح أدناه:

الآن ، إذا حاولنا إنشاء الفهرس الفريد مرة أخرى على هذا الجدول ، فستفشل عبارة CREATE INDEX ، لأن الجدول يحتوي بالفعل على قيم مكررة في عمود الاسم كما هو موضح أدناه:

لن يعمل خيار إنشاء فهرس IGNORE_DUP_KEY مع فهرس UNIQUE. إذا حاولنا تمكين هذا الخيار ، أثناء إنشاء الفهرس الفريد ، من أجل تجاهل القيم المكررة الحالية ، فسوف تفشل العبارة مرة أخرى ، مما يوضح أننا لا نستطيع إنشاء فهرس فريد بقيم مفتاح فهرس مكررة متوفرة في الجدول ، كما هو موضح في رسالة الخطأ أدناه:

لتتمكن من إنشاء الفهرس الفريد في عمود الاسم ، يجب علينا حذف القيم المكررة أو تحديثها. في حالتنا ، سنقوم بتحديث الاسم المكرر الثاني باستخدام عبارة UPDATE أدناه:

مع صفوف الجدول قبل وبعد عملية التحديث الموضحة أدناه:

في محاولة لإنشاء فهرس فريد بعد حل المشكلة المكررة ، سيتم إنشاء الفهرس الفريد بنجاح كما هو موضح أدناه:

يمكننا تضمين عمود آخر في مفتاح الفهرس الفريد لفرض تفرد مجموعة العمودين ، بدلاً من فرضه على عمود الاسم فقط. سيتم استخدام CREATE INDEX أدناه لإنشاء فهرس فريد يفرض تفرد تركيبة أعمدة المعرف والاسم:

إذا حاولنا تشغيل جملة INSERT INTO أدناه ، والتي تُدرج سجلين بنفس الاسم ، فسيتم إدراج السجلات بنجاح ، لأن عمود المعرف هو عمود IDENTITY الذي سيعين قيمًا مختلفة لكل صف مدرج من أدناه:


مقارنة نوع البيانات

كيف تقارن جميع أنواع البيانات بين كل مورد قاعدة بيانات؟ وما أنواع البيانات التي تشكل جزءًا من معيار SQL؟

ألق نظرة على هذا الجدول لمعرفة كيفية مقارنة أنواع البيانات بين البائعين. بعض أنواع البيانات شائعة في جميع قواعد البيانات المذكورة. البعض الآخر موجود فقط في قاعدة بيانات واحدة ، أو الكل ما عدا واحدة.

أنواع البيانات الرقمية لكل قاعدة بيانات

نوع البيانات وحي خادم قاعدة البيانات MySQL PostgreSQL
عدد صحيح ص ص ص ص
ذكاء ص ص ص
صغيرة ص ص
سمالينت ص ص ص ص
إضاءة متوسطة ص
كبير ص ص ص
رقمي ص ص ص ص
عدد عشري ص ص ص ص
ديسمبر ص ص
عدد ص
يطفو ص ص ص
مزدوج ص
دقة مزدوجة ص ص ص ص
حقيقة ص ص ص ص
BINARY_FLOAT ص
BINARY_DOUBLE ص
قليلا ص ص
مال ص ص
سمولوني ص
مثبت ص
صغيرة ص
مسلسل ص
كبير ص

أنواع بيانات الأحرف لكل قاعدة بيانات

نوع البيانات وحي خادم قاعدة البيانات MySQL PostgreSQL
شار ص ص ص ص
حرف ص ص
نشار ص ص
فاركار ص ص ص ص
اختلاف الحرف ص ص ص
فاركار 2 ص
NVARCHAR ص
NVARCHAR2 ص
سائل لزج ص ص
BYTEA ص
CLOB ص
NCLOB ص
نص ص ص ص
NTEXT ص
TINYBLOB ص
TINYTEXT ص
MEDIUMBLOB ص
نص متوسط ص
لونجبلوب ص
طويل ص
الثنائية ص ص
تفاوت ثنائي ص
VARBINARY ص
ENUM ص ص
جلس ص
طويل ص
الخام ص
طويل RAW ص

أنواع بيانات التاريخ لكل قاعدة بيانات

نوع البيانات وحي خادم قاعدة البيانات MySQL PostgreSQL
تاريخ ص ص ص ص
زمن ص ص ص
الوقت مع المنطقة الزمنية ص
الطابع الزمني ص ص ص
الطابع الزمني مع المنطقة الزمنية ص ص
جدول زمني مع المنطقة الزمنية المحلية ص
التاريخ ص ص
التاريخ 2 ص
فاصل من سنة إلى شهر ص
فاصل من اليوم إلى الثاني ص
فترة ص
DATETIMEOFFSET ص
وقت صغير ص
عام ص

أنواع البيانات الأخرى لكل قاعدة بيانات

نوع البيانات وحي خادم قاعدة البيانات MySQL PostgreSQL
ملف ص
بول ص
منطقي ص ص
صندوق ص
CIDR ص
دائرة ص
المؤشر ص
جغرافية ص
هندسة ص ص
جمع الهندسة ص
هيرارتشيد ص
صورة ص
إنت ص
جسون ص ص
JSONB ص
خط ص
البطانة ص
LSEG ص
ماكادر ص
MACADDR8 ص
متعدد الخطوط ص
متعددة ص
متعدد المضلعات ص
طريق ص
PG_LSN ص
هدف ص ص
مضلع ص ص
روويد ص
التجديف ص
SQL_VARIANT ص
الطاولة ص
استفسار ص
TSVECTOR ص
TXID_SNAPSHOT ص
معرف فريد ص
أورويد ص
UUID ص
XML ص ص