ویرگول
ورودثبت نام
knowledgecomputer2023
knowledgecomputer2023أَعُوذُ بِاللّه ِ مِنَ الْکَسَل وَ الْفَشَل
knowledgecomputer2023
knowledgecomputer2023
خواندن ۶ دقیقه·۴ سال پیش

پایگاه داده - فایل های متنی - notepad (بدون کد)

« بسم الله الرحمن الرحیم »


پایگاه داده نوت پد
پایگاه داده نوت پد



اولین سوالی که پیش می آید چگونه از یک فایل متنی مانند یک پایگاه داده استفاده شود؟


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

درنظر گرفته می شودبه این نوع پایگاه داده ها غیر اس کیو ال (no sql ) می گویند.

به عنوان یکی ازدیگر پایگاه داده های متنی می توان بهXML اشاره کرد .

اما دراین جا به توضیح پایگاه داده متنی notepad پرداخته می شود.

.یکی از کاربردهای پایگاه داده های متنی پشتیبان گرفتن یا Backup از فایل های برنامه می باشد.

آموزشی بک آپ گرفتن از فایل های پایتون (برنامه):

https://virgool.io/@knowledgecomputer2018/%D8%B3%D8%A7%D8%AE%D8%AA-%D9%BE%D8%B4%D8%AA%DB%8C%D8%A8%D8%A7%D9%86-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D8%AF%D8%B1-%D8%B2%D9%85%D8%A7%D9%86-%D8%A7%D8%AC%D8%B1%D8%A7-kcvjqcdibpjo


سوال که دراین جا ذکر می شود ، چرا ازفایل های متنی استفاده می شود؟

«اس کیوال =sql»


:علت های استفاده از پایگاه داده های متنی

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

«نوت پد=notepad»

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

درنوت پد تمام داده ها به صورت رشته ذخیره می شود. پس هر نوع داده ای در برنامه دارید باید ابتدا به رشته تبدیل کنید سپس ذخیره کنید .

اگر مقادیری که دارید به صورت « یک کلید و چند مقدارازنظر تعداد ثابت» یا « یک کلید و یک مقدار» باشد مفهوم سطر و ستو ن معنا پیدا می کند. اما اگر به صورت « یک کلید و چند مقدارازنظر تعداد متغیر» باشد معنای سطر وستون معناپیدانمی کند .(مگر شرطی گذاشته شود.)

(|) برای ساخت سطرو ستون می توان از کاراکترهای کاما(,) ، نقطه ویرگول (;) ، دونقطه (:) ، جداکننده

.وکاراکتر سطر جدید یا هر کاراکتر دیگری استفاده کنید(space) کاراکتر فضای خالی .

:حال با مثالی هر کدام توضیح داده می شود


حالت 1: یک کلید یک مقدار (مانند نام کاربری ورمزعبور)

فرض نام کاربری های زیر را دارید ومی خواهید به عنوان سطرو ستون در پایگاه داده ی متنی یا نوت پد ذخیره کنید .



حال به صورت زیربه عنوان سطرو ستون درپایگاه داده متنی ذخیره می شود:

Username1:Password1| Username2:Password2| Username3:Password3|

Mahdi:Khoshnezhad|Ali:rasgo|mohammad:doroscar


حالت دو: یک کلید چند مقدار

چند مقدار می تواند ازنظر تعداد ثابت یا متغیر باشد. منظور از تعدا د ثابت ومتغیر، در تعداد مقداری که می خواهد در ستون ها ذخیره شود .

الف) چندمقدار ازنظر تعداد متغیر ازنظر مقداریکسان یا غیریکسان:

تفاوت در پایگاه داده ها دراین ظاهر می شود. در پایگاه داده های اس کیو ال زمانی که می خواهید چند مقدار را برای یک کلید ذخیره کنید چند مقدار نمی تواند متغیر(تعداد ستون ها نمی تواند متغیر ) باشد. مثلا فرض کنید 10 سند دارید و می خواهید واژه های هر سند در پایگاه داده  ذخیره شود. هرسند دارای تعداد واژه

متغیر(ازنظرتعداد وازنظر مقدار می تواند یکسان وغیریکسان ) می باشد . یعنی 1 سند 10 واژه یا کلمه یا توکن دارد یک سند 20 واژه یک سند 1000 واژه دارد و... این به معنی چند مقدار متغیر(ازنظرتعداد) می باشد. حال چند مقدارثابت (تعداد ستون ثابت بامقادیر متفاوت )بدین معنی که کلید چند مقداراثابت (زنظر تعداد) با مقادیر متفاوت دارد.

مثال:

حال فرض کنید 3 سند دارید ومی خواهید کلمات یا واژه ها یا توکن های هرسند را در پایگاه داده ذخیره کنید .یک کلید به نام شماره سند دارید و3 سند (یک کلید و چند مقدار ازنظر تعداد متفاوت ازنظر مقدار یکسان یا غیریکسان).

حال جمله بالا به چه معنی می باشد؟ منظورمان این است که فرض کنید 10 سند یا مقاله یا کتاب یا هرچیزی که دارای متن می باشد دارید ومی خواهید توکن ها یا واژه ها یا کلمات هرسند را در پایگاه داده ذخیره کنید . دراین جا شماره سند را به عنوان کلید و واژه ها را به عنوان مقداردرنظر گرفته اید. دقت کنید فرض کنید می خواهید واژه ها را درپایگاه داده ی اس کیو ال ذخیره کنید فیلد یک جدول را شماره سند وفیلد های بعدی را واژه ها قرار دهید !!!! اشتباه این جاست چون که نمی دانید هرسند چند واژه دارد پس نمی دانید جدول در پایگاه داده چند ستون دارد پس نمی توان در پایگاه داده اس کیو ال ذخیره کرد . اما طوری دیگر می توان عمل کرد فیلد یک جدول اس کیو ال را شماره سند وفیلد دوم را واژه ها قرار دهید اما این کارچه مشکلی دارد(به صورت ستونی ذخیره کنید ) ؟ اولا کوئری ها کمی تغییر می کند دوما حجم داده ی تکراری بالا می رود بدین معنی که فرض شود یک سند 1000 واژه دارد وشماره سند 2 می باشد فیلد یک چون که شماره سند می باشد 1000 بار این 2 تکرار می شود. وچون حجم داده ی تکراری زیاد است پس باعث افرایش حجم پایگاه داده می شود پس زمانی که حجم پایگاه داده بالا رود سرعت کوئری (حذف ، اضافه ، بروزرسانی) پایین می آید.

اگر درپایگاه داده اس کیو ال بخواهید به صورت سطری ذخیره کنید. (امکان ندارد)



اگر درپایگاه داده اس کیو ال بخواهید به صورت ستونی ذخیره کنید.




اگر درپایگاه داده اس کیو ال بخواهید به صورت سطری ذخیره کنید وتعداد واژه (ستون) یکسانی درنظربگیرید.




مشاهده می کنید که واژه های هرسند متغیر می باشد ازنظر تعداد و ازنظر مقدار یکسان یا غیریکسان.

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

مشکل با پایگاه داده ی متنی مانند نوت پد حل می شود.




حال درپایگاه داده نوت پد به صورت زیر ذخیره می شود.

Document id 1:term1,term2,term3,…..,termn| Document id 2:term1,term2,term3,…..,termn|

1:iran,pretty|2:Good,salam,salam|3:qom,star,moon

حال به حالت بعدی چند مقدارمی روید .


ب) چندمقدار ازنظر تعداد ثابت ازنظرمقداریکسان یا غیریکسان:

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

مثال:

فرض کنید مشخصات یک فرد نام ونام خانوادگی وشماره ملی باشد. این جا یک کلید دارید به نام فرد وچند مقداردارید که ازنظر تعداد ثابت وازنظر مقدار متفاوت می باشد.

اگر درپایگاه داده اس کیو ال بخواهید به صورت سطری ذخیره کنید.




.اگر درپایگاه داده متنی ذخیره کنید به شکل زیر می شود

Person_id1:Name,Family,Code_meli| Person_id2:Name,Family,Code_meli|

1:mahdi,khoshnezhad,0370904|2:akbar,barber,054256,3:javad,javati,587946



موفق باشید

«به امید خدا»

۱
۰
knowledgecomputer2023
knowledgecomputer2023
أَعُوذُ بِاللّه ِ مِنَ الْکَسَل وَ الْفَشَل
شاید از این پست‌ها خوشتان بیاید