بانک اطلاعاتی view

 

 

 

 

 

 

 

 

 

 

 

فهرست

مقدمه

جداول مبنا و دیدگاه

معماری سه سطحی

دید ادراکی

دید خارجی

دید داخلی

زبان میزبان

زبان داده ای فرعی

 

 

جداول اوليه و ارائه شده ، جداول مبنا (base table)  ناميده مي شوند . جدولي كه توسط بعضي از عبارات رابطه اي از اين جداول مبنا بدست مي آيد ، جدول مشتق شده (driven) ناميده مي شود . بنابراين طبق تعريف ، جداول مبنا داراي وجود و موجوديت مستقل بوده (independent existence) درحالي كه جداول مشتق داراي اين تعريف نيستند ( جداول مشتق متكي به جداول مبنا هستند ) .

بنابراين مشاهده مي شود كه يك جدول مشتق دقيقا جدولي است كه برحسب جداول ديگري تعريف مي شود و واضح است كه يك جدول مبنا دقيقا يك جدول مشتق      نمي باشد .

اكنون ، سيستم هاي رابطه اي به طور مشخص بايد درمرحله اول امكاني را براي ايجاد جداول مبنا فراهم سازند، براي مثال در SQL اين مورد توسط عبارت CREATE TABLE انجام مي شود ( توجه كنيد دراينجا منظور از TABLE دقيقا جدول مبنا    مي باشد ) و به طور مشخص جداول مبنا بايد نامگذاري شوند ( درواقع نام آنها درعبارت و دستوري كه آنها را ايجاد مي كند ، قيد خواهد شد .

برعكس ، اكثر جداول مشتق داراي نام نيستند ، بهرحال سيستم هاي رابطه اي معمولا نوع خاصي از جدول مشتق به نام ديدگاه (view) كه داراي نام و اسم بوده را پشتيباني      مي كنند . بنابراين يك ديدگاه (view) ، جدول داراي نامي است كه برخلاف يك جدول مبنا ، بخودي خود داراي موجوديت مستقلي نمي باشد ، بلكه در عوض برحسب يك يا چند جدول داراي نام مربوطه ( جداول مبنا يا ساير ديدگاه ها ) تعريف شده است .

چنانچه عبارت تعريف ديدگاه بطور واقعي ارزيابي شود ، جدول مربوطه منتج خواهد شد ولي در واقع ، منظورابدا به اين صورت نيست كه آن جداول به يك نسخه مجزا(separate copy) اشاره مي كند .يعني هدف ما اين نيست كه پيشنهاد كنيم كه واقعا عبارت تعريف ديدگاه ارزيابي مي شود .

درحقيقت ، ديدگاه بطور موثري تنها يك پنجره (window) بر روي جدول EMP مربوط مي باشد . البته ، مسلما هر تغييري بر روي جدول مربوطه به طور خودكار خيلي فوري از طريق پنجره قابل رويت خواهد بود ( البته اين تغييرات درقسمت بدون سايه جدول EMP قرار ميگيرد) . به طور مشابهي ، تغييرات بر روي TOPEMPS البته به طور خودكار و بلافاصله بر جدول واقعي EMP اعمال مي گردد .و لذا قابل رويت از طريق پنجره خواهد بود .

يك نكته نهايي وجود دارد كه نياز است درخصوص موضوع جداول مبنا و ديدگاه مطرح گردد . تفاوت جدول مبنا و ديدگاه غالبا به صورت زير تعريف مي گردد .

  • جداول مبنا ” واقعا وجود ” دارند بدين مفهوم كه آنها داده هايي را نشان مي دهند كه به طور واقعي در بانك اطلاعاتي ذخيره مي شوند .
  • برعكس ديدگاه ها “واقعا وجود ” ندارند اما آنها صرفا روشهاي مختلف نگاه نمودن به داده هاي واقعي را فراهم مي كنند .

هرچند اين توصيف در يك حالت غير رسمي يك بحث مفيد است ولي دقيقا وضعيت درست مطالب را منعكس نمي كند . اين مسئله درست است كه كاربران مي توانند جداول مبنا را همانگونه كه آنها به طور فيزيكي وجود دارند ، درنظر بگيرند .

درواقع نكته اصلي و مهم شيوه رابطه اي اين است كه به كاربران اين اجازه را مي دهد تا آنها جداول مبنا را به عنوان يك موجوديت فيزيكي درنظر بگيرند. درحالي كه مجبور نيستند به اين مسئله توجه و دقت كنند كه چگونه اين جداول به طور فيزيكي درحافظه ذخيره مي شوند .

ولي اين مطلب يك اشكال بزرگ دارد بدين مفهوم كه اين روش تفكر نبايد به عنوان مفهومي كه يك جدول مبنا يك جدول ذخيره شده فيزيكي است ، درنظر گرفته شود       ( يعني ، مجموعه اي از ركوردهاي همجوار فيزيكي و فيزيكي ذخيره شده كه هركدام شامل يك كپي مستقيم از يك جدول مبنا هستند ) جداول مبنا بهترين ايده و انديشه به عنوان مجردسازي (abstraction) مجموعه اي از داده هاي ذخيره شده مي باشند        ( مجردسازي كه در آن تمام جزئيات سطح – حافظه پنهان مي باشد ) درعمل ، درجه دلخواهي از اختلاف بين يك جدول مبنا و جدول ذخيره شده وجود دارد .

  1. معماري سه سطحي

از آنجا كه درچگونگي معماري “پايگاه داده ها ” حداقل درسالهاي آغازين ايجاد اين تكنولوژي ، بين كارشناسان ( از محافل مختلف علمي و تكنيكي ) اتفاق نظر نبود ، لذا ANSI/SPARC با توجه به اهميت محيط انتزاعي ، معماري پايگاه داده ها را ( به عنوان يك معماري استانده (استاندارد)) ، پيشنهاد كرد ، اين معماري به معماري سه سطحي موسوم است .

نكته ۱: بايد توجه داشت كه اين سه سطح اساسا سه سطح “تعريف داده ها ” هستند : دوسطح درمحيط انتزاعي و سطح سوم در محيط فايلينگ منطقي . داده هاي ذخيره شده   ( درمحيط فيزيكي ) طبعا درفايلهاي فيزيكي جاي دارند و هم از اينروست كه پيشتر گفتيم : ساده ترين و كلي ترين تعريف پايگاه داده ها اين است كه گفته شود : “مجموعه اي است از فايلهاي ….” .

حال نماي كاملتر معماري پيشنهادي ANSI رانشان داده ، به شرح هريك از سطوح معماري مي پردازيم .

دراين معماري علاوه بر سه سطح ، اجزاي ديگر هم ديده مي شود كه درواقع جز”سيستم پايگاه داده ها “هستند . دراينجا سه سطح و نيز اجزا ديگر را نام مي بريم :

  • كاربر
  • زبان ميزبان
  • زبان داده اي فرعي
  • ديد خارجي
  • ديد ادراكي
  • ديد داخلي
  • فايل هاي فيزيكي
  • .سيستم مديريت پايگاه داده ها
  • مدير پايگاه داده ها
  1. شرح سطوح سه گانه

ازمهمترين سطح اين معماري ( حداقل از نظر طراح و پياده ساز ) شروع مي كنيم :

۲-۱ ديد ( نماي ) ادراكي ( مفهومي )

  • ديد طراح پايگاه داده هاست نسبت به داده هاي ذخيره شدني درپايگاه
  • اين ديد جامع ( سرتاسري) است دربرگيرنده تمام نيازهاي كاربران در محيط عملياتي( درخرد جهان واقع )
  • اين ديد در يك محيط انتزاعي مطرح است : بنابراين مبتني است بر يك ساختار داده اي مشخص ( از يك مدل داده اي كه انتزاع لازم را تامين مي كند ) .
  • اين ديد ، با استفاده از عناصر ساختاري اساسي همان ساختار داده اي ، طراحي مي شود .
  • اين ديد بايد ( پس از طراحي طبعا ) توصيف شود . به وصف يا شرح ديد ادراكي ، شماي ادراكي مي گوييم ، شماي ادراكي نوعي “برنامه” است حاوي” دستورات داده ها” و “كنترل داده ها” ( و نه دستورات عمليات در داده ها ) سطح ادراكي درواقع همين شماي ادراكي است .
  • شماي ادراكي به سيستم داده مي شود و در كاتالوگ سيستم نگهداري مي شود .
  • تاكيد : پس پايگاه داده ها از نظر طراح آن در سطح انتزاعي ، همان ديدادراكي است.

 

۲-۲ ديد ( نماي ) خارجي

  • ديدكاربر خاص است نسبت به داده هاي ذخيره شده در پايگاه داده ها
  • اين ديد جزيي است و نه جامع : نشان دهنده محدوده اي از “پايگاه داده ها” كه به نيازهاي اطلاعاتي يك كاربر خاص پاسخ مي دهد .
  • اين ديد هم درسطح انتزاعي مطرح است ، بنابراين مبتني است كه بريك ساختار داده اي مشخص و معمولا همان ساختار داده اي كه ديد ادراكي براساس آن طراحي و تعريف مي شود .
  • اين ديد روي ديد ادراكي طراحي و تعريف مي شود ( به همين دليل به جدولهاي سطح ادراكي ، جدولهاي مبنا يا پايه مي گويند ) .
  • به وصف يا تعريف ديد خارجي ، شماي خارجي مي گوييم . نوعي برنامه كه كاربر سطح خارجي مي نويسد حاوي دستورات” تعريف داده ها “و گاه “كنترل داده ها “درهمان سطح خارجي ، شماي خارجي هم به سيستم داده مي شود ودركاتالوگ آن نگهداري مي شود .

نكته ۱ : حداقل از لحاظ نظري مي توان گفت كه ساختار (مدل) داده اي دردو سطح انتزاعي يعني سطح خارجي و سطح ادراكي ميتواند يكسان نباشد . دراين صورت ، طبعا يك واحد نرم افزاري خاص براي تبديل يك ساختار به ساختار ديگر لازم است . اصطلاحا مي گوييم كه سيستم “دوساختاره” است .

  • به تعريف مجموعه ديدهاي خارجي كاربر ، سطح خارجي گفته مي شود .
  • يك كاربر ميتواند تعدادي ديد داشته باشد .
  • چندكاربر ميتوانند دريك ديد مشترك باشند .

نكته ۲ : ديدهاي V1 از U1 و V1 از U2 روي جدولSTT ، ديد V2 از U1 روي جدول COT ، ديد V2 از U2 روي جدولهاي STT ، STCOT و COT تعريف   مي شوند . ضمنا ديد V1 از U3 نيز روي جدولهاي STT و STCOT تعريف مي شود و مي بينيم داراي يك ستون (صفت ) مجازي است (AVG : معدل دانشجو درهرترم ).

نكته ۳ : كاربر در ناميدن ستونهاي ديد خود آزاد است ( بارعايت ضوابط خاص هر سيستم ) كاربر U1 در ديد V2 ستون شماره درس را با CONUM ، كاربر U2 شماره دانشجو را در ديد V1 ، STNUM و … انتخاب كرده است .

نكته ۴ : مي بينيم كه ديد ادراكي ، جدولي است و ديدخارجي كاربر نيز جدولي است ، اما ديد خارجي يك جدول مجازي است ، به اين معنا كه داده ذخيره شده خاص خود را ندارد .

  • پس در هرديد جدولي، ستونها و سطرهايي از يك ( يا بيش از يك ) جدول وجود دارند . بنابراين در تعريف اين نوع جدول ، به نحوي بايد همان عملگرهاي RESTRICT ، PROJECT ،JOIN و … را متناسبا بكار برد كه خواهيم ديد .
  • توجه داشته باشيم كه مفهوم ديد اساسا نوعي پنجره است كه از آن ، كاربر مي تواند محدوده پايگاه خود را ببيند و خارج از اين محدوده ، هيچ نمي بيند .

نكته ۵: آنچه بعد از فراكرد WHERE مي آيد شرط (شرايط) تعريف ديد نام دارد .

تمرين ۱: يك تعريف ممكن براي هر يك از ديدهاي كاربران U2 و U3  ارائه كنيد .

نكته ۶ : دستور SELECT درتعريف ديد ، يك دستور اجرايي نيست ( بازيابي انجام نمي دهد ) بلكه تنها مكانيسم تعريف ديد روي جدول ( هاي) مبنا را نشان ميدهد ( چه ستونهايي و چه سطرهايي ) .

كنجكاوي ۱ : اگركاربربخواهد داده هاي ديد خود را ببيند ، چه بايد بكند ؟

  • تاكيد : ديد خارجي هركاربر، نشان دهنده “پايگاه داده هاي” همان كاربر است . پس منطقا كاربر، پس از تعريف” پايگاه خود”، بايد بتواند درآن عمليات انجام دهد :بازيابي، درج ، حذف و بهنگام سازي. اما خواهيم ديد كه عمليات ذخيره سازي درديدها هميشه امكان پذير نيست .

تمرين ۲ : درمورد دستورهاي لا زم براي انجام عمليات ذخيره سازي درسطح خارجي و چگونگي انجام آنها از هم اينك انديشه كرده ، مثالهايي با TDS قيد كنيد ، ( توجه داريم كه ديد در TDS بهرحال نوعي جدول است ) . موضوع درجاي خود بررسي خواهد شد .

كنجكاوي ۲ : مفهوم ديد خارجي چه مزايا و چه معايبي دارد ، درچه شرايطي ميتوان از اين مفهوم صرفنظر كرد ( طبعا درسطح طراحي پايگاه داده ها و درنتيجه درتوليد برنامه هاي كاربردي) ؟

۲-۳ ديد( نماي ) داخلي

  • ديد DBMS ( و نيز طراح پايگاه داده ها ) است درسطحي پائين تر از سطح ادراكي ، نسبت به كل داده هاي ذخيره شدني درپايگاه داده ها .
  • اين ديد در سطح فايلينگ منطقي ( وگاه مجازي ) پايگاه داده ها مطرح است .
  • اين ديد مبتني است بر يك ( و گاه بيش از يك ) ساختار فايل كه معمولا بانظر و دخالت طراح پايگاه داده ها طراحي مي شود ، اين طراحي اصطلاحا به طراحي فيزيكي موسوم است .
  • سطح داخلي پايگاه داده ها ، درواقع سطحي است كه درآن فايلهاي منطقي پايگاه داده ها تعريف ميشود.
  • به شرح يا تعريف ديد داخلي ، شماي داخلي گفته مي شود : نوعي” برنامه” كه توسط خود يا وصف فايلينگ منطقي پايگاه است كه درواقع همان سطح داخلي است .

نكته ۷: ميزان دخالت طراح و پياده ساز پايگاه داده درتعيين جنبه هاي سطح داخلي پايگاه داده ها در سيستم هاي امروزي، نسبت به سيستم هاي قديم تر ، كمتر است .

نكته ۸ : همانطور كه گاه ممكن است يك برنامه ساز ، درسطح پايين، برنامه سازي كند    ( به زبان اسمبلي) دراستفاده و ياكنترل پايگاه داده ها هم ممكن است گاهي بعضي از برنامه ها مستقيما درسطح داخلي( به جاي سطح خارجي يا ادراكي ) عمل كنند ، هرچند اين كار، اين برنامه ها را به محيط فايلينگ پايگاه داده ها تا حدي وابسته مي كند (DATE2000) .

  • توجه داريم كه درشماي داخلي ، انواع ركوردها تعريف مي شوند و دستورهاي لازم جهت ايجاد فايلها و كنترل آنها نيز دراين شما وجود دارد .
  • توجه : به تفاوت بين نام بعضي ستونهاي جدول و فيلدهاي ركوردهاي متناظر درسطح داخلي دقت شود .از نظر تئوريك ، جنبه هاي مختلف داده ها مي توانند در هر سه سطح معماري متفاوت باشند .

نكته ۹: درتعريف ركوردهاي سطح داخلي دراين مثال فرض كرده ايم كه تناظر بين جدولهاي مبنا درسطح ادراكي و فايلهاي سطح داخلي يك به يك است . دربرخي از سيستم هاي رابطه اي لزوما چنين نيست . يعني ممكن است سيستم براي يك رابطه بيش از يك فايل ايجاد كند و يا بيش از يك رابطه را در يك فايل ذخيره كند .

نكته ۱۰: درمقايسه بامحيط ناپايگاهي  ( در مشي فايلينگ ) مي توان گفت كه نقش DBMS درتعريف سطح داخلي كم و بيش همان است كه نقش برنامه ساز فايل پرداز در محيط برنامه سازي فايل پردازي ، البته تا آنجا كه به تعريف ، ايجاد و كنترل فايلهايش مربوط مي شود .

نكته ۱۱: يك تفاوت بسيار اساسي بين معماري پايگاه داده ها و معماري محيط ناپايگاهي ديده مي شود : وجود معمولا دو سطح انتزاعي ( دوسطح تعريف داده ها در محيط انتزاعي ) درمعماري پايگاه داده ها كه درمعماري محيط ناپايگاهي وجود ندارد .

DBMS مي داند :

  1. چه فايلهايي وجود دارد ؟
  2. نگاشت سطح ادراكي به سطح داخلي چگونه است ؟
  3. فضاي پايگاه داده هاي كاربر چه صفحاتي دارد.
  4. فرمت هرنوع ركورد چيست ؟
  5. ساختار هر فايل چيست ؟
  6. استراتژي دستيابي به ركوردهاي هرفايل چگونه است ؟
  7. صفت نظم كدام است ؟
  8. توالي منطقي ركوردها در صفحات چگونه است ؟
  9. اندازه جاري هرفايل چيست ؟
  10. پيوندهاي منطقي بين فايلها چگونه است ؟

اما:

DBMS  نمي داند :

  1. فايلها چگونه درمحيط فيزيكي ذخيره شده اند ؟
  2. لوكاليتي يا خوشه واري ركوردها چگونه است ؟ خوشه واري درون فايلي و بين فايلها ( به ‌] روحا-۷۹ الف[ مراجعه شود )
  3. استراتژي دستيابي ( مثلا شاخص ها ) چگونه پياده سازي شده اند ؟
  4. اندازه بلاك چيست ؟
  5. نگاشت صفحات دربلاكها چگونه است ؟
  6. توالي منطقي ركوردها چگونه پياده سازي شده است ؟

نكته ۱۲: دربعضي از سيستم هاي جديد DBMS كل فضاي پايگاه داده ها را به صورت مجموعه اي از مجموعه صفحات مي بيند ، يعني نوع نماي مجازي از داده هاي ذخيره شده در پايگاه دارد ، اين نماي مجازي بالاتر از سطح فايلينگ منطقي جاي دارد . درواقع بين سطح نماي مجازي و سطح فايلينگ فيزيكي ، يك سطح فايلينگ منطقي واسط است [DATE95] .

  • توجه : مابيش از اين به سطح داخلي و نيز فيزيكي پايگاه داده ها نمي پردازيم ، براي اطلاع از انواع ساختار فايلها و نيز عمليات سيستم فايل به منابع مربوطه مراجعه شود ، تقريبا درتمام منابع كلاسيك پايگاه داده ها فصل يا فصلهايي درمورد ساختارهاي فايل وجود دارد ( شايد فقط غير از DATE2000 ) . اما در اين منابع به “مهندسي فايلها” بويژه ارزيابي كارايي ساختارها پرداخته نمي شود . غالبا شرح و توصيف ساختارها و استراتژيهاي دستيابي به ركوردها درساختارها را ميتوان دراين منابع يافت .

نكته ۱۳ : آگاهي از جنبه هاي سطح داخلي – فيزيكي پايگاه داده هايي كه DBMS ايجاد مديريت مي كند ، بسيار حائز اهميت است ، زيرا كارايي سيستم بيشتر به وضع فايلينگ پايگاه داده ها بستگي دارد .

اما كاربران سطح خارجي معمولا نيازي ندارند كه از جنبه هاي سطح داخلي – فيزيكي پايگاه داده ها اطلاعاتي داشته باشند .درعوض كاربر سطح ادراكي ( طراح ، پياده ساز و اعضا تيم مديريت پايگاه داده ها ) بايد از اين جنبه ها اطلاعات كافي داشته باشند ، تابتوانند كارايي سيستم مديريت پايگاه داده ها و نيز كارايي” سيستم كاربردي” را كنترل و درصورت لزوم بهتر كنند .

البته درسيستم هاي جديد مديريت پايگاه داده ها ، تاآنجا كه به طراحي منطقي ( ادراكي) پايگاه داده ها ، تعريف شماي ادراكي پايگاه داده ها و انجام عمليات در پايگاه ، به ويژه دراسلوب تعاملي ( اندركنشي) مربوط مي شود . پياده ساز پايگاه داده ها چندان به جنبه هاي سطح داخلي – فيزيكي نمي پردازد ، اين جنبه ها در مرحله طراحي فيزيكي پايگاه داده ها و ايجاد آن مطرح مي شوند .

 مرحله اي كه درآن درمورد ساختار فايلها ، استراتژي دستيابي به ركوردها و جايدهي فايلها روي رسانه و برخي جنبه هاي ديگر تصميم گيري مي شود .همانطور كه گفته شد ، ميزان دخالت طراح و پياده ساز در ايجاد و مديريت سطح داخلي پايگاه داده ها در سيستم هاي جديد كمتر از سيستم هاي قديمي تر است .

اما بايد توجه داشت كه در هر DBMS واقعي بايد امكانات و ابزارهايي براي كنترل كارايي سيستم مديريت پايگاه داده ها و تنظيم آن و نيز بهينه سازي كارايي سيستم كاربردي وجود داشته باشد . هرچه امكانات و ابزارهاي لازم براي اين فعاليت ها بيشتر باشد ، آن DBMS  مطلوب تراست . گاه لا زم است كه ابزارهاي خاصي هم براي انجام فعاليت هاي مديريتي و كنترل ، توسط تيم طراح  پياده ساز پايگاه داده ها طراحي و توليد شوند .

تاكيد دوباره : باتوجه به آنچه كه درمورد سه سطح معماري پايگاه داده ها گفته شد ،     مي بينيم كه درواقع ، معماري سه سطحي ، از سه سطح تعريف داده ها – كنترل داده ها تشكيل شده است ، از اينرو اين معماري را معماري سه شِمايي نيز مي گويند ، روشن است كه داده هاي كاربران فقط درهمان سطح فيزيكي پايگاه ، به صورت مجموعه اي از فايلها ، ذخيره مي شوند .( اما هر مجموعه اي از فايلها ، پايگاه داده ها نيست ).

  1. شرح اجزاي ديگر

درمعناي عام ، هر استفاده كننده از پايگاه داده ها را كاربر ميگوييم .

نكته ۱۴: برنامه ساز “سيستم”، برنامه هاي ايجاد و كنترل پايگاه داده ها را مي نويسد ، اما برنامه ساز “كاربردي ” معمولا برنامه هاي بهره برداري از پايگاه داده ها را مي نويسد .

  • توجه : اصطلاح كاربرپاياني درمعناي عام ، به هردوگونه كاربر نابرنامه ساز ( كه از طريق يك واسط غير زباني از سيستم استفاده ميكند ) وكاربر برنامه ساز كاربردي گفته مي شود . اما معمولا برنامه ساز بهره بردار (كاربرد ساز ) است : هركاربري كه كارش نياز به دستيابي به پايگاه داده ها به منظور بازيابي يا ذخيره سازي دارد و گزارشهايي توليد مي كند .

 

نكته ۱۵ : برنامه ساز كاربردي ممكن است از يك زبان پرسش و يا از يك زبان برنامه سازي ( از هر نسل ) همراه با يك زبان پرسش استفاده كند .

نكته ۱۶ : كاربر موردي ممكن است برنامه ساز و يا نابرنامه ساز باشد ، اما معمولا برنامه ساز است .

تمرين ۴: درمورد هريك از گونه هاي كاربر نابرنامه ساز بيشتر مطالعه شود

۳-۲ زبان ميزبان

يكي از زبانهاي برنامه سازي ( از هر نسل ) است : كوبول، پي ال وان ، فرترن ، پاسكال ، سي ، و زبانهايي مثل ايدا ، ليسپ ، جاوا و نيز زبان اسمبلي.

دربعضي كاربردها لازم است كه از يكي از زبانها استفاده شود . زيرا به شرحي كه خواهيم ديد ، با زبانهاي پايگاهي موجود نمي توان به معناي متعارف برنامه سازي كرد ، بلكه اين زبانها به صورت زبان ميهمان همراه با يك زبان ميزبان استفاده مي شوند .

نكته ۱۷ : هرچه تعداد زبانهاي ميزبان مورد پذيرش DBMS بيشتر با شد ، آن DBMS از اين نظر مطلوبتر است ، زيرا ؛

  1. تنوع كاربردها امكان پذير مي شود .
  2. تنوع كاربران تامين مي شود .
  3. هزينه سازمان كا هش مي يابد . زيرا نيازي به آموزش افراد براي كسب مهارت برنامه سازي به زبان خاصي نيست .
  4. سيستم انعطاف پذيرتر مي شود .

۳-۳ زبان داده اي فرعي

اين زبان از سه دسته دستور تشكيل شده است :

  1. دستورات تعريف داده ها
  2. دستورات عمليات روي داده ها
  3. دستورات كنترل داده ها

ازنظر ANSI ، اين سه دسته دستور بايد براي هر يك از سه سطح معماري پايگاه وجود داشته باشند .

به DDL خارجي ، VDL ( زبان تعريف ديد ) و به DDL داخلي، SDL ( زبان تعريف ذخيره سازي ) هم گفته مي شود [ELMA2000] .

نكته ۱۸: زبان داده اي فرعي از نظر نياز به زبان ميزبان يا عدم نياز به آن ، به دو رده تقسيم مي شود:

  • مستقل يا خودكفا
  • ادغام شدني ( ادغام شده )
  • زبان مستقل ، زباني است كه نياز به زبان ميزبان ندارد و خود به صورت تعاملي ( اندركنشي )استفاده مي شود و آن را DSL گوييم . اين گونه زبان ، درواقع يك زبان پرسش ( پرس و جو ) است يعني با دستورهايش مي توان انواع پرسشها را تنظيم كرد ( براي انجام چهار عمل اصلي يعني بازيابي ، درج ، حذف و بهنگام سازي ) .
  • زبان ادغام شدني ، زباني است كه دستورهايش ( به نحوي) درمتن برنامه اي به زبان ميزبان بكار مي روند ومستقلا قابل استفاده نيستند و آن را DSL گوييم .

البته زبان داده اي فرعي ممكن است هم مستقل و هم ادغام شدني باشد (I/E.DSL) .

توجه داشته باشيم كه در حالت E.DSL لزوما زبان ميزبان نبايد يك زبان برنامه سازي متعارف باشد. ميتوان از زبانهاي جديدتر مثلا جاوا و جاوا – اسكريپت يا وي – بي – اسكريپت ، نيز استفاده كرد . مثلا مي توان با استفاده از ASP كه يك امكان توليد برنامه در محيط اينترنت است . در محيط جاوا ، اسكريپت يا وي – بي – اسكريپت دستورهاي SQL را به صورت يك رشته داد و عمليات مورد نظر را در پايگاه داده اي رابطه اي انجام داد ، يا از امكانات ديگر از جمله شيئي هاي داده اي فعال استفاده كرد .