PDA

View Full Version : درخاست راهنمایی کلی در خصوص پایگاه داده



jlover
پنج شنبه 20 اسفند 1388, 12:33 عصر
با عرض سلام و ارادت خدمت دوستان عزیز و گرامی

من تا بحال با هیچ پایگاه داده ای کار نکردم :ناراحت: و برنامه های کاربردی تقریبن کوچیکی که تا بحال با جاوا نوشتم ( همه ش واسه تمرین بوده البته ) با فایلها نیازمندیهای برنامه رو تامین میکرده :

برای مثال برنامه ای که اعدادی از کاربر میگیره ، اونها رو در یک فایل ذخیره میکنه ( مرتب یا نامرتب بنا به درخاست کاربر ) و حتی میتونه دو تا از این فایلها ( یا لیستها ، که به سادگی حاوی رکورد ( شیء ) هایی هست که دو تا فیلد دارند ( یک پرچم نشاندهنده ی مرتب بودن یا نبودن و یک آرایه از اعداد ) ) رو - باز هم بنا به درخاست کاربر - بصورت نزولی یا صعودی مرتب و در یک فایل دیگه از نوع مورد نظر ذخیره کنه

اما خب ،من دوره کارشناسی مهندسی نرم افزار رو گذروندم و از این رو درس پایگاه داده رو هم پاس کردم و با مفاهیم و نظریات این حوزه آشنا هستم

اما سوال :

* من فکر میکنم مبحث ذخیره،بازیابی و مدیریت اطلاعات در یک پایگاه داده ، خود به تنهایی یک حوزه ی مستقل هست و بسیاری نرم افزار ها فقط با استفاده از یک زبان پایگاه داده ای ساخته میشند و مورد بهره برداری قرار میگیرند ( ؟ )
نقش یک برنامه ی کاربردی پیاده سازی شده با یک زبان سطح بالا - مثلن جاوا - در این حوزه چی هست؟چون میدونم که مثلن جاوا چیزی به نام JDBC داره...همچنین MySQL و Oracle رو در این بین داریم

در مثالی که عنوان کردم شاید کارهای مرتب سازی و ادغام ، به سادگی ( بدون هزینه ای که من - البته فقط برای تمرین،چون میدونم برای اعمالی مثل مرتب سازی هم کلاسهایی آماده وجود دارند - برای پیاده سازی متد های مرتب سازی و ادغام متحمل شدم ) و از طریق خصوصیات ذاتی یک پایگاه داده قابل حصول بوده !

آیا توسعه ی هر نرم افزاری - در مقیاس تجاری - به کمک پایگاه داده احتیاج داره ؟ یعنی حتمن نیاز هست که از پایگاه داده - و به نوبه ی اون از یک زبان پایگاه داه - بهره گیری کنه ؟

به عبارت ساده تر من برای تمیز دادن و درک همکاری بین پایگاه داده و برنامه ی کاربردی که در سطح بالای پایگاه داده قرار میگیره و با پایگاه ارتباط برقرار میکنه دچار مشکل هستم :افسرده:

شاید جای این بحث در تالار مربوط به پایگاه داده بوده،اگر لازم میبینید بفرمایید تا یه رونوشت هم اونجا بذارم
من چند ماه پیش تصمیم گرفتم که تمام آینده م رو رو جاوا بنا کنم و هنوز البته نمیدونم دقیقن به چه حوزه ای ( mobiel,enterprise,....) قراره بچسبم،اما طبیعتن از استاندارد شروع کردم،حالا فکر میکنم به مرحله ای نزدیک شدم که یکی از ایده های ساخت نرم افزار رو عملی کنم و توی این نرم افزار با حجم زیادی از اطلاعات روبه رو خاهم بود که باید برای بازیابی بهینه در جستجو ، به شیوه ی مطلوبی مدیریت بشند.....خب رو همین حساب احتیاج به دونستن یه سری چیزا در رابطه با پایگاه داده دارم و از اونجایی که عاشق جاوا و برنامه نویسی هستم میخام تو همین باغ جاوا قدم بزنم ، نه اینکه یک توسعه گر پایگاه داده مثلن با اوراکل بشم

از عزیزان باتجربه،مخصوصن کسایی که تجربه ی اجرایی دارند،عاجزانه تقاضای راهنمایی دارم

کوچکترین راهنمایی پاس داشته میشود :بوس:

اسماعیل

amirfarshad
شنبه 22 اسفند 1388, 11:25 صبح
JDBC یک درایور هست.

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

زبانهای برنامه نویسی پایگاه داده، منظورم برای کاری مانند ساخت جدول، اکثرا شبیه به هم هستن و تفاوتهای جزئی دارن با هم. شما TSQL رو یاد بگیری که پایه اکثر اونهاست، برای استفاده از بیشتر دیتابیسهای موجود کفایت میکنه، فقط کافیه که تفاوتها رو یاد بگیری.

این نظر من بود :)

jlover
شنبه 22 اسفند 1388, 11:42 صبح
یادم میاد اون موقع با دوستاممون یه بحثی ( البته اون موقعها من فقط شنونده بودم :خجالت: ) بود در مورد سرعت ذخیره و بازیابی داده های مورد نیاز برنامه
که ساماندهی داده ها بدون استفاده از پایگاه داده های رابطه ای مدرن ( یعنی همینطور که تو مثالی که به عنوان یه برنامه ی ساده زدم ) و سپردن این کار به خود برنامه ، گرچه پیچیدگی رو بیشتر میکنه اما سرعت بیشتری به کار میده
حالا نمیدونم تا چه حد درسته !؟