خانه / بایگانی برچسب: mysql

بایگانی برچسب: mysql

پایگاه های داده SQL و NoSQL و تفاوت آنها — به زبان ساده

از زمان‌های بسیار دور یکی از مهم‌ترین کارکردهای رایانه‌ها حافظه بوده است. با این که مباحث فنی و روش‌های پیاده‌سازی زیرساختی حافظه تفاوت زیادی با هم دارند؛ اما اغلب رایانه‌ها به سخت‌افزار ضروری برای پردازش اطلاعات و حفظ آن‌ها برای استفاده در موارد بعدی مجهز هستند. در دنیای امروز، چه سرور باشد و چه رایانه شخصی یا دستگاه‌های همراه، دیگر نمی‌توان هیچ اپلیکیشنی را بدون بهره‌گیری از این توانایی رایانه‌ها تصور کرد. از بازی‌های ساده تا ابزارهای مرتبط با کسب و کار که شامل وب‌سایت‌ها نیز می‌شود، انواع خاصی از داده‌ها در هر عملیاتی پردازش، ثبت و بازیابی می‌شوند. «سیستم‌های مدیریت پایگاه داده» (DBMS) نرم‌افزارهایی در سطوح بالاتر هستند که با «رابط‌های برنامه‌نویسی اپلیکیشن» (API) کار می‌کنند و مسئولیت این دسته از عملیات را بر عهده دارند. اکنون دهه‌ها است که برای کمک به حل کردن انواع مختلفی از مسائل، DBMS های مختلفی توسعه یافته‌اند (برای نمونه پایگاه‌های داده رابطه‌ای، NoSQL و غیره) و اپلیکیشن‌هایی برای پیاده‌سازی آن‌ها نیز طراحی شده‌اند که شامل MySQL، PostgreSQL، MongoDB، Redis و غیره هستند. در ..

توضیحات بیشتر »

روش‌های مختلف ایمپورت پایگاه داده در MySQL — راهنمای جامع

دو روش ساده برای بارگذاری داده‌ها در پایگاه داده MySQL از یک فایل قبلاً پشتیبان‌گیری شده وجود دارد. ایمپورت داده‌ها با استفاده از LOAD DATA MySQL یک گزاره دارد که به عنوان یک بارگذار دسته‌ای داده‌ها عمل می‌کند. در ادامه مثالی از این گزاره ارائه شده که داده‌ها را از یک فایل در دایرکتوری جاری خوانده و در جدول mytbl در پایگاه داده جاری بارگذاری می‌کند: mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl; اگر کلیدواژه LOCAL ارائه نشود، MySQL با استفاده از نام مسیر مطلق (absolute pathname) به دنبال فایل داده در میزبان سرور می‌گردد که مکان فایل در آن به طور کامل مشخص شده است و از root سیستم فایل آغاز می‌شود. MySQL فایل را از مکان مورد نظر می‌خواند. به طور پیش‌فرض LOAD DATA فرض می‌کند که فایل‌های داده شامل خط‌هایی هستند که با کاراکترهای newline پایان می‌یابند و مقادیر داده‌ها درون یک خط به وسیله کاراکتر tab از هم جدا می‌شوند. برای تعیین صریح قالب فایل باید از بند FIELDS برای توصیف خصوصیات فیلدهای درون خط و از بند LINES برای تعیین کاراکترهای نشان دهنده پایان خط استفاده کنیم..

توضیحات بیشتر »

روال ها و کرسرها (Procedures and Cursors) در SQL — راهنمای مقدماتی

در این راهنما با روش نوشتن روال‌ها و کرسر ها برای یک RDBMS آشنا می‌شویم. SQL یک مهارت ضروری برای مهندسان نرم‌افزار امروزی محسوب می‌شود. چون اغلب نرم‌افزارها به نوعی با داده‌ها سر و کار دارند و به طور کامل با یک RDBMS «سیستم مدیریت پایگاه داده رابطه‌ای» (Relational Database Management System) ادغام شده‌اند. چه یک اپلیکیشن وب باشد، چه API یا اپلیکیشن درون‌سازمانی، در هر صورت RDBMS همه جا حضور دارد و SQL زبانی برای کوئری زدن به یک RDBMS محسوب می‌شود. شما به عنوان یک دانشمند داده می‌بایست با SQL و تکنیک‌های مربوط به آن آشنا باشید. برای این که بتوانید به یک RDBMS کوئری بزنید و پاسخ‌هایی را برای سؤال‌های خاصی در مورد داده‌های مورد نظر دریافت کنید، SQL کمترین ابزار مورد نیاز است. در این راهنما با روش نوشتن روال‌ها و کرسرها آشنا خواهید شد که یکی از جنبه‌های مهم SQL محسوب می‌شود. آیا تا کنون خواسته‌اید RDBMS شما به طور خودکار اقدام‌های خاصی را در هنگام رویداد اتفاق معین اجرا کند؟ برای نمونه فرض کنید یک رکورد جدید برای کارمندی در یک جدول به نام Employees ایجاد کرده‌اید و می‌خواهید این رکورد در..

توضیحات بیشتر »

اکسپورت پایگاه داده در MySQL — به زبان ساده

ساده‌ترین روش برای اکسپورت کردن داده‌های جدول به صورت فایل متنی استفاده از گزاره SELECT…INTO OUTFILE است که نتایج یک کوئری را در یک فایل روی میزبان سرور اکسپورت می‌کند. اکسپورت کردن داده‌ها با گزاره SELECT…INTO OUTFILE ساختار این گزاره ترکیبی از یک دستور SELECT معمولی با INTO OUTFILE filename در انتهایش است. قالب خروجی پیش‌فرض همان است که برای دستور LOAD DATA استفاده می‌شود. بنابراین گزاره زیر جدول tutorials_tbl را در فایل /tmp/tutorials.txt به صورت یک فایل جدا شده با tab و خاتمه یافته با کاراکتر newline اکسپورت می‌کند. mysql> SELECT * FROM tutorials_tbl -> INTO OUTFILE '/tmp/tutorials.txt'; می‌توان قالب خروجی را با استفاده از گزینه‌های مختلف برای نمایش چگونگی نشانه‌گذاری و جداسازی ستون‌ها و رکوردها تغییر داد. برای اکسپورت کردن جدول tutorial_tbl در قالب CSV با خط‌های خاتمه یافته با CRLF، می‌توان از دستور زیر استفاده کرد: mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/tutorials.txt' -> FIELDS TERMINATED BY ',' ENCLOSED BY '"' -> LINES TERMINATED ..

توضیحات بیشتر »

MySQL و تزریق SQL — راهنمای جامع

اگر شما ورودی کاربر را از طریق یک صفحه وب دریافت کرده و آن را در پایگاه داده MySQL درج کنید، این احتمال وجود دارد که در معرض مشکلات امنیتی گسترده‌ای به صورت تزریق SQL یا (SQL Injection) قرار بگیرید. در این مطلب از سلسله مقالات راهنمای MySQL به شما کمک می‌کنیم تا از وقوع چنین حالتی جلوگیری کرده و اسکریپت‌ها و گزاره‌های MySQL را امن‌تر بکنید. تزریق MySQL تزریق MySQL به طور معمول زمانی رخ می‌دهد که از کاربر چیزی مانند نام پرسیده می‌شود و او به جای نام خود یک عبارت MySQL ارائه کند که به صورت ناشناس روی پایگاه داده وب‌سایت اجرا می‌شود. هرگز نباید به داده‌های ارائه شده از سوی کاربر اعتماد کرد و تنها پس از اعتبارسنجی باید مورد پردازش قرار گیرند. این کار از طریق تطبیق الگو صورت می‌گیرد. در مثال زیر نام کاربری محدود به کاراکترهای حرفی و ارقام به علاوه زیرخط است و طولی بین 8 و 20 کاراکتر دارد. در صورت نیاز می‌توان این قواعد را اصلاح کرد: if (preg_match("/^w{8,20}$/", $_GET['username'], $matches)) { $result = mysql_query("SELECT * FROM users WHERE username = $matches[0]"); } else { e..

توضیحات بیشتر »

مدیریت رکوردهای تکراری در MySQL — راهنمای جامع

به طور کلی جدول‌ها یا مجموعه نتایج حاصل از کوئری‌ها، گاهی اوقات شامل رکوردهای تکراری هستند. در اغلب موارد این وضعیت مجاز است، اما در پاره‌ای موارد نیز لازم است که رکوردهای تکراری حذف شوند. بدین ترتیب باید رکوردهای تکراری شناسایی شده و از جدول حذف شوند. در این بخش از سلسله مطالب راهنمای جامع MySQL به توصیف روش جلوگیری از رخداد رکوردهای مکرر در یک جدول و شیوه حذف رکوردهای از قبل موجود می‌پردازیم. اجتناب از ایجاد رکوردهای مکرر در یک جدول می‌توان از اندیس یکتا (UNIQUE) یا یک PRIMARY KEY روی جدول با فیلدهای مناسب برای جلوگیری از ایجاد رکوردهای تکراری استفاده کرد. در ادامه مثالی را بررسی می‌کنیم. در جدول زیر هیچ اندیس یا PRIMARY KEY وجود ندارد و از این رو امکان ایجاد رکوردهای تکراری برای first_name و last_name وجود دارد. CREATE TABLE person_tbl ( first_name CHAR(20), last_name CHAR(20), sex CHAR(10) ); برای جلوگیری از ایجاد رکوردهای چندگانه با نام و نام خانوادگی یکسان در این جدول می‌توان یک PRIMARY KEY به تعریف آن اضافه کرد. بدین ترتیب لازم است که ستون‌های اندیس‌دار غیر Null باشند، چون PRI..

توضیحات بیشتر »

استفاده از دنباله ها در MySQL — راهنمای جامع

در MySQL دنباله به مجموعه‌ای از اعداد صحیح 1، 2، 3، … گفته می‌شود که به ترتیب برای درخواست مشخصی ایجاد شده‌اند. دنباله‌ها به طور مکرر در پایگاه داده مورد استفاده قرار می‌گیرند، زیرا اپلیکیشن‌های زیادی نیازمند این هستند که هر ردیف در یک جدول شامل یک مقدار یکتا باشد و دنباله‌ها روشی آسان برای تولید چنین مقادیری ارائه می‌کنند. در این بخش از سلسله مطالب راهنمای MySQL به معرفی شیوه استفاده از دنباله‌ها در MySQL می‌پردازیم. استفاده از ستون AUTO_INCREMENT در MySQL ساده‌ترین روش برای استفاده از دنباله‌ها، تعریف یک ستون به صورت AUTO_INCREMENT است. بدین ترتیب MySQL، خود وظیفه افزایش شماره ردیف‌ها با درج رکوردهای جدید را بر عهده می‌گیرد. مثال در مثال زیر یک جدول ایجاد می‌شود و پس از آن چند ردیف در جدول درج می‌شود که برای آن‌ها لازم نیست ID رکورد معین شود، چون ID آن‌ها از سوی MySQL به صورت خودکار افزایش می‌یابند. mysql> CREATE TABLE insect -> ( -> id INT UNSIGNED NOT NULL AUTO_INCREMENT, -> PRIMARY KEY (id), -> name VARCHAR(30) NOT NULL, # type of insect -> date DATE NOT NULL, # date collected -..

توضیحات بیشتر »

اطلاعات پایگاه داده در MySQL — راهنمای جامع

سه نوع اطلاعات پایگاه داده MySQL وجود دارند که می‌توان به دست آورد: اطلاعاتی در مورد نتیجه کوئری‌ها – این اطلاعات شامل چند رکورد هستند که تحت تأثیر عبارت‌های SELECT، UPDATE یا DELETE قرار گرفته‌اند. اطلاعاتی در مورد جدول‌ها و پایگاه‌های داده – این اطلاعات شامل مواردی در مورد ساختار پایگاه داده و جدول‌ها می‌شود. اطلاعاتی در مورد سرور MySQL – این مورد نیز شامل وضعیت سرورهای پایگاه داده، شماره نسخه و مواردی از این دست است. دریافت همه این اطلاعات در خط اعلان MySQL کار آسانی است؛ اما هنگام استفاده از PERL یا PHP باید API های مختلفی را به طور صریح فراخوانی کنیم تا همه این اطلاعات را به دست آوریم. به دست آوردن تعداد ردیف‌هایی که از یک کوئری تأثیر پذیرفته‌اند در این بخش روش کسب این اطلاعات را معرفی می‌کنیم. مثال PERL در اسکریپت‌های DBI، تعداد ردیف‌های تأثیر پذیرفته به وسیله ()do یا از طریق دستور ()execute بازگشت می‌یابد و این مسئله به چگونگی اجرای کوئری وابسته است. # Method 1 # execute $query using do( ) my $count = $dbh->do ($query); # report 0 rows if an error occurred printf "%d rows wer..

توضیحات بیشتر »

چگونه برنامه نویس وب شویم؟ — بخش دوم: بک‌اند (Backend)

این نوشته قسمت دوم از یک راهنمای سه بخشی است که در بخش اول آن به توصیف فرانت‌اند پرداخته‌ایم. در بخش قبلی این راهنما به بررسی فرایند توسعه فرانت‌اند پرداختیم و اینک می‌خواهیم در مورد توسعه بک‌اند صحبت کنیم. منظور از توسعه بک‌اند که گاهی اوقات توسعه سمت سرور نیز نامیده می‌شود، توسعه پردازش‌هایی است که روی سرور رخ می‌دهند و معمولاً در دید کاربران قرار ندارند. یک رابط کاربری وب می‌تواند درخواست‌هایی به بک‌اند ارسال کند و تقاضای رندر برخی کدهای HTML، ذخیره‌سازی ورودی‌های کاربر در پایگاه داده، احراز هویت یک کاربر، ارسال یک ایمیل یا پردازش یک تقاضای پرداخت را ارائه کند. با این که این بخش از اپلیکیشن در دید کاربر قرار ندارد؛ اما به هیچ وجه کم‌اهمیت نیست. در واقع بک‌اند، قلب و مغز هر اپلیکیشنی محسوب می‌شود. راهنمای رنگ‌های نمودار فوق کاملاً آسان است. خطوط به رنگ زرد نشان‌دهنده چیزهای ساده‌ای هستند که باید یاد بگیرید، خطوط نارنجی موارد پیشرفته‌تری هستند که می‌توانید آن‌ها را بعدتر نیز بیاموزید و خطوط خاکستری موضوعاتی هستند که احتمالاً در پروژه‌های خاص مفید خواهند بود. زبان‌ها در مقایسه با ت..

توضیحات بیشتر »

ساخت API امن با Spring Boot و Angular 6 — از صفر تا صد

امنیت وب امروزه بسیار حائز اهمیت است. ایجاد و استفاده از سرویس‌ها بدون در نظر گرفتن بحث امنیت، امروزه امری کاملاً پر ریسک تلقی می‌شود. اگر می‌خواهید اطلاعات بسیار حساسی را انتقال دهید، باید از یک لایه امنیتی کامل برای حفاظت از داده‌های محرمانه استفاده کنید. چون امن ساختن سیستم‌ها کاملاً مهم است. API امن یکی از مهمترین اجزای این ساختار امنیتی را تشکیل می‌دهد. بنابراین هر زمان که از فراخوانی API یا هر چیز دیگری استفاده می‌کنیم، باید ابتدا امنیت داده‌های حساس را در نظر بگریم. انواع بسیار مختلفی از روش‌های امنیتی برای امن سازی داده‌ها وجود دارند. در این نوشته نمونه جامعی از امنیت Spring را بررسی می‌کنیم. در این راهنما از Spring boot و angular برای نمایش چگونگی امن سازی اپلیکیشن‌های انگولار با استفاده از احراز هویت ساده از طریق Spring Security بهره می‌گیریم. در این راهنما با روش استفاده از Spring Boot برای ساخت سریع API وب آشنا می‌شویم و به طور خلاصه با استفاده از یک لایه بک‌اند جاوا، وابستگی maven امنیت Spring را برای امن سازی اپلیکیشن به خدمت می‌گیریم. همچنین از پلتفرم انگولار برای سهولت..

توضیحات بیشتر »