نام‌نویسی
پس از تکمیل اطلاعات زیر، گذرواژه برای شما ارسال می‌شود.

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

محصولات جدید فروشگاه ساری تک

با ویندوزسنتر همراه باشید.

data

برای اینکه بخواهیم از دیتابیس یا بانک اطلاعاتی استفاده کنیم باید ابتدا آن را درک کنیم. به عنوان یک برنامه نویس شما تا به حال حتما با دیتابیس و مفاهیم ان ارتباط داشته اید. این که چگونه به ان وصل شوید چگونه به آن داده ارسال کنید چگونه آن را چک کرده و ذخیره کنید و بعدا آن را بخوانید همه و همه باید طبق اصول باشد.

باید بدانیم اصول طراحی پایگاه داده در دانشگاه حدود سه واحد درس مستقیم و نه واحد حدودا درس مرتبط دارد و باید ان را اصولی یاد گرفت. برای همین برای دوستانی که به شکل اکادمیک اقدام به یادگیری برنامه نویسی نکرده اند این یادگیری توصیه می شود.

data

درس اصول طراحی پایگاه داده از مهم ترین و کاربردی ترین مباحث آموزشی در رشته های نرم افزار و فناوری اطلاعات می باشد و لزوم یادگیری صحیح و اهمیت این درس بر کسی پوشیده نیست ، اما یادگیری اصولی و در عین حال کاربردی این درس نیازمند استادی است که در عین آموزش نظری و تئوری این درس ، با تجربه ی فعالیت نرم افزاری خود نحوه ی کار عملی با مبانی نظری این درس را در یک محیط عملیاتی مانند SQL Server آموزش دهد تا دانشجو بتواند در عین یادگیری مبانی نظری مانند اصول طراحی نمودار های ER و یادگیری مفاهیم اولیه پایگاه داده مانند موجودیت ها ، صفات و رابطه ها بتواند یک پایگاه داده ی اصولی و حرفه ای پیاده سازی کرده و پیچیده ترین پرس و جو ها ( QUERY ) را به صورت عملی بر روی این پایگاه داده اعمال کند .

data

توضیح ER

مدل موجودیت-ارتباط (Entity-Relationship) یا مدل ER توسط Peter Pin-Shan Chen از انستیتو تکنولوژی ماساچوست (MIT) در سال 1976 طراحی شد.

مدل ER مدل ادراکی داده است که دنیای واقعی را به صورت موجودیت ها و وابستگی های بین آنها می بیند.

در مدل ER ساختار پایگاه داده به صورت یک دیاگرام به تصویر کشیده می شود که ارتباط منطقی موجودیت ها را به صورت یک نمودار ترسیمی نمایش می دهد.

مدل ER به عنوان ابزاری برای طراحی پایگاه داده بسیار موفق است و کمک بسیار خوبی برای طراحی، پیآده سازی، بهینه سازی و اشکالزدائی برنامه های پایگاه داده است.

ساختارهائی که در مدل ER استفاده می شوند براحتی به جداول رابطه ای تبدیل می شوند.

مدل ER مستقل از سخت افزار و DBMS است.

اجزای نمودار ارتباط-موجودیت

یک دیاگرام ER از اجزای زیر تشکیل شده است:

• موجودیت
• صفات خاصه
• ارتباط
• کاردینالیتی

برای صرفه جویی در وقت مثال ها را حذف می کنیم ولی شما برای یادگیری بهتر و بیشتر می توانید به اینجا مراجعه نمایید.

data

معرفی SQL و ساختارهای آن

در بانکهای اطلاعاتی دو زبان مجموعه ای نمادین جامع و قدرتمند یعنی زبان جبر رابطه ای و زبان حساب رابطه ای برای ایجاد پرس و جوها معرفی شده اند اما سیستم های پایگاه داده ای تجاری امروزی نیازمند پرس وجوهایی هستند که بسیار راحت تر از زبان های جبر رابطه ای و حساب رابطه ای باشد. بر این اساس در این پست با زبان پرس وجوی تجاری بسیار پرکاربرد و مهمSQL که ترکیبی از جبر رابطه ای و حساب رابطه ای است آشنا می شویم. در واقع زبان SQL، امروزه بعنوان زبان استاندارد پایگاه داده رابطه ای شناخته میشود.

data

زبان SQL یا Structured Query Language یک زبان با پیاده سازی آزاد از جبر رابطه ای و حساب رابطه ای است که کار کردن با جداول را برای کاربران بسیار راحت کرده است. SQL یک زبان بیانی است یعنی کاربر در استفاده از این زبان تنها خواسته خود را اعمال میکند و در بدست آوردن نتایج و چگونگی ایجاد آن هیچ دخالتی نداررد. در واقع باید گفت دستورات SQL وارد شده از طرف کاربر، خود به عملگرهای جبر رابطه ای تبدیل میگردد.

پرس وجوهای زبان SQL هم میتواند مستقل و در خور محیط کاربری SQL انجام شود و هم توانایی این را دارد تا به همراه یک زبان میزبان مانند دلفی، ویژوال C، بیسیک، جاوا و … ادغام شده و نتایج پرس وجوها را شکل دهد.

SQL برخلاف جبر رابطه ای و حساب رابطه ای از دو اصطلاح رابطه و متغیر رابطه ای استفاه میکردند از اصطلاح جدول استفاده میکند. زبان SQL از بخش های متفاوتی تشکیل یافته است:

DDL یا زبان تعریف داده : که شامل دستوراتی برای تعریف شمای رابطه ها و حذف و تغییر آنهاست.

• زبان دستکاری داده ها : که شامل یک زبان پرس وجو بر مبنای جبر رابطه ای و حساب رابطه ای است.

DML جانشین شونده : یعنی زبان SQL توسط این بخش میتواند مهمان یک زبان میزبان مانند دلفی، بیسیک، جاوا و … شود.

دیدگاه (View) : که شامل دستوراتی برای ایجاد، تغییر و حذف دیدگاه هاست.

اعتبارسنجی : این بخش وظیفه ایجاد و رعایت قوانینی برای دسترسی به جداول و دیدگاه ها را فراهم می نماید.

جامعیت : این بخش وظیفه ایجاد انواع محدودیت بر روی اطلاعات ذخیره شده را اعمال میکند.

تراکنش : این بخش وظایف همزمان سازی چند کار و نظارت بر آغاز و پایان تراکنش ها را بر عهده دارد.

data

در داخل برنامه نویسی شما حتما از متغییر های زیادی استفاده کرده اید برای ذخیره سازی این متغییر ها در صورت نایز باید آن ها را به همان شکلی که هستند استفاده کنیم و ذخیره کنیم و این نیازمند این است که همان اندازه و جا برای ذخیره سازی ان ها اختصاص دهیم و این نیازمند این است که زبان برنامه نویسی و دیتابیس مورد استفاده هم خوانی داشته باشند. برای شناخت نوع دیتاتایپ های موجود مراجعه کنید به مطلب.

ساختار معماری سیستم بانک اطلاعاتی

معماری سیستم بانک اطلاعاتی از قسمتهای زیر تشکیل شده است:

• سطح داخلی یا فیزیکی (Internal View)

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

data

 سطح ادراکی یا منطقی یا مفهومی (conceptual View)

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

data

• سطح دیدگاه یا خارجی (External View)

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

data

تبدیلات بین سطوح (Mapping)

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

  1.  تبدیل ادراکی – داخلی

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

   2.  تبدیل خارجی – ادراکی

این تبدیل به مفهوم ایجاد نوعی تناظر بین دیدگاه های مختلف و دید واحد ادراکی است. دید یک کاربر خاص تنها بخشی از کل دید ادراکی است و از نظر ساختارهای داخلی با دید ادراکی متفاوت است. این مفاهیم توسط این تبدیل میسر میشود.

data

یک مثال عملی

برای اینکه دید کلی و خوبی از پایگاه داده داشته باشید آموزش بالا خیلی کم است و باید چندین برابر این چیز ها مطالعه کنید اما ما به دلیل ذیق وقت و منابع به همین بسنده می کنیم و آموزش ها را بر مبنای این نکته که شما مطالب مربوط به دیتابیس را بلد هستید جلو خواهیم برد.

data

در حالت کلی برای ایجاد پایگاه داده در اندروید دو راه داریم:

1- سرویس کلینت سرور یا خادم مخدوم

2- سیستم دیتابیس Sqlite

در حالت اول سرویس در روی سرور اجرا شده است و ما فقط از آن استفاده می کنیم. به اصطلاح خدمات می گیریم و نیاز به برنامه نویسی نسبتا دشوار تری است.

حالت دوم این است که خود دیتا بیس را در داخل اپ بسازیم. این مثال را در آموزش های ثانویه دنبال خواهیم کرد و صرفا این کد برای این است که شما با دستورات آشنا شوید. برای مثال های بیشتر به اینجا مراجعه کنید.

mydb = new DBHelper(this);
ArrayList array_list = mydb.getAllCotacts();
ArrayAdapter arrayAdapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1, array_list);

obj = (ListView)findViewById(R.id.listView1);
obj.setAdapter(arrayAdapter);
obj.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
// TODO Auto-generated method stub
int id_To_Search = arg2 + 1;

Bundle dataBundle = new Bundle();
dataBundle.putInt(“id”, id_To_Search);

Intent intent = new Intent(getApplicationContext(),DisplayContact.class);

intent.putExtras(dataBundle);
startActivity(intent);
}
});
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item){
super.onOptionsItemSelected(item);

switch(item.getItemId()) {
case R.id.item1:Bundle dataBundle = new Bundle();
dataBundle.putInt(“id”, 0);

Intent intent = new Intent(getApplicationContext(),DisplayContact.class);
intent.putExtras(dataBundle);

startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}

نتیجه گیری:

برای استفاده از دیتابیس در اندروید شما باید حتما یک دید کلی برای طراحی دیتابیس داشته باشید. برای داشتن این دید توصیه می شود که این دید را ابتدا در برنامه هایی نسبتا آسان تر مثل سی شارپ انجام دهید. چراکه عیب یابی آن آسان تر سریع تر است. با این حال یک دیتابیس کوچک و کاربردی شاید همیشه برای اپ های متوسط و متوسط به بالا لازم است و نمی توان این واقعیت را کتمان کرد.

پیوست

Leave a Reply

Your email address will not be published.

Developed by Nasour Naghipour