نظرة بسيطة على SQLite .

elmasri5e_PIE

الترم هذا عندي كورس عن Database systems الكورس حلو الصراحه من زمان وانا ودي اتعامل مع قواعد البيانات لكن مااجزم وانشغل ،، مع ان كانت لي تجربه سابقة بسيطه جدا ً مع الـMySQL والـPHP لكن ماكملت ،، وبمااني اخذت هالكورس هالترم
راح احاول اني اهتم شوي واطلع بحاجه مفيده (واطلع بقريد زي العالم والناس)،، الكورس معاه لاب وهو الزبده والمفيد الصراحه ،، صحيح لسا في البداية والاساسيات لكن لاحظت ان  اغلب الطلاب يشبكون على طوول في اللاب اكثر من النظري .

عموما ً في الجامعة لدينا اوراكل ،، بمااني اريد تطبيق الدرس اللي اطبقه بالجامعه
لازمني احمل اوراكل ،، لكن انا انسان عجّـاز ،، اوراكل  حجمها كبير (مع ان الخط لدي 2 ميقا) + يبي لها تضبيط اعدادات ،، عشان كذا بحثت عن حاجه اسهل بحيث اني استخدم لغة SQL بدون اوراكل ،، والبديل موجود وكثيرررر ومثل ماذكرت بأول الموضوع مثال وهو MySQL لكن برضوا الـMySQL
نفس حالة الاوراكل ،، صحيح يمكن اصغر بالحجم (اقصد حجم ملف التنزيل وليس قاعدة البيانات)واسهل  ،، لكن مازلت انسان عجاز وكسول ومش  ناقص وجع راس 😀

اثناء بحثي  مريت على قواعد بيانات كثير ،، لكن ماارتحت الا مع SQLite ،، طبعا ً لعدة اسباب :

SQLite
اهم سبب ،، انها تعتبر قاعدة بيانات  embedd يعني قاعدة البيانات منه وفيه ،، ماتحتاج تنزيل ولا اعدادات ولا شي ،، مجرد
ملف تنفيدي تعطيه اوامر SQL ، تنشئ ، تحدث ، تحذف قواعد البيانات .

السبب الثاني حجمها صغير جدا ً لكن امكانياتها كبيره .

واوامر SQL تقريبا ً ثابته وهذا اللي راح يدرسه اي شخص مهتم بقواعد البيانات .

وهذا اقتباس من موقع SQLite  عنها :

SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is

the most widely deployed SQL database engine in the world. The source code for SQLite is in the public domain.

الاسباب هذي خاصه فيني وتستطيع استخدام ماتريد بالتأكيد ،، لكن بما اني بطور التعلم ولا اريد ان اعمل قاعدة بيانات ضخمة ولغرض التعلم انصح
باستخدام SQLite ،، وايضا ً هذه الاسباب لاتقلل من قيمة SQLite  بالعكس مفيدة جدا ً ،، لنفرض اردت عمل قاعدة بيانات لبرنامجي بحيث تكون مرفقه معاه وماتحتاج اي تنزيل افضل خيار اعتقد هو SQLite  ،، ليس من المنطق ان اقوم بعمل برنامجي واربطه بقاعدة بيانات اوراكل وكل مره اعطي برنامجي لشخص اطلب منه تنزيل اوراكل ! .
للتوضيح فقط ،، SQLite  محددة الحجم ،، اقصد حجم قاعدة البيانات ،، لان اقصى حجم من قواعد البيانات تستيطع عمله هو 32 TB  (مع ان الحجم كبير بالنسبه لي كـ طالب ومبرمج مبتدئ – ستكون مناسبه لمشاريعي)
على عكس الانظمة الاخرى مثل اوراكل و MySQL و PostgreSQL تكون غير محدودة !

العديد من الشركات الكبرى على مستوى العالم تستخدم SQLite  ،، اهمها :
Symbian

Adobe

Mozilla

Bloomberg

طيب ! الآن ندخل في المهم ،، تنزيل SQLite

اذهب مباشرة لموقع SQLite
http://www.sqlite.org

ستجد مكتوب :
Small. Fast. Reliable.
Choose any three.
وهي بالفعل كذلك !

وقم بتحميل اخر نسخة ،، اخر نسخة اثناء كتابة هذه المقالة كانت 3.6.20 ،، الموقع مرتب بحيث يوفر نسخة لـ اغلب انظمة التشغيل المشهورة ويندوز ماك ولينوكس ،، وايضا ً السورس كود بالكامل  .

سأشرح لمستخدمي الويندوز ،، بما ان التطبيق في الجامعه على ويندوز (عشان طلاب الجامعة) ،، لكن من اراد شرح على لينوكس كل ماعليه هو السؤال ! وخصوصا ًان مع لينوكس ستكون اسهل مع مدير الحزم!!

قم بتحميل هذين الملفين من الموقع :
sqlite-3_6_20.zip
sqlitedll-3_6_20.zip

لاحظ ان 3_6_20 يشير الى رقم الاصدار ،، لذلك من الممكن يكون مختلف اذا كنت قد قرأت هذه المقاله في المستقبل :d

قم بفك الضغط  ،، وبعدها قم بنسخ ملف الـDLL في ملف sqlitedll-3_6_20.zip الى مجلد السيستم لديك :
C:\WINDOWS\system
C:\WINDOWS\system32

سنحتاج بعد قليل الى اضفتها ايضا ً ،، لذلك لاتحذف الملفات .

اما ملف sqlite-3_6_20.zip فهو يحتوي على ملف واحد ،، وهو سطر الاوامر الخاص بـ SQLite  لذلك فك الضغط عنه وضعه في اي مكان تريد ،، انا وضعته في السي لدي داخل  مجلدsqlite-3_6_20 .

حتى تسهل عليك حياتك ،، وتقوم بأستدعاء SQLite  اينما تريد ،، قم بإضافته الى Environment variables ،، في اصدارات ويندوز 7 وويندوز فيستا عن طريق الضغط على جهاز الكمبيوتر بالزر اليمين واختيار Properties

بعدها ستظهر لديك نافذه قم بالضغط على Advanced system settings في القائمة اليسرى . ستظهر نافذه اخرى اختر Environment variables .

ستظهر لك ايضا ً نافذه اخرى ،، اذهب الى System variables ،، وابحث عن الـPath واعمل له تحرير Edit ،، لا تقم بمسح المسار الموجود لكن بأخره

اضف الاتي :

;C:\sqlite-3_6_20

لاتنسى قبل ان تضيف المسار افصل بينه وبين المسارات الموجود بفاصله منقوطه ; ،، وانا اضفتها لك من خلال المسار اعلاه .
صوره للتوضيح :

sqlite-snix-windows

الآن افتح سطر الأوامر من خلال ابدا قم بالبحث عن cmd ،، وافتحه . الأن لتشغيل SQLite  كل ماعليك كتابة :
SQLite3
وتتحول الى SQLite   . طبعا ً لو لم نقم باضافة مسار SQLite   الى النظام لن تستطيع تشغيل SQLite   بشكل مباشر ،، كل مره لازم تذهب لمسار تنزيلك البرنامج وهو C:\sqlite-3_6_20 وتشغله من هناك ! اكيد راح تتعب وتنزعج 😀

للتجربة قمت بعمل قاعدة بيانات بسيطه وكتابة اوامر بسيطه على قد حالي بالـSQL حتى تتضح الفكره للكل :

صوره للتوضيح :

testdb-snix-sqlite

شرح بسيط للأوامر :

sqlite3 test.db

قمت بإنشاء قاعدة بيانات بأسم : test.db
قاعدة البيانات ستجدها في المسار الموجود انت فيه الآن ،، يعني انا كنت موجود في المسار :
C:\Users\5N1X
ستجد الملف منشئ بأسم test.db .

create table t1 (id INTEGER PRIMARY KEY, name varchar(30), num NUMERIC))
;

قمت بعمل جدول table ،، ووضعت نوع البيانات data type الذي اريده في جدولي .
المتغير name من نوع varchar
المتغير num من نوع NUMERIC او رقم number

الآن لدي قاعدة بيانات وفيها جدول ،، وحددت نوع البيانات التي ستكون فيه ،، نأتي لأمر ادخال البيانات :


insert into t1 (name,num) values ('Sami', 123)
;
insert into t1 (name,num) values ('Amy Lee', 1234))
;

اضفت قيم للجدول ،، للمتغير name اضفت :
Sami
و
Amy Lee

للرقم num :
123
1234

كما ترى ،، الان اصبح لديك قاعدة بيانات .

الى هنا اذا كنت مهتم في قواعد البيانات توقف ولا تكمل الدرس ،، واذهب لتعلم SQL اما ان اردت تعلم ربط الـ SQLite مع احدى لغات البرمجة فـ اكمل الدرس .

جهاز الويندوز لدي شبه فاضي ،، مافيه الا الفوتوشوب وبعض البرامج البسيطه ،، لان اغلب وقتي على اللينوكس . لكن قمت بتنزيل لغة البرمجة ruby

قبل كم يوم على الويندوز ،، للتعلم والاطلاع لا اكثر (وكم شغله ثانيه:D)،، وبما ان الروبي سهله اعجبتي الفكره اني اتعلم كيف اربطها مع SQLite ،

البعض يعرف اني محب للبايثون ،، يقول ليش الخيانه 😀 لكن مجرد تعلم للروبي وطقطقه واطلاع على اللغة .

تستطيع ربط SQLite مع اغلب لغات البرمجة C,java,php,python,ruby . . . etc لكن انا فضلت روبي عشانها سهله ،، ولك الحريه بأختيار ماتريد وستجد

المصادر الكثيره متوفره في النت . وانصح بالروبي وبايثون .

قمت بالتوجه لموقع روبي وحمل اخر اصدار :
http://www.ruby-lang.org/en/

اخر اصدار اثناء كتابة هذه المقالة هو :
Ruby 1.8.6

وايضا ً ستجد السورس كود للغة (لانها مفتوحة المصدر مثل SQLite)،، ومختلف الاصدارات لمختلف الانظمة من ماك وويندوز ولينوكس .

قم بتنزيل اللغة وتثبيتها .

وايضا ً قم بإضافة مسار اللغة الى  Environment variables   حتى تستطيع تنفيذ الأوامر من اي مكان في النظام بمجرد استدعائها . المسار سيكون :
;C:\Ruby\bin
طبعا ً بحسب مااخترت انت اثناء التنزيل ،، ان لم تقم بتغيره سيكون هو الذي بالأعلى .

فيه ميزة جميله في روبي ،، وهي RubyGems ،، وهو مدير حزم خاص بروبي ،، ومن خلاله سأقوم بتنزيل الانترفيس الخاصه بـ sqlite اللازمة لربطه مع روبي .
قبل ان تقوم بالتنزيل ،، قم بنسخ ملفات DLL من ملف sqlitedll-3_6_20.zip ،، والصقه في مجلد :
C:\Ruby\bin

كل ماعليك عمله الآن هو فتح RubyGems Package Manager وكتابة امر التنزيل :

gem install sqlite3-ruby

الان قم بكتابة هذه البرنامج (السكربت) المكتوب بروبي ،، واحفظة لديك :

require 'sqlite3'
db1 = SQLite3::Database.new( "test2.db" )


db1.execute( "create table t1 (id INTEGER PRIMARY KEY, name varchar(30), num NUMERIC);" )
db1.execute( "insert into t1 (name,num) values ('Sami', 123)")
db1.execute( "insert into t1 (name,num) values ('Amy Lee', 1234)")


rows = db1.execute( "select * from t1" )
p rows

الكود سهل وواضح ،، لو لديك اي معرفه في اي لغة برمجة ستكون قادر على قرأته .

السكربت ،، قمت بربطه مع الـ sqlite ومن خلال السكربت استطعت ان اكتب اوامر SQL واعمل قاعدة بيانات واضفت لها جدول وبيانات وقمت بعرض الجدول .

صوره لتوضيح عمل الكود بالاعلى بعد التطبيق :

 

ruby-code-snix

 

 

 

مصادر :

http://www.sqlite.org
http://www.ruby-lang.org
http://en.wikipedia.org/wiki/SQLite
http://sqlite-ruby.rubyforge.org/sqlite3/faq.html
http://www.skorks.com/2009/08/installing-and-using-sqlite-with-ruby-on-windows/
http://www.w3schools.com/SQL/

من اراد نقل الموضوع ، تعديله ، نسبه لنفسه ،، لا مشكله لدي له كامل الحريه .

انتهى .

Advertisements

التعليقات مغلقة.

%d مدونون معجبون بهذه: