استفاده از MySQL در دات نت فریم ورک

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

دات نت فریم ورک به صورت توکار از MySql پشتیبانی نمی کند و فراهم کننده پیش فرضی  برای کار با آن ارائه نمی کند. شما باید برای استفاده از MySql در دات نت از کتابخانه ای که خود MySql در اختیار برنامه نویسان قرار داده استفاده کنید. استفاده از MySql به لطف این کتابخانه دقیقاً مشابه استفاده از SQL Server یا Access است. ابتدا از اینجا کانکتور MySQL برای دات نت فریم ورک را دریافت کنید. متاسفانه اگر ایران هستید نمی توانید از وب سایت رسمی MySQL فایلی دریافت کنید! دوستان داخل ایران از این لینک برای دریافت این کتابخانه استفاده کنند.

این فراهم کننده از معماری ADO.NET پیروی می کند و به همین علت اگر قبلاً با کامپوننت های ADO.NET مثلاً برای برقراری ارتباط با یک دیتابیس SQL Server استفاده کرده باشید، در اینجا مشکلی نخواهید داشت. به عنوان یک مثال ساده قصد داریم جدول tblUsers را بر روی دیتابیسی به نام Sample بسازیم. ابتدا یک پروژه تحت وب (یا تحت ویندوز، فرقی نمی کند) بسازید و فایلی را که دانلود کردید را به ارجاع های پروژه خود اضافه کنید (با کلیک راست روی نام پروژه در Solution Explorer ، انتخاب Add Reference و انتخاب فایل MySql.dll)  سپس فضای نام MySql.Data.MySqlClient را using کنید و سپس کدهای زیر را در جای مناسب قرار دهید.

string ConnectionString = "server=localhost; userid=root;password=;pooling=yes;Database=Sample;charset=utf8";
using (MySqlConnection connection = new MySqlConnection(ConnectionString))
{
connection.Open();
using (MySqlCommand command = new MySqlCommand())
{
command.Connection = connection;
command.CommandText = "CREATE TABLE tblUsers (Uid INT AUTO_INCREMENT, Uname VARCHAR(100) NOT NULL, " +
"Pwd VARCHAR(100) NOT NULL, PRIMARY KEY(Uid)) CHARACTER SET utf8 COLLATE utf8_persian_ci;";
command.ExecuteNonQuery();
}
}

همانطور که در این مثال مشاهده می کنید در کانکشن استرینگ MySql فوق نام سرور، نام کاربری، رمز عبور و نام دیتابیس تعیین شده اند که شما باید به جای آن ها اطلاعات مربوط به خود را قرار دهید. برای اجرای یک دستور SQL بر روی سرور MySql شما نیاز به یک آبجکت MySqlConnection دارید که با تعیین یک رشته اتصال و فراخوانی متد Open به دیتابیس Sample موجود بر روی localhost وصل می شود. سپس با ایجاد یک آبجکت MySqlCommand و تعیین دستور SQL ساخت جدول tblUsers و اجرای متد ExecuteNonQuery به مقصود خود می رسید.

حالا می خواهیم روالی بنویسم تا عملیات ثبت نام کاربران در سایت را انجام دهد. این روال با گرفتن نام کاربری و رمز عبور اقدام به ایجاد رکورد کاربر در جدول tblUsers می کند.

public void InsertUser(string Username, string Password)
{
using (MySqlConnection connection = new MySqlConnection(ConnectionString))
{
connection.Open();
using (MySqlCommand command = new MySqlCommand())
{
command.Connection = connection;
command.CommandText = "INSERT INTO tblUsers (Uname, Pwd) VALUES (?Uname, ?Pwd)";
command.Parameters.AddWithValue("?Uname", Username);
command.Parameters.AddWithValue("?Pwd", Password);
command.ExecuteNonQuery();
}
}
}

همانطور که مشاهده می کنید اگر کار با کلاس های استاندارد ADO.NET مثل SqlCommand را بلد باشید در استفاده از MySQL هیچ مشکلی نخواهید داشت. تنها فرق MySQL با SQL Server در اینجا این است که برای مشخص کردن پارامترها به جای علامت @ باید از علامت ? استفاده کنید. من کد درج رکورد به یک دیتابیس MySql را نوشتم، شما کدهای Update و Delete را بنویسید!

این کتابخانه شامل کلاس های MySqlDataReader و MySqlDataAdapter نیز هست که شما می توانید از آن ها مثل دیگر کلاس های پیش فرض ADO.NET استفاده کنید و اعمال Data Binding و نمایش اطلاعات در یک GridView را به راحتی و با روش های آشنا انجام دهید. به طور مثال برای نشان دادن محتویات جدول tblUsers در یک GridView می توانید از کدی شبیه به کد زیر کمک بگیرید :

DataSet ds = new DataSet();
MySqlDataAdapter dataAdapter = new MySqlDataAdapter("SELECT * FROM tblUsers", connection);
dataAdapter.Fill(ds);
GridView1.DataSource = ds;

همانطور که مشاهده می کنید استفاده از دیتابیس های MySql به لطف معماری ADO.NET هیچ فرقی با دیگر دیتابیس های پشتیبانی شده توسط دات نت ندارد.

farasun.wordpress.com

پ.ن 1 : علت تاخیر زیاد در انتشار مطلب جدید فیلتر شدن کل وردپرس.کام و امتحانات دانشگاه بود. تنبلی را نیز به این دلایل اضافه کنید!

پ.ن 2 : سایت ها یا وبلاگ های دیگری که به نام «فراسان» فعالیت می کنند به بنده و این وبلاگ هیچ ارتباطی ندارند! من سه سال پیش این نام را کاملاً از ذهنم بیرون کشیدم و از هیچ جایی کپی نکردم! فقط این وبلاگ و این سایت با نام «فراسان»  به من مربوط هستند.

PHP برای برنامه نویسان ASP.NET – قسمت هفتم

قسمت اول قسمت دومقسمت سومقسمت چهارمقسمت پنجمقسمت ششم

در این قسمت با نحوه کار با دیتابیس در PHP آشنا خواهید شد. همانطور که پرکاربردترین RDBMS در نزد برنامه نویسان ASP.NET برنامه SQL Server مایکروسافت است، MySQL پرکاربردترین RDBMS در میان برنامه نویسان PHP است. در این سری آموزش ها ما نیز بر روی دسترسی به داده ها در MySQL تمرکز خواهیم داشت.

اتصال یه یک دیتابیس MySQL

قبل از هر کاری ابتدا شما باید یک ارتباط میان برنامه خود و MySQL ایجاد کنید. برای این کار PHP یک تابع به نام my_sql_connect دارد که نام سرور، نام کاربری و رمز عبور دیتابیس MySQL را از شما می گیرد و یک اتصال برای شما ایجاد می کند. اگر این تابع با موفقیت به دیتابیس مورد نظر شما وصل شود true و ر غیر این صورت false برمی گرداند. برخلاف اتصال به SQL Server در ASP.NET که با استفاده از کلاس های دات نت انجام می گیرد، اینجا در PHP با استفاده از این تابع و توابع دیگر می توان با یک دیتابیس MySQL کار کرد. به مثال زیر توجه کنید :

<?php
$link = mysql_connect(‹localhost›, ‹user›, ‹password›);
if (!$link) {
die(‹Could not connect: ‹ . mysql_error());
}
echo ‹Connected successfully›;
mysql_close($link);
?>

تابع mysql_connect در این مثال با استفاده از نام کاربری user و رمز عبور password به سرور localhost وصل می شود و نتیجه این اتصال را در متغیر link می ریزد. اگر این عمل موفیت آمیز باشد عبارت Connected successfully چاپ می شود، در غیر این صورت پیغام خطای خود MySQL را نمایش می دهد و به اجرای این اسکریپت خاتمه می دهد. در انتها نیز اگر اسکریپت با موفیت به MySQL وصل شده باشد، با تابع mysql_close اتصال را می بندیم. تابع die مانند تابع exit (در قسمت قبلی) یک پیغام را نمایش می دهد و اجرای ادامه اسکریپت را متوقف می کند.

البته تابع mysql_connect پارامترهای دیگری نیز دارد که ما به آن ها نمی پردازیم. همچنین شما می توانید این تابع را بدون ذکر هیچ پارامتری صدا بزنید که در این صورت از مقادیر ثابت پیش فرض موجود در فایل php.ini استفاده خواهد شد.

ایجاد یک دیتابیس بر روی MySQL

شما قبل از اینکه بخواهید از یک دیتابیس در برنامه خود استفاده کنید، ابتدا باید آن را ایجاد کنید. برای این کار می توانید از ابزارهایی مثل PhpMyAdmin استفاده کنید یا خودتان با استفاده از کدنویسی PHP دیتابیس MySQL خود را بسازید. در اینجا روش دوم که روش مناسب تری نیز هست را با یک مثال توضیح می دهم. لطفاً به مثال زیر توجه کنید :

<?php
$sql_create_db = ‹CREATE DATABSE test›;
$sql_create_table = ‹CREATE TABLE table1 (tbl_id INT PRIMBARY KEY, fname VARCHAR(100), lname VARCHAR(100))›;
$link = mysql_connect(‹localhost›,‹user›,‹password›);
if($link){
//Create Database
if(mysql_query($sql_create_db, $link))
echo «Database created.»;
else
die(«Error : « . mysql_error());
//Select Active Database
mysql_select_db(«test», $link);
//Create table
if(mysql_query($sql_create_table, $link))
echo «Table created.»;
else
die(«Error :» . mysql_error());
//Close Connection
mysql_close($link);
}
else
die(«Error connect to database : « . mysql_error());
?>

امیدوارم با دستورات SQL آشنایی کافی داشته باشید. در این مثال نتیجه اتصال به سرور MySQL را در متغیر link ریختیم، سپس با یک if چک می کنیم که آیا اتصال ما با موفقیت انجام پذیرفته یا خیر. اگر موفق بوده سعی می کنیم Database و Table مورد نظر خود را بر روی این اتصال بسازیم. برای این کار از تابع mysql_query استفاده می کنیم. این تابع یک دستور sql را بر روی MySQL اجرا می کند. اگر موفق به ایجاد دیتابیس بر روی سرور شدیم، با استفاده از تابع mysql_select_db دیتابیس جاری MySQL را به دیتابیس test تغییر می دهیم. بعد دوباره با استفاده از تابع mysql_query اسکریپت ایجاد table بر روی دیتابیس فعال را اجرا می کنیم که اگر موفقیت آمیز بود پیغام مناسب را نمایش می دهیم.

تابع mysql_query یکی از توابع بسیار پرکابرد برای دسترسی و تغییر داده ها در MySQL است. اگر یک اسکریپت فقط اجرایی و بدون مقدار برگشتی (مثل دستور Insert یا همین ایجاد دیتابیس) را به این تابع بدهید، مقادیر True یا False رابر خواهد گرداند، اگر دستور SQL شما نتیجه ای داشته باشد (مثل دستور Select) مقدار برگشتی این تابع اگر موفقیت آمیز باشد یک resource خواهد بود و در غیر این صورت False خواهد بود.

درج، به روز رسانی و حذف داده ها در MySQL

برای اجرای دستورات Insert, Update و Delete بر روی یک دیتابیس MySQL در PHP همانطور که در مثال بالا مشاهده کردید از تابع mysql_query استفاده می کنیم. نکته ای که برنامه نویسان ASP.NET باید به آن توجه داشته باشند این است که در PHP شما باید خودتان عمل دریافت اطلاعات از کاربر (با استفاده از فرم های HTML) و اعتبارسنجی داده های ورودی کاربر را انجام دهید تا از حملات SQL Injection در امان بمانید. در ASP.NET با استفاده از کلاس SqlParameter می توان تا حد زیادی از وقوع این حملات جلوگیری کرد. من یک مثال کوچک در مورد نحوه Insert یک رکورد به دیتابیسی که در مثال بالا ساختیم می زنم، Update و Delete را خودتان بنویسید.

<?php
$sql_insert = ‹INSERT INTO table1 (tbl_id, fname, lname) VALUES (1,»iman»,»nemati»)›;
$link = mysql_connect(‹localhost›,‹user›,‹password›);
if($link){
mysql_select_db(«test», $link);
if(mysql_query($sql_insert, $link)
echo «Inserted to database»;
mysql_close($link);
}
else
die(«Error: « . mysql_error());
else
die(«Error: « . mysql_error());
?>

البته در سناریوهای واقعی شما باید مقادیر فیلدها را از ورودی های کاربر بخوانید و در دستور sql بالا جایگذاری کنید.

خواندن اطلاعات از یک دیتابیس MySQL

منظور همان دستور Select در sql و خواندن تعداد رکوردهای مورد نظرمان بر اساس شرطی خاص است. برای این کار پس از اتصال به دیتابیس مورد نظر خود دستور Select مورد نظرتان را بوسیله تابع mysql_query اجرا می کنید و سپس نتیجه را در یک متغیر قرار می دهید. اگر متغیر برابر false نبود، با استفاده از تابع mysql_fetch_assoc شروع به خواندن رکوردهای مورد نظر خود می کنیم. به کد زیر نگاه کنید :

<?php
$sql_select = ‹SELECT * FROM test›;
$link = mysql_connect(‹localhost›,‹user›,‹password›);
if($link){
mysql_select_db(«test», $link);
$results = mysql_query($sql_select, $link);
if(!$results){
echo «Error : « . mysql_error();
exit;
}
if(mysql_num_rows($results) == 0){
echo «no record found.»;
exit;
}
while($item = mysql_fetch_assoc($results)){
echo $item[‹tbl_id›];
echo $item[‹fname›];
echo $item[‹lname›];
echo ‹<br />›;
}
mysql_free_result($results);
?>

تابع mysql_num_rows تعداد رکوردهایی که توسط دستور select خوانده شده اند را برمی گرداند. در دستور شرط while با استفاده از تابع mysql_fetch_assoc تعیین می کنیم که تا وقتی یک رکورد وجود دارد دستورات بدنه while اجرا شوند. اگر انتظار برگرداندن فقط یک رکورد را دارید نیازی به استفاده از حلقه while نخواهید داشت. تابع mysql_free_result هم سعی می کند حافظه اختصاص داده شده به متغیری که با اطلاعات یک دیتابیس پر شده را آزاد کند.

farasun.wordpress.com

ادامه دارد…

[Code to look] شنبه 20 تیر 88

سلام، قرار بود هر 10 روز يکبار در اين وبلاگ شاهد پست هايي با عناون «Code to look» باشيد که شامل لينک هايي به سورس کدهاي آموزشي جالب و مناسب باشد. متاسفانه به علت هاي گوناگوني اين کار انجام نشد و حالا با گذشتن دو ماه از اولين پست Code to look، دومين مطلب اين دسته بندي جديد وبلاگ منتشر مي شود. از اين به بعد هر يک ماه يکبار و نه هر 10 روز يکبار، در اين وبلاگ شاهد يک مطلب در اين دسته بندي خواهيد بود. يک ماه هم فرصت مناسبي است براي من که کدهاي جالب پيدا کنم و هم براي شما که حداقل نگاهي به آن ها بيندازيد.

کد نمونه های دات نت

Writing Thread Safe Code in C#x

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

دريافت کنيد

مثال ساده کار با Entity Framework

یک مثال ساده که نحوه کار کردن با Entity Framework را به شما در قالب یک پروژه ASP.NET آموزش می دهد. Entity Framework یک فریم ورک ORM برای دات نت فریم ورک است که مایکروسافت در سرویس پک دات نت فریم ورک 3.5 آن را عرضه نموده است.

دريافت کنيد

ايجاد يک Skype bot در دات نت

نحوه ارتباط با نرم افزار Skype و ایجاد یک سیستم جواب دهی خودکار در این نرم افزار را توسط دات نت و سی شارپ به شما آموزش می دهد.

دريافت کنيد

ساخت يک اپليکيشن سه لايه با استفاده از سيلورلايت 3، x.NET RIA Services و Azure TableStorage کد نمونه روز!

azurePlatform_web

اگر با مباحث تئوری «محاسبات ابری» آشنایی دارید، زمان آن رسیده است که به صورت عملی با این مفهوم آشنا شوید. این کد نمونه به شما نشان می دهد که چگونه می توان با استفاده از ابزارهای توسعه مایکروسافت یک اپلیکیشن روی ابر ساخت. در این پروژه سیلورلایت 3.0 به عنوان لایه نمایش، x.NET RIA Services برای لایه Business logic و Azure TableStorage برای پیاده سازی لایه دسترسی به داده مورد استفاده قرار گرفته اند.

دريافت کنيد

پياده سازي مرتب سازي در يک مجموعه Generic

عنوان اين کد نمونه بسيار واضح است. نويسنده اين کد نمونه، از LINQ براي مرتب سازي يک Generic Collection بهره گرفته است.

دريافت کنيد

مشترک فید فراسان شوید!

قرار نیست فقط برای دوستان دات نتی کد نمونه معرفی کنم و دوستان PHPکار را فراموش کنم!

کد نمونه های PHP

اسکریپت کاربران آنلاین سایت

سیستم تصدیق هویت کاربر با PHP و MySQL

ایجاد تصاویر بند انگشتی یا Thumbnail روی هوا!

اسکریپت ایجاد صفحه دانلود در هر سایتی با قابلیت شمارش تعداد دریافت فایل ها

نکاتی برای افزایش بهره وری PHP و MySQL در سرور – مقاله

پردازش پیشرفته رشته ها با تکنیک های Regular Expression – مقاله

farasun.wordpress.com

امیدوارم این مطلب برای شما مفید واقع شود.

برای از دست ندادن مطالب بعدی این وبلاگ مشترک فید فراسان شوید! نمی دانید فید چیست!؟

MySQL انتخابی مناسب

اگر دنبال یک سیستم مدیریت بانک اطلاعاتی کم هزینه یا رایگان می گردید، چندین انتخاب مناسب پیش رو خواهید داشت : MySQL, PostgreSQL, SQLite و یا یک نسخه ی رایگان از نرم افزارهای تجاری همچون SQL Server Express.MySQL Logo هنگام انتخاب چنین نرم افزاری باید ببینید چه ویژگی ها و امکاناتی بیشتر از همه برای شما مهم است. کارایی، پشتیبانی، امکانات، مجوز استفاده (Licence) و قیمت، همه فاکتورهایی هستند که باید آن ها را در نظر بگیرید. بر همین اساس من بر اساس تجربه و نظر شخصی MySQL که دارای ویژگی های مناسبی است به شما پیشنهاد می کنم.

  • سرعت : MySQL بسیار سریع است. توسعه دهندگانی که با MySQL کار کرده اند به شما خواهند گفت که MySQL یکی از سریع ترین نرم افزارهای مدیریت بانک اطلاعاتی است که تا به حال تجربه کرده اید. برای تحقیق بیشتر در این زمینه به این صفحه از وب سایت رسمی MySQL مراجعه کنید.
  • سادگی در استفاده : MySQL بسیار قدرتمند و انعطاف پذیر است و کار کردن با آن از دیگر نرم افزارهای مدیریت بانک اطلاعاتی ساده تر خواهد بود. MySQL پیچیدگی های نصب و مدیریت سیستم های بزرگی همچون Oracle را ندارد و کاربری آن نسبتاً آسان است.
  • پشتیبانی از زبان پس و جو : MySQL از زبان استاندارد SQL که در تمام سیستم های مدیریت بانک اطلاعاتی مدرن استفاده می شود، پشتیبانی کامل می کند.
  • توانایی ها : سرویس دهنده ی MySQL دارای قابلیت Multi-thread است، که کلاینت های مختلف می توانند در یک زمان واحد به سرویس دهنده متصل شده و از آن سرویس بگیرند. شما قادر خواهید بود که با استفاده از رابط های مختلف به MySQL دسترسی پیدا کنید و از قابلیت های مختلف آن استفاده کنید. از طریق خط فرمان، مرورگر وب و یا برنامه های کاربردی مختلف می توانید به سرویس دهنده ی MySQL دسترسی پیدا کنید و پرس و جوهای مختلف را روی دیتابیس های موجود روی آن اجرا کنید و نتایج مورد نظر خود را بدست بیاورید. به علاوه، رابط های برنامه نویسی مختلفی برای زبان های متعددی از قبیل C, Perl, Java, PHP, Python و Ruby در دسترس است. حتی می توانید با استفاده از برنامه های کاربردی که از ODBC پشتیبانی می کنند، به سرویس دهنده MySQL دسترسی داشته باشید.
  • امنیت : MySQL کنترل دسترسی به داده ها را در پایگاه های داده به عهده می گیرد و اجازه ی دسترسی به داده ها را به افراد غیر مسئول نخواهد داد. برای فراهم نمودن امنیت بیشتر، MySQL از اتصالات کد گذاری شده با استفاده از پروتکل SSL پشتیبانی می کند.
  • پشتیانی از شبکه : MySQL برای کار در شبکه هی مختلف بهینه سازی شده است. بانک های اطلاعاتی MySQL در شبکه های محلی و اینترنت قابل دسترسی هستند و می توانید به داده های خود هر جا که هستید، دسترسی داشته باشید و با افراد مختلف به اشتراگ بگذارید.
  • عدم وابستگی به بستر اجرا (Cross-Platform) : این نرم افزار روی بسیاری از توزیع های لینوکس و همچنین سیستم عامل های غیر یونیکس، مانند ویندوز، NetWare, Mac و OS/2 به راحتی قابل نصب و اجراست. MySQL روی سخت افزارهای کامپیوترهای شخصی و همچنین سرورهای قدرتمند قابلیت اجرا دارد.
  • قیمت : MySQL یک پروژه اوپن سورس است و با دو مجوز GPL و تجاری قابل دسترس است. مجوز GPL برای کاربران خانگی که به پشتیبانی خاصی نیاز ندارند مناسب خواهد بود و مجوز تجاری برای شرکت هایی که نمی خواهند مواد مجوز GPL را رعایت کنند.
  • کد باز : دسترس بودن کد MySQL امکان اعمال تغییرات و سفارشی کردن آن را به شما می دهد. توسعه دهندگان می توانند نسخه ای کاملاً سفارشی از MySQL برای استفاده شخصی یا تجاری برای خود تهیه کنند.

در مورد پشتیبانی چطور؟ سئوال خوبی است، استفاده از یک سیستم بانک اطلاعاتی بدون گرفتن کمک تقریباً غیر ممکن است. منابع و راهنماهای زیادی برای MySQL وجود دارد. یک راهنمای جامع و رسمی در کنار نرم افزار MySQL توزیع می شود که با استفاده از آن می توانید به یک حرفه ای در این زمینه تبدیل شوید. در ضمن در جامعه اوپن سورس هیچ وقت تنها نخواهید بود و سئوالات شما هیچ گاه بی پاسخ نخواهند ماند.

پ.ن : متاسفانه پس از پیوستن MySQL به شرکت Sun Microsystems طبق سیاست های این شرکت، دریافت نرم افزار MySQL برای آی پی های ایران مقدور نمی باشد.

معرفی بانک های اطلاعاتی رایگان و اوپن سورس

امروزه در عصر فناوری اطلاعات جنبش های فراوانی برای حذف «کاغذ» از جریان زندگی و کار انسان ها شکل گرفته و همچنان به صورت کاملاً جدی و سریع در کشورهای پیشرفته و کمی کندتر در کشورهای در حال توسعه ادامه دارد. در عصر امروز، فقط نگهداری اطلاعات مهم نیست بلکه بازیابی، ایمن سازی، جستجو، پشتیبان گیری، انتقال، انجام محساسبات، ایجاد گزارش های دلخواه و … معنی جدیدی پیدا کرده اند. از آنجا که امروزه اطلاعات با استفاده از کامپیوتر مورد پردازش قرار می گیرد، نرم افزارهای بانک اطلاعاتی یا Databaseها از اهمیت بسیار زیادی برخوردارند. رد پای بانک های اطلاعاتی را می توانید در نرم افزارهای مختلف و حتی وب سایت های معمولی و ساده نیز مشاهده کنید. استفاده از این نرم افزارها بسیار گشترش یافته و به همین میزان امکانات و ابزارهای ایجاد بانک های اطلاعاتی افزایش و پیشرفت چشمگیری داشته اند.

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

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

بانک های اطلاعاتی اوپن سورس

FlashFiler : موتور بانک اطلاعاتی Client/Server که با استفاده از دلفی توسعه یافته است.

H2 Database Engine : یک موتور بانک اطلاعاتی جاوا که SQL استاندارد و JDBC API را پشتیبانی می کند.

MySQL : سرویس دهنده بانک اطلاعاتی معروف و شناختhttps://i0.wp.com/www.ukoln.ac.uk/web-focus/events/workshops/webmaster-2004/talks/rahtz/html/mysql.pngه شده، چند کاربره، انعطاف پذیر و قدرتمند که نسخه های مختلفی تحت سیستم عامل های ویندوز، سولاریس، لینوکس، FreeBSD، AIX، SunOS و … عرضه کرده است. بسیاری از سروس دهنده های وب هاستینگ این سیستم بانک اطلاعاتی را به شما پیشنهاد خواهند کرد. همچنین MySQL در ایران طرفداران و کاربران زیادی دارد.

HSQLDB : سیستم بانک اطلاعاتی رابطه ای بسیار سریع و کوچک که کاملاً با جاوا پیاده سازی شده است.

Perst : بانک اطلاعاتی شیء گرا برای استفاده در جاوا و دات نت.

DataReel : یک سیستم cross-platform برای ایجاد بانک های اطلاعاتی چند خطی و نرم افزارهای ارتباطی که برنامه های تحت این سیستم به راحتی در تمامی سیستم عامل های موجو قابل اجرا و پیاده سازی می باشند.

Apache Derby : یک سیستم بانک اطلاعاتی رابطه ای که کاملاً با جاوا ایجاد شده است.

PostgreSQL : یک سیستم مدیریت بانک اطلاعاتی رابطه ای کاملاً حرفه ای با پشتیبانی از تمامی قابلیت های زبان SQL، تراکنش ها، توابع تعریف شده توسط کاربر. قابلیت اجرا در سیستم عامل های بر مبنای یونیکس مثل انواع توزیع های لینوکس و FreeBSD.https://i1.wp.com/www.vitavoom.com/images/PostgreSQL_logo.png

IBM’s Cloudscape : سیستم بانک اطلاعاتی رایگان، اوپن سورس و بسیار کوچک IBM که کاملاً با استفاده از جاوا طراحی و پیاده سازی شده است. این یانک اطلاعاتی روی تمامی سیستم عامل هایی که Java Virtual Machine روی آن ها نصب می باشد، اجرا خواهد شد.

Firebrid : یک سیستم بانک اطلاعاتی رابطه ای برای لینوکس، ویندوز و توزیع های مختلف تحت یونیکس که بر مبنای Interbase طراحی و توسعه یافته است.

B-Tree Filer : یک سیستم بانک اطلاعاتی بر مبنای فایل (File-based) که با استفاده از محیط Borland Delphi طراحی و پیاده سازی شده است و قادر به ایجاد دیتابیس های نسبتاً سریع می باشد. دیتابیس هایی که با این نرم افزار ساخته می شوند به هیچ ابزار جانبی از قبیل BDE و یا DLLهای third-party وابسته نیستند و توزیع آن ها روی سیستم های کاربران به راحتی کپی کردن فایل های معمولی امکان پذیر خواهد بود.

Berkeley DB : این سیستم بانک اطلاعاتی شامل ابزارهای جهت ایجاد دیتابیس هایی توکار در نرم افزارهای دسکتاپ و سرور با کارائی بسیار بالاست. دارا بودن استانداردهای یک سیستم بانک اطلاعاتی رابطه ای، قابلیت Hashing رکوردها، رکوردhttps://i2.wp.com/www.oracle.com/technology/products/berkeley-db/images/berkeley-db-logo.gifهای ثابت و با طول متغیر، صف بندی ، مدیریت تراکنش ها و پشتیبان گیری از دیتابیس ها به صورت آنلاین از قابلیت های این سیستم به شمار می روند. پشتیبانی از API های زبان های برنامه نوبسی C, C++, JAVA, Tcl, Perl و Python و قابلیت اجرا روی ویندوزهای 95/98/NT/2000 ، لینوکس و بسیاری از توزیع های بر مبنای Unix. کاملاً رایگان برای استفاده های غیرتجاری یا استفاده در نرم افزارهای اوپن سورس.

SQLite* : یک Library کوچک، کم حجم و پرقدرت به زبان C که قادر به ایجاد بانک های اطلاعاتی توکار در نرم افزارهاست. بر خلاف سیستم های مدیریت بانک های اطلاعاتی Client\Server، موتور بانک اطلاعاتی SQLite تنها یک کتابخانه است که با اتصال به برنامه های مختلف، جزئی  از آن برنامه ها می شود. نرم افزارهای معروفی همچون Firefox, Google Gears, Ruby on Rails از SQLite به صورت توکار استفاده می کنند.

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

Sybase ASE Express : ویرایش رایگان Sybase for Linux

Real Isam : یک کتابخانه (DLL) که از متدهای ISAM برای مدیرت و دستیابی به رکوردهای دیتابیس استفاده می کند. این کتابخانه می تواند در زبان های C++، Visual Basic، Delphi و غیره مورد استفاده قرار گیرد. (فقط برای ویندوز)https://i0.wp.com/www.techlog.org/images/sqlserver_express_logo.gif

Microsoft SQL Server Express Edition : نسخه رایگان و بدون محدودیت نرم افزار تجاری و پرقدرت SQL Server از شرکت مایکروسافت (فقط بری ویندوز)

منابع : Sourceforge.net , Freebyte.com, Oracle.com

* با تشکر از آقای مهرداد حاج ابوطالبی به خاطر یادآوری SQLite