موتور پایگاه داده کوچک در C++

 یک موتور پایگاه داده ساده شده است که در C++ به منظور درک جزئیات اساسی سیستم پایگاه داده پیاده سازی شده است. این موتور پایگاه داده ابتدایی ترین عملیات SQL و همچنین نمایه سازی در درخت B+ را پیاده سازی می کند.

کامپایل کنید

 

برای کامپایل، به دو کتابخانه C++ منبع باز نیاز دارید:

  • تقویت
  • خط خواندن

در Mac OS X، XCode می تواند برای باز کردن مستقیم “Project33.xcodeproj” استفاده شود. توصیه می شود دو کتابخانه مورد نیاز با Homebrew را نصب کنید. اگر از کتابخانه readline نه از طریق Homebrew یا نه با نسخه 8.0.1 استفاده می کنید، باید مسیر جستجوی سرصفحه و مسیر جستجوی کتابخانه Readline را در XCode تغییر دهید.

در پلتفرم هایی که Eclipse در دسترس است، کل پوشه را می توان به Eclipse وارد کرد.

برای اجرای آن، باید متغیر محیط جهانی “HOME” را تنظیم کنید، داده ها در “$HOME/ProjectData” ذخیره می شوند.

 
 

ویژگی ها

 

مدیریت پایگاه داده

 

  • ایجاد پایگاه داده
Syntax:		CREATE DATABASE database_name;
Example:	CREATE DATABASE abc;
 
  • پایگاه داده را رها کنید
Syntax:		DROP DATABASE database_name;
Example: 	DROP DATABASE abc;
 
  • نمایش پایگاه های داده
Syntax:		SHOW DATABASES;
Example: 	SHOW DATABASES;
 
  • استفاده کنید
Syntax:		USE database_name;
Example: 	USE abc;
 

مدیریت جدول

 

  • جدول ایجاد کنید
Syntax:		CREATE TABLE table_name
			(
			column_name1 data_type(size),
			column_name2 data_type(size),
			column_name3 data_type(size),
			....,
			PRIMARY KEY (column_name)
			);
Example: 	CREATE TABLE aaa
			(
			col1 int,
			col2 float,
			col3 char(8),
			PRIMARY KEY (col1)
			);
 

توجه: انواع داده های موجود عبارتند از: int، float و char(N). فقط یک کلید اصلی می تواند ایجاد شود.

  • جدول رها کردن
Syntax:		DROP TABLE table_name;
Example:	DROP TABLE aaa;
 
  • نمایش جداول
Syntax:		SHOW TABLES;
Example: 	SHOW TABLES;
 

مدیریت شاخص

 

  • ایجاد نمایه
Syntax:		CREATE INDEX index_name
			ON table_name (column_name);
Example: 	CREATE INDEX aaacol1 
			ON aaa (col1);
 

توجه: ایندکس فقط روی کلید اصلی ایجاد می شود. دستکاری درخت B+ در تمام SQLهای دستکاری داده پیاده سازی شده است.

  • رها کردن شاخص
Syntax:		DROP INDEX index_name;
Example:	DROP INDEX aaacol1;
 

دستکاری داده ها

 

  • درج کنید
Syntax:		INSERT INTO table_name
			VALUES (value1, value2, value3, ...);
Example: 	INSERT INTO aaa
			VALUES (111, 222.2, 'xyz');
 
  • انتخاب کنید
Syntax:		SELECT * FROM table_name
			WHERE column1 = value1
			and column2 = value2
			and ...;
Example:	SELECT * FROM aaa
			WHERE col1 = 111;
 

توجه: فقط منطق “و” مجاز است. فقط “*” مجاز است.

  • حذف کنید
Syntax:		DELETE FROM table_name 
			WHERE column1 = value1
			and column2 = value2
			and ...;
Example:	DELETE FROM aaa
			WHERE col1 = 111;
 

توجه: فقط منطق “و” مجاز است.

  • به روز رسانی
Syntax:		UPDATE table_name
			SET column1 = value1, column2 = value2, ...
			WHERE column1 = value1
			and column2 = value2
			and ...;
Example:	UPDATE aaa
			SET col2 = 555.5
			WHERE col1 = 1;
 

توجه: فقط منطق “و” مجاز است.

سایر ویژگی های پیاده سازی شده

 

  • کمک کنید
Syntax:		HELP;
Example: 	HELP;
 
  • ترک کنید
Syntax:		EXIT
			or
			QUIT
Example:	EXIT
			or
			QUIT
 
  • مجری
Syntax:		EXEC file_name;
Example: 	EXEC input.txt;