PDA

View Full Version : برنامه نویسی بانک اطلاعاتی تحت شبکه



bbehnam
یک شنبه 25 اردیبهشت 1384, 11:13 صبح
از دوستانی که در این زمینه اطلاعات یا منابعی در اختیار دارند تقاضا میشود در این بخش قرار دهند مثلا نحوه برخورد با رکوردهایی که در ایستگاههای کاری مختلف load شده اند. مثلا سیستم فروش بلیط هواپیما که همزمانی دسترسی به اطلاعات و نحوه مدیریت آن مهم است.

M.GhanaatPisheh
یک شنبه 25 اردیبهشت 1384, 17:58 عصر
مثلا نحوه برخورد با رکوردهایی که در ایستگاههای کاری مختلف load شده اند
شما بر اساس نیازتون رکورد ها رو Load می کنید!!!


همزمانی دسترسی به اطلاعات و نحوه مدیریت آن مهم است
این قسمت رو به DBMS تون بسپارید
خودش میدونه چیکار کنه. :wink:

در ضمن سوالتون خیلی کلیه.

habedijoo
دوشنبه 26 اردیبهشت 1384, 16:07 عصر
سلام به همه

بگذارید سوال رو اینطور مطرح کنیم ؟

برای ایجاد یک نرم افزار که دارای بانک اطلاعاتی تحت شبکه است چه چیزایی لازم است .

مثلا VB.net و SQl Server .

خوب حالا باید چکار کرد . ؟

نرم افزار Client و Server چطور با هم ارتباط برقرار می کنند ؟

و چطور یک Client به بانک اطلاعاتی Server دسترسی پیدا می کند . ؟

فکر کنم . اگر همه به این سوالات جواب دهیم بهتر باشد .

با تشکر از همه ..... :wise1:

majid_afra222
دوشنبه 26 اردیبهشت 1384, 17:07 عصر
سلام
جواب سوالت شاید نباشه٬ ولی میتونه راهنماییت کنه :
1- در صورتیکه سیستم یه سیستم بزرگ باشه٬‌ بهتره از datawarehouse استفاده کنی
2- اگه سیستم ها همگون باشند (بانکهای اطلاعاتی از یک نوع باشند)٬ بهتره که تراکنشهای distributed رو استفاده کنی (ساده تره٬‌ولی باید مواظب بن بستها در تراکنشهات باشی)
3- صورت امکان٬ اگه بانک اطلاعاتی قابلیت مدیریت اطلاعات گسترده رو داشت٬ از قابلیتهای اون استفاده کن (مثلا اوراکل اطلاعات رو بصورت گسترده میتونه مدیریت کنه که خیلی راحت میشی)

habedijoo
سه شنبه 27 اردیبهشت 1384, 07:50 صبح
با سلام

آقا مجید میشه لطف کنی و دقیقتر توضیح بدی ؟
ِDataWareHouse چی هست ؟ و همچنین بقیه ؟

باتشکر

majid_afra222
سه شنبه 27 اردیبهشت 1384, 12:22 عصر
سلام
در مورد مطالب گفته شده :
1- datawarehouse یا انباره داده ها، در سیستمهای بزرگ با حجم اطلاعات زیاد و یا پراکنده که زمان دسترسی به اطلاعات مورد نیاز در اونها بسیار زیاد میشه و درخواستهایی زیادی هم از اونها میشه، استفاده می شه.
نحوه انجام اونهم به این صورته که داده ها از تمام مراکز جمع اوری میشه و در یک n بعدی نگهداری میشه. یعنی همه داده های مورد نیاز در یک انباره داده ها که یه مکعب n بعدی هستش نگهداری می شه.
نحوه پیاده سازی : هر DBMS (سیستم مدیریت بانکهای اطلاعاتی) برای خودش ابزار لازم جهت تهیه ساختار و اطلاعات انباره داده رو داره.
در sql server ابزار analysis service وظیفه ایجاد و استفاده از انباره داده رو دادره، در sql serverبه انباره های داده fact cube گفته میشه.
در اوراکل با استفاده از ابزار warehouse builder انباره داده رو می سازید و ازش استفاده می کنید. در اوراکل به اونها star schema می گن.
استفاده از انباره داده :
از انباره های داده می شه با استفاده از پرسو جوهای ساده اطلاعات پایه و کمی رو استخراج کرد (اطلاعات خام).
برای تحلیل روی داده های موجود از olap استفاده می کنن، که اطلاعات آماری و قابل تحلیل در مورد داده های موجود در انباره داده ها مناسبه.
برای تحلیلهای آماری و اقتصادی و تجارت و کارهایی که به تحلیل نتایج احتیاج داره از dataminig استفاده می کنن، که ابزارهای datamining رو شرکتهای مختلف ارایه می دن (اوراکل ابزار خودش رو داره و sql server برای datamining هیچ ابزاری نداره). بهترین نوع دسترسی و تحلیلی به اطلاعات هستش، مثلا می تونید برای تعیین، میزان ریسک یه سرمایه گذاری برای یه تولید جدید، برآورد میزان سود احتمالی یه شرکت، میزان تمایل استفاده از خدمات ما در بین مشتریان قدیمیتون و ...استفاده کنید.

2- بانکهای اطلاعاتی گسترده، وقتی مناسب هستن که اطلاعات شما پراکندگی بالایی دارن و این پراکندگی لازم و واجب هستش. مثل سیستم یه شرکت خدمات مسافرتی، این شرکت نمی تونه تمام اطلاعات مربوطه به پروازها، هتلها و ... رو در یکجا نگهداری کنه پس برای دریافت اطلاعات باید از اطلاعات شرکتهای ارایه دهنده خدمات پرواز، هتلها و .. استفاده کنه.در این سیستمها با داشتن مجوز از شرکت مزبور می تونید اطلاعات لازم رو از بانک اونها بخونید بدون اینکه نیازی به نگهداری و مدیریت اون اطلاعات داشته باشید.
در این سیستمها مثلا برای رزرو یه تور توسط یه مشتری باید تمام مراحل رزور انجام بشه و بعد رزرو تایید بشه. نرم افزار مربوط اول با فروشنده یا فروشنده های بلیط تماس میگیره در خواست رزرو یه بلیط برای مقصد میده (اولین کسی که بلیط رزرو اونرو تامین کنه)، بعد به هتل یا هتلهای مقصد سر میزنه و در خواست جا میکنه (اولین هتلی که جای مورد نیاز رو تامین کنه) و بعد بقیه نیازها رو هم رزرو میکنه، در نهایت در صورتیکه همه رزروها ok شد، برای همه تایید رزروها رو میفرسته و تور طرف رو تایید میکنه و اون شخص با خیال راحت و مطمین به مسافرت میره.
دراین نوع سیستمها تنها نکته مهم در زمان ثبت اطلاعات در بانکها اطلاعاتی راه دور هستش، برای رفع این مشکل هم تراکنشهای گسترده به کمکت میان و کل مدیریت رو انجام میدن، فقط یادت باشه که دستورات درخواست رزرو و تاییده ها باید یا برای همه انجام بشن یا اصلا انجام نشن، و کل دستورات رو تو تمام حالتها باید در داخل بدنه transaction قرار بدی.
برای اینکه تراکنش گسترده باشه در sql server اونرو به شکل زیر می نویسی و بقیش دیگه با خود sql server هستش و تو منتظر جوابت میمونی (خیلی سادس) :


USE pubs
GO
BEGIN DISTRIBUTED TRANSACTION
UPDATE authors
SET au_lname = 'McDonald' WHERE au_id = '409-56-7008'
EXECUTE [نام سرور راه دور].pubs.dbo.changeauth_lname '409-56-

7008','McDonald'
COMMIT TRAN
GO

می بخشی دستور لازم برای اوراکل رو الان یادم نیست.

3- بعضی از بانکهای اطلاعاتی (مثل اوراکل) قابلیت مدیریت اطلاعات رو بصورت گسترده دارن. مثلا میتونید بانک اطلاعاتی مورد نظرتون رو به بخشهای اطلاعاتی ای تقسیم کنید که هر کدوم در روی یک سرور قرار داشته باشه، مثلا اگه بخش فروش یک کارخانه تو یه شهر، تولید تو یه شهر دیگه قرار داره، لازم نیست 2 تا بانک اطلاعاتی داشته باشیم، یه بانک داریم که یه بخشی از اطلاعات اون تو شهر تولیدشونده و بخش دیگه بانک تو شهر محل فروش قرار داره.
این نوع طراحی و استفاده از بانک برای مورادی خوبه که اطلاعات شما در محلهای دور از هم قرار دارن و حجم تبادل اطلاعات داخلی هر بخش بالاست و حجم ارتباطلا بین اونها کمتر هست.

habedijoo
سه شنبه 27 اردیبهشت 1384, 16:54 عصر
آقا مجید سلام
مطمئنا با یه کلمه "متشکرم" نمی شه جواب این همه توضیحات جالب و خواندنی شما رو داد ، حتی به اندازه تایپ اینه همه مطلب هم نمی شه .

ولی بیش از این هم کاری از دستم بر نمیاد . متشکرم . دست شما درد نکنه :flower:

یه سوال ؟ من قرار یه پروژه شروع کنم که با VB.net و Ado.Net و SqlServer200 هست . پایگاه برنامه تحت شبکه است . البته برنامه نویسی تحت شبکه هم داره که الان دارم باسوکت به استقبالش می رم . تمام بانک روی یه Server نصب میشه و نرم افزارهای Client یا به اون وصل میشن و اطلاعات رومی گیرن و یا اطلاعات رو به Server میفرسن و جوابشون رومیگیرن .

من میخوام به شکل زیر این کار (یافتن بانک اطلاعاتی توسط Client ها) را انجام بدم .

یه فایل با پسوند UDL ایجاد می کنم . ( به این شکل که Notepad رو باز می کنیم و فایل جدید رو با پسوند UDL ذخیره میکنیم . بعد اون روکه حالا شکلش هم عوض شده باز می کنیم . و سرور و بانک که همه اش میمونه به عهده ODBC را انتخاب می کنیم . بعید داخل برنامه به جای مسیر Connection این فایل UDL را باز می کنیم و سطرهای اونو به جای مسیر سرور قرار می دهیم . )در ضمن فایل UDL را همیشه در کنار نرم افزار نگه می داریم .

می خواستم ببینم نظر شماراجع به این روش چیه ؟

باز هم متشکرم

تا بعد

majid_afra222
سه شنبه 27 اردیبهشت 1384, 20:19 عصر
سلام
اولا اینکه قابلی نداشت
دوما به نظر من برنامه نویسی یه کار نسبیه و هر کسی ایده های خودش رو برای انجام یه کار داره (به شرطی که روی اون تحقیق کافی رو انجام داده باشه).
خوبیه برنامه نویسی به همین تفاوتهای موجودشه.

امیدوارم تو کارت موفق باشی habedijooی عزیز. :flower: