مقدمه ای بر Microsoft SQL Server

MS SQL Server يکی از سيستم های مديريت بانک های اطلاعاتی رابطه ای (Relational) است که توسط شرکت مايكروسافت ارائه شده است  . SQL Server از مدل سرويس دهنده - سرويس گيرنده (Client/Server) تبعيت می نمايد . در اين مدل ، درخواست های (InQuery) سرويس گيرندگان برای سرويس دهنده ارسال و در سمت سرويس دهنده بررسی و آناليز می گردند . در ادامه ، پردازش های‌ مورد نياز  بر روی اطلاعات ذخيره شده در بانک های اطلاعاتی انجام و در نهايت ، نتايج برای سرويس گيرنده ارسال خواهد شد .
MS SQL Server با استفاده از  مجموعه عناصری ( Components ) كه به صورت هدفمند اجراء می گردند ، قادر به تامين نيازها و درخواست ها  از مخازن داده (Data Storages) می باشد . مخازن داده در SQL Server به دو روش زير مديريت می گردند :

  • OLTP  ( برگرفته از  OnLine Transaction Processing System )

  • OLAP ( برگرفته از     OnLine Analytical Processing System )

در مدل OLTP ، مخازن داده به صورت جداول رابطه ای که عموما" به جهت جلوگيری از تکرار و ناهمگونی اطلاعات به صورت هنجار (Normalize) درآمده اند ، سازماندهی می شوند . اين نوع از بانک های اطلاعاتی برای درج و تغییر سریع اطلاعات توسط چندین کاربر بطور همزمان مناسب می باشند .
در مدل OLAP مخازن داده جهت تجزيه و تحليل و خلاصه سازی حجم زيادی از اطلاعات سازماندهی می شوند . مخازن داده و ارتباط بين اطلاعات در اين مدل توسط SQL Server مديريت می گردد .

ادامه نوشته

داده ها در وب قسمت دوم

مدل کدينگ فرم های وب

يک صفحه فرم وب دارای دو بخش ويژوال ( تگ های HTML ،کنترل های سرويس دهنده و متن های ايستا ) و صفحه مربوط به منظق برنامه نويسی است . هر يک از بخش های فوق در يک فايل جداگانه ذخيره خواهند شد . عناصر ويژوال در فايلی با انشعاب aspx . و کدها در فايل مجزائی با انشعاب ( aspx.vb , aspx.cs )
ASP.NET Page class
با اينکه يک صفحه فرم وب دارای دو فايل مجزاء می باشد ولی آنها بعنوان يک يونيت واحد در زمان اجرای يک برنامه ايفای وظيفه خواهند کرد. کد مربوط در فايل ها پس از ترجمه بصورت .dll درخواهند آمد. فايل .aspx نيز با يک روش متفاوت ترجمه خواهد شد . اولين بار که مرورگر درخواست يک فايل .aspx را می نمايد ، بصورت خودکار يک .NET class file ايجاد و آن را بصورت  dll دوم ترجمه خواهد کرد . در صورتيکه صفحه دارای کنترل های سرويس دهنده باشد ، کلاس ايجاد شده بعنوان يک Container برای کنترل ايفای وظيفه خواهد کرد. نمونه هائی از کنترل ها در زمان اجراء ايجاد و خروجی مورد نظر را برای ارسال به سرويس گيرنده آماده می کنند.
برای افرادی که قبلا" با مدل ASP کلاسيک کار کرده اند ، مدل فوق يک رويکرد جديد است . در مدل ASP يک فايل HTML با کدهای نوشته شده توسط يکی از زبانهای اسکريپت نظير :Jscrip,JavaScript,VbScript تلفيق شده و در يک فايل واحد قرار می گيرنند. Parser مربوط به ASP فايل را خوانده و پس از تفسير، کدهای مربوطه را بمنظور ايجاد خروجی اجراء خواهد کرد. در ادامه ASP خروجی توليد شده توسط کدهای اسکريپت را با خروجی های Html ترکيب و در نهايت حاصل برای مرورگر سرويس گيرنده ارسال خواهد شد.
در مدل ASP.NET ، تمام صفحات فرم های وب بعنوان برنامه های اجرائی در نظر گرفته می شوند. اين برنامه ها قادر به ايجاد خروجی های مربوطه و ارسال آنان برای مرورگر سرويس دهنده خواهند بود. در مدل فوق مجموعه ای از مراحل پردازشی نظير : مقداردهی اوليه ، پردازش ، حذف انجام خواهد شد. عمليات پردازشی فوق ،  دقيقا" مشابه با عملکرد ساير برنامه های اجرائی با دو تفاوت است :
Page Class ، تمامی مراحل فوق را در هر زمان که صفحه صدا زده می شود ،انجام خواهد داد. در اين حالت صفحه مقداردهی اوليه ،پردازش و در نهايت از بين خواهد رفت .
Page Class ،دارای يک مرحله منحصر بفرد با نام رندرينگ  است که در زمان اتمام چرخه حيات يک صفحه عملی خواهد شد.
ادامه نوشته

داده ها در وب قسمت اول

دستيابی به داده ها در فرم های وب

در اغلب فرم های وب نياز به دستيابی داده ها و نمايش آنها و در برخی موارد ويرايش و بهنگام سازی آنها وجود خواهد داشت . آگاهی از تکنولوژي های دستيابی به داد ه ها در صفحات فرم های وب،  باعث طراحی و پياده سازی نرم افزار های موثر و با کارائی بيشتر تحت وب خواهد شد. در اين مقاله به بررسی مفاهيم مربوط به دسيتابی داده ها در صفحات فرم های وب پرداخته و نحوه استفاده از کنترل های مربوطه جهت نسبت دهی داده ها در صفحات را بررسی خواهيم کرد.
فرم های وب ، اغلب ملزم به نمايش اطلاعاتی هستند که ماحصل بازيابی آنان از يک منبع داده ئی نظير يک بانک اطلاعاتی و يا يک سند XML خواهد بود. ساختار و معماری صفحات فرم های وب اين امکان را فراهم می نمايد که با اتکاء به برخی روش ها از منابع متفاوت داده ئی در صفحات استفاده و با نسبت دهی  کنترل ها به داده ها و پردازش داده های مورد نظر، امکان انجام عمليات دلخواه و مرتبط با داده ها را بسرعت و با کيفيت بالا انجام داد. دستيابی به داده ها در فرم های وب با دستيابی به داده ها از طريق فرم های ويندوز و ساير برنامه های تحت ويندوز متفاوت بوده و همين امر يکی از وجوه تمايز اساسی بين برنامه های تحت وب با ساير برنامه ها است.
اصول اوليه دستيابی به داده ها در صفحات فرم های وب
دستيابی به داده ها در صفحات فرم های وب با تاکيد بر اصول اساسی زير انجام می گيرد:
استفاده از يک مدل Disconnect
▪ خواندن بيشتر داده ها نسبت به ويرايش آنها
▪ به حداقل رساندن استفاده از منابع موجود بر روی سرويس دهنده
▪ دستيابی به داده ها با استفاده از پردازش های راه دور( دستيابی به داده های توزيع شده )
در ادامه به تشريح هر يک از اصول فوق خواهيم پرداخت .

Disconnected Model . صفحات فرم های وب از نوع Disconnect می باشند. پس از درخواست يک فرم وب از طرف سرويس گيرنده و ارسال درخواست برای سرويس دهنده ، فرم ايجاد ،پردازش ،ارسال و در نهايت از حافظه سرويس دهنده حذف خواهد شد. نحوه دستيابی به داده ها در يک صفحه فرم وب نيز حکايتی اينچنين دارد. در اين راستا و در زمان پردازش فرم بر روی سرويس دهنده ، داده ها ی مورد نظر خوانده و يا ويرايش شده و در نهايت فرم برای متقاضی ( سرويس گيرنده ) ارسال خواهد شد. در چنين حالتی داده ها بر روی سرويس دهنده حذف خواهند شد ( از درون حافظه و يا بافر های استفاده شده برای پلسخگوئی به درخواست ) .
مدل فوق دارای چندين نکته مهم بوده که شناخت آنان برای موارديکه در صفحات فرم های وب با داده ها سروکار داريم ، بسيار مفيد خواهد بود.
▪ داده هائی که قصد استفاده از آنان را خواهيد داشت،  بصورت خودکار و پس از رفت و آمدهای متعدد بين سرويس گيرنده و سرويس دهنده ،قابل دستيابی نخواهند بود. در صورتيکه بخواهيم به داد ه ها دستيابی داشته باشيم می بايست هر زمان که صفحه برای سرويس دهنده  پست می گردد ، مجددا" داده ها از منابع مربوطه خوانده شوند. در اين راستا می توان با نوشتن کدهای اضافه که در صفحه مستقر خواهند شد ،اقدام به ذخيره سازی داده ها نموده و در زمان پردازش فرم و از طريق کدهای نوشته شده مجددا" به آنها دستيابی پيدا کرد.
▪ در زمان پردازش می توان با منابع داده ئی يک ارتباط برقرار و پس از خواندن و يا نوشتن داده ها ،اقدام به بستن ارتباط ايجاد شده با منابع داده ئی نمود. تصور اينکه ارتباط با منبع داده ئی را فعال نگه داشته تا در آينده بتوان مسائل مربوط به مديريت داده ها و دستيابی به داده ها را بهبود بخشيد ، نادرست و انتظاری نامعقول است .
▪ در زمان رفت و آمد يک صفحه بين سرويس گيرنده و سرويس دهنده عمليات مربوط به دستيابی به داده ها انجام خواهد گرفت . مثلا" در اولين مرتبه که صفحه صدا زده می شود ،ممکن است داده ئی از منبع مورد نظر خوانده و کنترل های موجود بر روی صفحه را به آن نسبت داد،زمانيکه کاربر کليدی (Button) را فعال نمائد،  می توان داده ئی را از يک کنترل گرفته و در منبع داده ئی ذخيره نمود.
 

خواندن و بهنگام سازی داده ها . در اغلب فرم های وب ، نوع دستيابی به داده ها بصورت فقط خواندنی است . در مواردی هم ممکن است کاربر داده ئی را برای ثبت ، درج و يا بهنگام سازی در منبع داده ئی ارسال نمايد. چون اغلب عمليات دستيابی به داده ها بصورت فقط خواندنی است ،معماری Data-Binding ( نسبت دهی داده ها )  در فرم های وب ، پاسخی به اين نياز بوده است . بدين ترتيب Data-Binding ، باعث نمايش داده ها در کنترل مربوطه خواهد شد. بهنگام سازی داده ها قطعا" Overhead در يک صفحه را افزايش خواهد داد. در چنين حالتی صفحه می بايست دارای چندين نسخه از رکوردها برای ويرايش و همچنين شامل منطق مربوط برای انجام عملياتی نظير : درج و حذف رکوردها باشد. بدليل افزايش لود بر روی صفحات ، بخشی از حافظه اصلی بر روی سرويس دهنده و ساير منابع مورد نظر بخدمت گرفته خواهند شد.

به حداقل رساندن ميزان استفاده از منابع موجود بر روی سرويس دهنده .صفحات فرم های وب ، قبل از ارسال برای مرورگر سرويس گيرنده می بايست بر روی سرويس دهنده پردازش گردنند. هر نوع عملياتی که منجر به دستيابی به داده ها در صفحه گردد ، باعث افزايش لود عملياتی سرويس دهنده از دو بعد زمان پردازش و استفاده از حافظه خواهد شد. در مواردی هم که نياز به ذخيره سازی داده ها باشد استفاده از منابع در زمانی که صفحات پردازش نشده اند نيز وجود خواهد داشت . دستيابی به داده ها در صفحات فرم های وب نيازمند يک بررسی دقيق و کارشناسی و نحوه استفاده از منابع است . در اين راستا دو اصل زير را می توان همواره مد نظر داشت :

▪ در هر صفحه صرفا" به بخشی از اطلاعات که لازم است، دستيابی و از اخذ اطلاعات غيرضروری و گاها" حجيم در يک صفحه وب ، اجتناب ورزيد.
▪ در صورت امکان از گزينه های state management ( متکی بر سرويس گيرنده ) استفاده گردد.
صفحات وب در لايه نمايش يک برنامه تحت وب عمل کرده و می توان از طريق آنان به داده ها دستيابی پيدا کرد در اين راستا ترجيح داده می شود که منطق دستيابی به داده ها را از بخش UI بکمک استفاده از عناصر ديگر نظير سرويس های وب Xml و ... تفکيک نمود.
صفحات فرم های وب، بعنوان يکی از اجزای دات نت ،داده های خود را با ساير عناصر پردازشی از طريق يک جريان ممتد Xml انجام می دهند. در اين زمينه نياز به اقدام مستقيم جهت کار با Xml نخواهد بود( ارتباط بين اجزاء). فريمورک صفحات وب ( DataSet ) تبديلات فوق را بصورت خودکار انجام خواهد داد. در صورت نياز و در موارد خاص می توان دستيابی به داده ها را در يک برنامه تحت وب، مستقيما" با فرمت Xml انجام داد.


منابع داده (Data Source) برای صفحات فرم های وب
معماری صفحات فرم های وب، امکانات کاملا" انعطاف پذيری را در رابطه با داده ها ارائه نموده است . امکانات فوق از دستيابی به بانک های اطلاعاتی سنتی تا استفاده از سندهای متکی بر Xml تا اخذ اطلاعات در زمان اجراء و ذخيره آن در يک بردار را شامل می شود.
دستيابی به بانک های اطلاعاتی . برای خواندن و نوشتن داده ها از بانک های اطلاعای از ADO.NET استفاده می گردد. ADO.NET شامل امکانات لازم جهت مديريت داده ها ( ارتباطات و اشياء مورد نياز ) جهت ارتباط با سرويس دهنده SQL و يا يک بانک اطلاعاتی سازگار با OLE-DB است . ADO.NET همچنين امکاناتی را برای دستيابی به داده ها از طريق يک Dataset ( در اين حالت يک ارتباط دائم و پيوسته با بانک اطلاعاتی وجود نخواهد داشت ) که داده ها در بخشی از حافظه Cache شده اند ،را پيش بينی نموده است . امکان استفاده از اشياء ADO.NET بمنظور اجرای دستورات SQL و يا Stored procedure بصورت مستقيم نيز وجود خواهد داشت .
XML Data . يکی ديگر از منابع داده ئی در صفحات فرم های وب ،استفاده از سندهای Xml است . بمنظور استفاده و کار با اين نوع سندها می توان از دو روش عمده زير استفاده نمود:
در صورتيکه داده های Xml ساختيافته باشند ،می توان آن را به يک Dataset تبديل و با استفاده از توابع داده ئی ADO.NET عمليات مربوط به خواندن و يا بهنگام سازی داده ها را انجام داد.پس از انجام عمليات مورد نظر می توان مجددا" داده ها را به فرمت Xml تبديل تا قابل استفاده برای ساير پردازش هائی باشند که قصد استفاده از اين داده ها را دارند.
در صورتيکه داده ای Xml ساختيافته نباشند ،می توان از توابع مربوط به Parse نمودن و پردازش در System.Xml ( يک NameSpace است ) جهت انجام عمليات دلخواه بر روی داد ه ها استفاده کرد. در صفحات فرم های وب ، می توان اين کار را از طريق استفاده از کنترل های سرويس دهنده وب Xml انجام داد.
ساير منابع داده ئی . صفحات فرم های وب ، اين امکان را فراهم می نمايند که بصورت مجازی با ساير داده ها نيز ارتباط برقرار  گردد. معماری Data Binding در صفحات فرم های وب اين امکان را فراهم می آورد که يک کنترل را به هر نوع ساختاری بتوان نسبت داد. مثلا" می توان هر نوع برداری را به يک کنترل نسبت داد. بمنظور انعطاف  بيشتر می توان Data binding را در زمان اجراء انجام داد . هر کنترل ، يک رويداد Data Binding را حمايت خواهد کرد.با نوشتن Handler مربوطه برای اين رويداد می توان کنترل هائی را برای هر صفحه و هر نوع داده انجام  داد.

ادامه نوشته

معماری برنامه های مبتنی بر داده

داده ها در برنامه های کامپيوتری دارای نقشی بسيار مهم بوده و همواره نحوه ذخيره  و بازيابی آنان از مهمترين مباحث در دنيای گسترده نرم افزار بوده و خواهد بود. فراموش نکنيم که هدف از ذخيره سازی داده ها، بازيابی آنان در زمان مناسب و با سرعت مطلوب است .روش های ذخيره سازی داده ها در بستر زمان، دچار تغيير و تحولات گسترده ای شده و با ظهور پديده اينترنت و ضرورت طراحی و پياده سازی نرم افزار بر روی بستر فوق وارد مرحله جديدی شده است. در اين مقاله به بررسی معماری برنامه های کامپيوتری با محوريت داده پرداخته و گزينه های ذخيره سازی داده ها بررسی می گردد .
ادامه نوشته

دستيابی به بانک اطلاعاتی Access با استفاده از VB.NET

در اين مقاله قصد داريم به نحوه  بازيابی و نمايش اطلاعات موجود در يک بانک اطلاعاتی Access اشاره نمائيم . هدف از مقاله فوق ، پرداختن به تمامی رويکردهای موجود در اين زمينه نبوده و صرفا" به معرفی يکی از گزينه های موجود در اين زمينه اشاره خواهد شد. در اين راستا از تکنولوژی های ASP.NET ، ADO.NET و VB.NET استفاده خواهد شد . از کلاس های  OleDbConnection ، OleDbCommand و OleDbDataReader  مربوط به  ADO.NET  بمنظور انجام عمليات لازم در ارتباط با بانک اطلاعاتی ، از ASP.NET بمنظور ايجاد فرم وب و ارائه داده با استفاده از کنترل سرويس دهنده Table و از زبان VB.NET بمنظور نوشتن دستورالعمل های مورد نظر استفاده می گردد .

 

ادامه نوشته

بانک های اطلاعاتی رابطه ای

قبل از پرداختن به موضوع بانک های اطلاعاتی رابطه ای (Relational Data Base) ، بهتر است اشاره ای به مفاهيم ذيل داشته باشيم :
  • موجوديت (Entity)
    به هر چيزی (شی ، شخص ، محل و ...) که می خواهيم در يک سيستم راجع به آن اطلاعاتی را جمع آوری ، پردازش و نگهداری نمائيم ، يک موجوديت گفته می شود . تعريف فوق ، متداولترين برداشت اوليه از موجوديت می باشد . مجموعه موجوديت های يک سيستم ، ساختار اطلاعاتی آن سيستم را مشخص می كند . هر موجوديت شامل اجزاء و المان هائی است که آن موجوديت را توصيف می كند كه به آنها  خصيصه و يا Attribute گفته می شود . هر موجوديت بسته به اين كه  در سيستم مورد مطالعه چه ميزان اطلاعات راجع به آن می خواهيم داشته باشيم ، شامل حداقل يک و يا چند خصيصه خواهد بود. از آنجا که هر موجوديت راجع به يک موضوع به خصوص می باشد ، بنابراين يک ارتباط منطقی بين کليه خصايص موجوديت وجود خواهد داشت .

 

 

ادامه نوشته

نرمال سازی بانك های اطلاعاتی

نرمال سازی ( Normalization )  يا به تعبيری هنجار سازی فرآيندی است در رابطه با بانك های اطلاعاتی كه با دو هدف عمده زير انجام می شود :

  • کاهش افزونگی اطلاعات ، به اين معنی که اطلاعات فقط در يک مكان (جدول) ذخيره و در تمام بانک با استفاده از روابط منطقی تعريف شده (RelationShip) قابل دسترسی باشد .

 

 

 

ادامه نوشته