<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های امیرحسین حجابی</title>
        <link>https://virgool.io/feed/@a.hejabi7710</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-18 12:25:26</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>امیرحسین حجابی</title>
            <link>https://virgool.io/@a.hejabi7710</link>
        </image>

                    <item>
                <title>دیتابیس Neo4j</title>
                <link>https://virgool.io/@a.hejabi7710/%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3-neo4j-cutaljm9tb8t</link>
                <description>گراف دیتابیس چیست ؟پایگاه داده‌های گراف یک راه حل بسیار قدرتمند برای ذخیره سازی و جستجوی داده‌هایی هستند که در آن‌ها ارتباطات اهمیت بیشتری نسبت به داده‌ها اصلی دارند (مانند Facebook و Twitter) . با رشد روز افزودن داده‌ها و تنوع انوع داده‌ها، نیاز به ایجاد بسترهای جدید ذخیره سازی و آنالیز آنها بیشتر احساس شد، بسترهایی که داده‌های نامنظم را با از دست ندادن انعطاف پذیری، حفظ سطح بالای عملکرد و اطمینان از مقیاس پذیری داده‌ها به طور مؤثر، نگهداری کنند، این مشکلی است که بانک‌های اطلاعاتی رابطه‎ای نمی‎توانند از عهده آن برآیند.ما در زنجیره مقاله‌هایی که در آینده منتشر خواهد شد، محبوب ترین پایگاه داده‌های گراف را تجزیه و تحلیل می‌کنیم. این پایگاه داده‌ها عبارتند ازArango DB  ، Neo4J و Orient DB ما مهمترین ویژگی‌ها را برای گراف دیتابیس‌ها بررسی خواهیم کرد و نهایتا به شما خواهیم گفت که برای انتخاب یک گراف دیتابیس مناسب چه پارامترهایی را در نظر بگیرید . امروزه، حجم داده‌ها به صورت تصاعدی در شبکه‌های اجتماعی مانند فیس بوک و توییتر و در سطح اینترنت در حال رشد هستند که روزانه مقادیر انبوهی از داده‌ها را ذخیره و پردازش می‌کنند، جایی که این داده‌ها در حجم پتا بایت ذخیره می‌شوند. بانک‌های اطلاعاتی رابطه ای و معمولی که در بازار هستند در پردازش و سازگاری با این حجم عظیم از داده ها ضعیف هستند و ضعیف عمل کرده‌اند. به همین دلیل، نوع خاصی از بانک‌های اطلاعاتی به وجود آمد که آنها را بانک اطلاعاتی گراف می‌نامیم. گراف دیتابیس‌ها را می‌توان یکی از گروه‌های پایگاه داده غیر رابطه‌ای دانست که یک راه حل موثر و کارآمد را برای ذخیره اطلاعات در سناریوهای فعلی، جایی که داده‌ها به طور فزاینده‌ای به هم پیوسته و وابسته هستند، ارائه می‌دهد.مکانیسم‌های ذخیره سازی در پایگاه داده‌های گراف برای ذخیره سازی به شکل نمودار بهینه شده‌اند ، یعنی ذخیره کردن سوابق و روابط مرتبط و نزدیک به هم. اصطلاحا یک لیست مجاورت برای هر یک از راس‌ها و گروه‌ها تشکیل می‌شود که این لیست شامل اشاره گرها و ارتباطات آن نود به نودهای همسایه هست، از این خاصیت و این شیوه ذخیره سازی به عنوان مجاورت عاری از شاخص نام برده می‌شود (رابینسون و همکاران، 2015). علاقه به مدل‌های گراف به دلیل کاربردهای آن‌ها در مباحثی مانند وب کاوی و تحلیل شبکه‌های اجتماعی در سال‌های اخیر رو به افزایش بوده است (دیتریش و همکاران، 2008). این نوع بانک اطلاعاتی به راحتی قابل درک هستند زیرا مفهوم آن‌ها براساس تئوری نمودارها و گراف ها است. این مدل دیتابیس ها و این تئوری اساساً براساس گراف‌هایی بنا شده است، که از ساختارهای ریاضی برای مدل سازی روابط بین اشیاء استفاده می‎کنند. ما در مقاله‌های آتی بیشتر راجع به مفاهیم اساسی گراف صحبت خواهیم کرد اما این را بدانید که یک گراف در اصل یک ساختار است که به وسیله نودها نمایش داده می‎شود، همچنین ما آنها را Vertex و یا موجودیت نیز می‎توانیم نامگذاری کنیم. نودها به وسیله خطوطی که ما آنها را اصطلاحا یال و یا ارتباط می‌نامیم به هم وصل شدند که می‎توانند یک سری خصوصیت را در قالب Propertyهای مختلف در خود نگه داری کنند. بنابراین گراف دیتابیس‌ها می‎توانند خیلی به راحتی ذخیره سازی و نمایش داده‌ها را توسط این سه ساختار نمایش دهند vertex  و edge , property  به ترتیب ( نود ، یال ، خصوصیت)به همین دلیل گراف دیتابیس‌ها راه حل بهینه ای برای ذخیره سازی و پرس و جوهای مبتنی بر گراف هستند. مشکلی که در بانک‌های اطلاعاتی گراف وجود دارد این است که آنها در نمایش برخی از داده‌هایی که از مدل‎های رابطه‌ای حاصل می‌شوند، کارآیی چندانی ندارند. بنابراین، آنها نمی‎توانند جایگزین پایگاه داده‌های رابطه‌ای شوند، اما در واقع یک راه حل کارآمد هنگام برخورد با حجم عظیمی از داده‌ها هستند که حاوی بسیاری از داده‌های مرتبط هستند.مهمترین مزیت بانک‌های اطلاعاتی گراف موارد زیر هستند:بهینه سازی بهتر در جمع آوری اطلاعات نسبت به پایگاه داده‌های رابطه‌ایپشتیبانی از قوانین ACIDپشتیبانی از ذخیره سازی داده‌ها با مرتبه زمانی مناسباستفاده از انواع جدید داده‌هاگسترش مدل گرافیکی با توجه به مدل ساختاری و برعکسمناسب برای داده‌های پیچیده و نامنظم، که معمولاً در دنیای واقعی با آنها درگیر هستیم.مناسب برای عملیات داده کاوی؛عملکرد بهتر هنگام استفاده در پرس و جوهایی که عمق داده‌ها را رصد می‎کنند در مقایسه با پایگاه داده‌های رابطه‌ای.در برخی از گراف دیتابیس‌ها برخلاف مدل رابطه‌ای، نیازی به اعلام نوع داده برای گره‌ها یا یال‌ها نیست.توسعه چابک در طول زمان به راحتی با تغییرات سازگار می‎شوندمدیریت  BIG DATA، از جمله سری زمانی، ابعاد جغرافیایی و سلسله مراتبی در ابعاد مختلف.· به طور خلاصه، سه مزیت اساسی گراف دیتابیس‌ها عبارتند از: عملکرد و کارایی، انعطاف پذیری و چابکی.عملکرد و کاراییدر پایگاه داده‌های سنتی ، با افزایش تعداد و عمق روابط، پرس و جوها به سمت پیچیدگی و بلاک شدن پیش می‎روند، در مقابل، عملکرد بانک اطلاعاتی گراف حتی با افزایش داده‌های ما در طول سال‌ها ثابت می‌ماند.انعطاف پذیریتیم‌های مدیریت داده به جای اینکه به طور جامع و گسترده از یک دامنه قبل از زمان الگوبرداری کنند و مجبور باشند به اسکیمای پایگاه داده قبل از شروع هر چیزی فکر کنند، می‎توانند به ساختار گرافِ موجود بخش‌هایی رو اضافه کنند بدون اینکه عملکرد فعلی سیستم را به خطر بیاندازند.چابکیچابکی به توسعه دهندگان پایگاه داده‌های گراف این امکان را می‎دهد که کاملاً مطابق بر شیوه‌های توسعه سریع و تست محور امروزی منطبق باشند و به کارشناس‌های بانک اطلاعات اجازه می‌دهد تا گراف را بطور قدم به قدم همراه با بقیه برنامه پیش ببرند و همراه با هرگونه تغییر شرایط مورد نیاز در کسب و کار تکمیل و تکمیل‌تر شوند.Neo4Jیک پایگاه داده گرافیکی منبع باز است که در جاوا پیاده سازی شده است. توسعه دهندگان Neo4J را به عنوان یک بانک اطلاعاتی کاملاً تراکنشی با یک موتور جاوا قوی توصیف می‌کنند که می‌توانیم به جای استفاده از جداول در آن، ساختارها را به شکل گراف ذخیره کنیم.Neo4J  محبوب ترین و پرکاربردترین پایگاه داده گرافیکی در سراسر جهان به حساب می‌آید که در صنایع مختلفی از قبیل بهداشت، دولت، تولید خودرو، منطقه نظامی و سایر مناطق مورد استفاده قرار می‌گیرد و مرجع اصلی در این زمینه محسوب می‌شود. این نرم افزار در سال 2007 ایجاد شد و به سه نسخه گسترده تقسیم می‌شود: یک نسخه عمومی که یک نسخه رایگان است، یکEnterprise Edition  ، که در آن امکان آزمایش یک نسخه کامل تر را به مدت 30 روز فراهم میکند و نمونه سوم آن یک نسخه دولتی است، که مانند یک نسخه به روز شده از نسخ Enterprise است. این نسخه روی خدمات دولتی متمرکز است. تفاوت‌های اصلی بین دو نسخه اصلی Neo4j عبارتند از: وجود پشتیبان گیری آنلاین، عملکرد بهتر و بالاتر حافظه پنهان، نظارت سیستمی دقیق، مدیریت قوی قفل‌های دیتابیس و قابلیت مقیاس پذیری بیشتر بانک اطلاعاتی از دیگر مزایای نسخه Enterprise محسوب می‌شود.سناریوهای معمول استفاده از Neo4J عبارتند از : سیستم‌های پیشنهاد دهنده برخط، شناسایی و مدیریت دسترسی، عملیات شبکه و فناوری اطلاعات، کشف تقلب، پولشویی / فرار مالیاتی، نمودار دانش، تجزیه و تحلیل گرافیکی و الگوریتم‌ها، هوش مصنوعی که دارای نمودار گرافیکی هستند، خانه‌های هوشمند وIoT . در حال حاضر بیشتر بانکهای اطلاعاتی از طریق یک سرور که از طریق یک کتابخانه محلی در دسترس قرار می‌‎گیرد، اجرا می شوند. Neo4j می‌تواند در حالت تعبیه شده و همچنین در حالت سرور اجرا شود. حالت Embedded  مستقیما با دیسک کار میکند و تمام اطلاعات را روی دیسک ذخیره می‎کند. Neo4j  تعبیه شده برای دستگاه‌های سخت افزاری، برنامه‌های دسکتاپ و برنامه‌های جاسازی شده در سرورها ایده آل است. برای پیاده سازی پایگاه داده اجرای Neo4j در حالت سرور معمول ترین و بهترین انتخاب است. باید به این نکته اشاره کرد که در هر سرور یک embedded instance  از Neo4j وجود دارد. Neo4J  مزایای رقابتی زیادی دارد ، که این نرم افزار را به یکی از پرکاربردترین آنها در این زمینه تبدیل می‎کند. در زیر ، ویژگی‌های اصلی Neo4J را شرح می‌دهیم:مزایا و ویژگی‌هاشمای انعطاف پذیرمدل داده گرافمقیاس پذیری و قابلیت اطمینان؛زبان پرس و جویCypherHTTP API  برای مدیریت پایگاه داده؛پشتیبانی از     indexها با استفاده از Apache Luceneپشتیبانی از درایور هایی مانندJava      ،      Spring ، Scala ، JavaScriptOnline backupsپشتیبانی از Cloudخروجی گرفتن از نتایج پرس و جو در قالب JSON و XLS؛فعال ترین  community گراف در جهان؛کارایی بالا به دلیل استفاده از حافظه گرافیکی محلی و پردازش محلییادگیری و استفاده آسانبارگیری آسان داده ‌ها در نرم افزار؛دیتا مدل دوستدار تخته برای ساده سازی چرخه  توسعهNeo4J  از sharing پشتیبانی نمیکند و در نسخه Community که نسخه رایگان آن است محدودیتهایی در تعداد نودها، ارتباطات و خصوصیات وجود دارد.برخی از مشتری های Neo4J عبارتند از :eBayAdobeMicrosoftIBMNBC NewsHPcypherاین دیتابیس زبان دیتابیس زبان مخصوص به خودش داره به اسم Cypher که برای ذخیره و بازیابی اطلاعات میشه ازش استفاده کرد.توضیحات و کدنویسی در زبان cypher در ویدیو  : https://www.aparat.com/v/9cP8m/%D9%BE%D8%B1%D9%88%DA%98%D9%87_%DB%8C_%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3_Neo4j_%D8%AF%D8%A7%D9%86%D8%B4%DA%AF%D8%A7%D9%87_%D8%B5%D8%AF%D8%B1%D8%A7 </description>
                <category>امیرحسین حجابی</category>
                <author>امیرحسین حجابی</author>
                <pubDate>Wed, 23 Dec 2020 00:25:56 +0330</pubDate>
            </item>
                    <item>
                <title>میکروکنترلر avr و انجام یک پروژه</title>
                <link>https://virgool.io/@a.hejabi7710/%D9%85%DB%8C%DA%A9%D8%B1%D9%88%DA%A9%D9%86%D8%AA%D8%B1%D9%84%D8%B1-avr-%D9%88-%D8%A7%D9%86%D8%AC%D8%A7%D9%85-%DB%8C%DA%A9-%D9%BE%D8%B1%D9%88%DA%98%D9%87-nn0lpwgm5c6v</link>
                <description>میکروکنترلر چیست ؟میکرو کنترلر در واقع یک کامپیوتر کوچک است که تمام قسمت های پردازنده، رم، هارد، بایوس، مبدل آنالوگ به دیجیتال و … را در خود جای داده است و می توان آن را به تنهایی در هر پروژه ای استفاده کرد.میکروکنترلرها با توجه به قابلیت هایی که دارند به انواع و اقسام مختلفی تقسیم بندی می شوند.هر کدام از این قسمت ها برای استفاده در یک پروژه خاصی کاربرد خواهد داشت. به همین دلیل نمیتوان گفت که برخی از میکروها خیلی ضعیف هستند و کاربردی ندارند بلکه شاید برای یک پروژه کوچک بسیار مناسب باشد.جالب است بدانید که هارد و BIOS در میکروکنترلرها به اسم و شکل دیگری بیان می شود. در اصل به آنها EPROM یا EEPROM می گویند که این ها کار هر دو مورد یعنی هارد و بایوس را انجام می دهند.امروزه انواع گوناگونی از میکروکنترلرها، توسط شرکت های مختلف تولید شده اند که تعداد بسیاری از آنها در یک تقسیم بندی کلی به سه گروه PIC ، میکرو AVR و ARM تقسیم میشوند.معمولا بسیاری از ویژگی ها و قابلیت های این میکروها مشابه هم هستند. فقط در مواردی همچون سرعت کارکرد، خطای پردازنده، مصرف توان، قیمت و … با هم متفاوت هستند.میکروکنترلرهای AVRمیکروکنترلرهای AVR در چهار گروه زیر تقسیم بندی میشوند.TINYAT90SATMEGAATXMEGAخانواده TINYاین خانواده منحصر به میکروکنترلرهای با تعداد پایه محدود و کم بوده که جهت کاهش قیمت و ابعاد کوچک برای پروژه های کاربران، بهینه سازی شده اند.برخی از خصوصیات خانواده TINY عبارتند از:سایز بسیار کوچک نسبت به خانواده های دیگرمصرف توان کمقیمت مناسبحافظه فلش کم (در حدود 0.5 تا 16 کیلو بایت)مبدل آنالوگ به دیجیتال (محدود)پورت سریال (نرم افزاری)معمولا تعداد پایه های خانواده TINY بین 6 تا 14 پایه میباشد.میکروکنترلر خانواده AT90Sخانواده AT90S قابلیت ها و امکانات بیشتری نسبت به خانواده قبلی دارد.البته این خانواده معمولا کاربرد زیادی نداشته و چندان مورد استقبال مهندسان قرار نگرفته است.علت آن هم این است که تفاوت قیمتی زیادی با سری‌های ATMEGA ندارند و مهندسان ترجیح میدهند از خانواده ATMEGA استفاده کنند.میکروکنترلر سری ATMEGAخانواده ATMEGA از انواع میکرو AVR دارای قابلیت های بالاتری نسبت به خانواده های قبلی بوده و امروزه به طور وسیع مورد استفاده قرار می گیرند.این نوع از میکروها به جهت عرضه فراوان، از قیمت بسیار مناسبی برخوردار بوده و برای انجام پروژه های صنعتی کوچک نیز استفاده میشود.برخی از خصوصیات خانواده ATMEGA عبارتند از:مصرف توان کمکارایی بالاحافظه فلش در حدود 8 تا 128 کیلو بایتمبدل آنالوگ به دیجیتالدارای دستورالعمل های زیاد که اکثرا در یک پالس کلاک اجرا می شوندسرعت کارکرد بالاقابلیت ارتباط پورت JTAGدارای تایمرRTC داخلیپورت سریالپورت SPIخانواده ATMEGA خود دارای مدل های معروفی است که مواردی مانند ATMEGA8 ، ATMEGA16 ، ATMEGA32 ، ATMEGA64 و ATMEGA128 را می توان نام برد.از بین این مدل ها پرکاربردترین آنها ATMEGA8 و ATMEGA32 هستند.مدل ATMEGA8 تعداد 28 پایه داشته که به غیر از چند پایه‌ی مربوط به تغذیه، بقیه پایه‌ها را می‌توان برنامه ریزی و از آنها استفاده کرد. همچنین حافظه قابل برنامه ریزی آن 8 کیلو بایت است که برای یک پروژه متوسط کافی است.مدل ATMEGA32 تعداد 40 پایه دارد.اگر پایه های تغذیه میکروکنترلر را کم کنیم بقیه پایه ها را می‌توان برنامه ریزی و از آن‌ها استفاده کرد. همچنین حافظه قابل برنامه ریزی آن 32 کیلو بایت است که برای پروژه های نسبتا بزرگ مناسب است.همانطور که دیدید اساس تفاوت در مدل های یک خانواده بر روی تعداد پایه های قابل استفاده، حافظه برنامه ریزی و یک سری امکانات مانند تعداد تایمر یا کانتر، تعداد پورت‌های مبدل آنالوگ به دیجیتال و … می باشد.خانواده ATXMEGAخانواده ATXMEGA بیشترین امکانات را در بین خانواده های میکروکنترلرهای AVR دارد و از لحاظ قدرت پردازنده و کارایی بسیار بالا می باشد.در بازار ایران این خانواده از میکروکنترلرهای AVR به دلیل قیمت تا حدودی بالا مورد استقبال مهندسین قرار نگرفت.البته منظور از قیمت بالا، گران بودن آن نیست؛ بلکه میتوان با همان قیمت میکروکنترلرهای دیگری که توسط شرکت های دیگر تولید می شوند را تهیه کرد.برای مثال، یک جایگزین مناسب میکروکنترلرهای ARM خواهند بود.ولی باید توجه داشت که برنامه نوسی میکروکنترلرهای شرکت های سازنده مختلف با هم متفاوت است.به طور مثال، اگر در پروژه ای از میکروکنترلرهای AVR خانواده ATMEGA استفاده کردید و بعداً نیاز به ارتقاع داشتید، بهتر است انتخاب شما از میکروکنترلرهای خانواده ATXMEGA باشد. استفاده از میکروکنترلرهای شرکت های دیگر نظیر میکرو ARM نیاز به برنامه نویسی مجدد با زبان وساختار جدید خواهد داشت.جمع بندی میکروکنترلرهای AVRبا توجه به اینکه در بازار مدل‌ها و سری های مختلفی از میکروکنترلرها وجود دارد برای ساخت و اجرای یک پروژه، ابتدا باید تمام موارد و امکاناتی که نیاز است را در نظر بگیریم و با توجه به آن میکروکنترلر را انتخاب کنیم.پروژه طراحی تابلو تعویض بازیکن با ATMEGA 16خب حالا قصد داریم پروژه ای در نرم افزار PROTEUS  طراحی کنیم که کد نویسی اون در نرم افزار کد  ویژن هم با همدیگه یاد میگیریماول از همه نرم افزار PROTEUS رو دانلود می کنیم ( لینک آخرین نسخه قرار داده شده)بعد نرم افزار CODEVISION را دانلود می کنیم.در لینک زیر مراحل انجام پروژه و چگونگی طراحی مدار توضیح داده شده استبا تشکر.امیرحسین حجابی - دانشگاه صدرا https://www.aparat.com/v/9u6E8 </description>
                <category>امیرحسین حجابی</category>
                <author>امیرحسین حجابی</author>
                <pubDate>Sat, 12 Dec 2020 11:23:25 +0330</pubDate>
            </item>
            </channel>
</rss>