طراحی پایگاه داده را از کجا شروع کنیم
طراحی پایگاه داده چیست
موقتا نیاز به پایگاه داده از هر وقتی بیشتر حس می شود. وب سایتهای اینترنتی و نرمافزارها بر مبنای استعمال از دیتابیسها شکل میگیرند. به همین استدلال طراحی پایگاه داده به یک بایستگی برای بخش اعظمی از کسبوکارهای نو و خصوصا استارتاپها تبدیل شده است. دراین مقاله میخواهیم نیاز جانور برای یک پایگاه داده خوب را تشریح کرده و آن گاه انواع پایگاه داده و سیستمهای مدیریت گوناگون آن را معرفی کنیم. در نهایت هم فرایند تیمبندی اطلاعات و تبدیل آن ها به یک پایگاه داده SQL را به شما آرم خواهیم داد. در مرحلهی اول باید طراحی پایگاه داده چیست متوجه شویم.
طراحی پایگاه داده چیست
برهان نیاز به طراحی پایگاه داده چیست
پایگاه داده یک دسته منظم از دادههاست که در یک سیستم کامپیوتری ذخیره میشود. دسترسی بدین دادهها برای استفاده کننده از طریق نرمافزاری با نام DBMS یا Database Management System صورت میگیرد. طراحی سایت در مشهد دنیای امروز مبنی بر سعی سیستمهای دیجیتالی و دستیابیوکارهای الکترونیک انجام یافته می باشد. مثلا در ایران «اسنپ»، «دیجیمتاع» و «دیوار» نقش اساسی و غیرقابل انکاری در زندگی مردم پیدا کردهاند. از طرف دیگر استارتاپهای بیشماری تمامیروزه بر بستر اینترنت در فعلا شکلگیریاند.
پایگاه داده در طراحی بکاند یا درونی وبسایتها و اپلیکیشنها نقش اساسی داراست. لیست اجناس و خصوصیات کاربران دو نمونه اصلی از کاربرد رایا پارس پایگاه داده برای حصولوکارهای الکترونیکاند. دادهها در قالب پایگاه داده ثبت شده و در طی نیاز، از طریق نرم افزارنویسی با چندخط کد فراخوانده شده و روی صفحه سایت به نمایش درمیآیند. برای همین طراحی پایگاه داده به بخشی اصلی و کلیدی از فرایند فعالسازی استحصالوکارهای الکترونیک تبدیل گردیدهاست.
گونه های سیستم های رئیس پایگاه داده
گفتیم که پایگاه داده مجموعه منظمی از دادههاست که روی کامپیوتر ذخیره می گردد. دسترسی کاربر به اطلاعات موجود در پایگاه داده از طریق DBMSها یا سیستمهای مدیریت پایگاه داده ممکن می گردد. ahrefs Database Management System که بهاختصار DBMS نامیده میشود، نرمافزاری می باشد که عمل ذخیرهسازی و سازماندهی دادهها را بر عهده دارد. اشکال سیستم مدیر پایگاه داده عبارتند از:
سلسله مراتبی
شبکهای
رابطهای
شیگرا
دیتابیس گراف
مدل ER
دیتابیس گواهی
دیتابیس NoSQL
عامل نیاز به طراحی پایگاه داده چیست
مدل سلسله مراتبی
درین مدل از رئیس پایگاه داده، دادهها در شکل گرههای والد/فرزندی ذخیره می گردند. هر گره غیروابسته از دادههای مربوط به خود، اطلاعاتی درباره موقعیت والد/فرزندی خود و ارتباطش با گرههای دیگر را در خود دارااست. در این مدل دادهها به طور درختی ذخیره میشوند. هر شاخه والد میتواند یکسری فرزند داشته باشد ولی هر فرزند صرفا یک والد داراست.
از این مدل (که در دهه 60 میلادی توسط IBM طراحی شد) برای مدیریت داده در سیستمهای ارتباطی و بانکی استعمال میگردد. ارتباط یک به چند فی مابین گرههای والد و فرزند و خلا قابلیت ارتباط دربین فرزندان منجر کمبود انعطافپذیری در مدل سلسلهمراتبی می باشد. امتیاز اساسی این مدل به سرعت بالا و سعی دقیق آن مربوط می گردد.
طرزی ساخت پایگاه داده در وردپرس
مدل شبکهای
مدل مدیریت پایگاه داده شبکهای، شکلی شبیه به تار عنکبوت دارااست. این مدل تا حدودی شبیه مدل سلسلهمراتبی هست، با این تفاوت که دراین مدل حالت والد و فرزندی وجود نداشته و جای جای میتواند با تعدادی از نقاط دیگر در باب باشد. کاربرد اصلی این شبکه در مدیر سیستم اطلاعاتی برای شرکتهای بزرگ کامپیوتری میباشد. والد در مدل شبکهای «اشغالکننده» و فرزند «عضو» نام داراست. ارتباط ها دربین این دو چند به یکسری میباشد و محدودیتی راجعبه با یکدیگر ندارند. مبدع این مدل چارلز باخمن میباشد.
مدل سلسله مراتبی
مدل رابطهای
معروفترین و پراستفادهترین نوع رئیس پایگاه داده که گویش SQL برای دسترسی به آن طراحی شده است. در این مدل دادهها در قالب جدولهایی ذخیره می شوند. هر ستون مشمول یک ویژگی و هر طرح دربرگیرنده یک رکورد هست. رکورد مشمول اطلاعاتی بوده که در زمینهی یک پدیده و ویژگیهای متفاوت آن به دست آمده هست. برای مثال در ستونها «نام»، «سن»، «جنسیت» و «پرداختی» بوده و در هر سطر را مقدار این ویژگیها برای یک مشتری تشکیل می دهد. این مدل به علت سازگاری با نرم افزارنویسی و دسترسی آسوده اطلاعات برای طراحی سایت و اپ از محبوبیت بالای جهانی برخوردار است.
مدل شی گرا
امتیاز مدل رابطهای در وارفته بودن فعالیت با آن است. مدل شیگرا در طرف مقابل هزینه توسعه و گسترش و یادگیری بالایی دارااست و شغل با آن مناسب هرکسی نیست. در قبال مدل شیگرا ضعفهای مدل رابطهای مثل غیرقابل تجزیه بودن ستونها و نبود ترتیب در ردیفها را نداشته و از دقت بسیار بالاتری شامل است. اگر مورد کمبود منابع (مالی و انسانی) برای توسعه این مدل در حصولوکار وجود نداشته باشد، گزینش مد شی گرا منطقیتر از مدل رابطهای بهحیث میرسد.
فراگیری زبان SQL در پایگاه داده
مدل گراف
این مدل مشتقی از مدل رابطهای بوده و زیرمجموعه NoSQL قرار میگیرد. در مدل گراف، چند گره و گوشه داریم که نماینده اطلاعاتاند. هر گره نقش رکورد در مدل رابطهای را داراست (اطلاعات ثبت شده کاربر، جنس یا…) و هر گوشه ارتباط میان رکوردها را بیان میکند. یکسری خواص (Properties) هم بهعنوان اطلاعات اضافی در گرهها قرار میگیرند.
مدل ER
مدل ER یا Entity Relationship بر مبنای دو رکن مهم انجام شده میباشد. ER در انگلیسی مخفف رابطه پدیدهها میباشد. در این مدل پدیدهها روابط متفاوت (یک به یک – یک به چند – چندین به تعدادی) با یکدیگر دارند. در مدل ER نموداری داریم که گونه های مختلف در آن معانی خاص خود را دارا هستند:
مستطیل: پدیده (رئیس، معلم، دانشجو یا…)
بیضی: ویژگی (نام، سن، جنسیت یا…)
لوزی: نوع رابطه (از جمله رابطه دو پدیده مدرس و کالج از نوع استخدام میباشد)
خطوط: وجود ارتباط بین پدیدهها را علامت میدهند
بیضی دولایه: ویژگی چندمقداری
بیضی نقطهچین: ویژگی مشتق شده
مستطیلهای دولایه: گروه پدیدههای ضعیف
دو خط کنار هم: شرکت کردن بی نقص یک پدیده در یک رابطه
مدل سند
این مدل نیز جزو زیرمجموعههای NoSQL محسوب میشود و جدیدا محبوبیت زیادی کسب کرده است. در مدل سند، دادهها در قالب سندهایی ذخیره میگردند. هر سند مشمول خود داده، رابطه ها آن داده با دیگر دادهها و ویژگیهای آن داده است. مزیتی که باعث شده برخی از متخصصان در سالهای اخیر این نحوه را به SQL ترجیح دهند، ذخیره سریعتر و دسترسی بهتر به اطلاعات میباشد. موقتا این مدل از طریق نرمافزارهایی مثل Hbase، Cassandra، Apache Flink و IBM Informix ارائه می گردد.
مدل NoSQL
مدل NoSQL
مدل سند و مدل گراف دو نمونه از دارای اسم و رسمترین جایگزینهای معرفی شده برای SQL اند. مدل NoSQL به حذف کامل SQL تاکید ندارد بلکه میخواهد محدودیتهای SQL برای سیستمهایی همچون اینترنت اشیاء را بدور بزند. برای همین بیشتر اوقاتی که این راه در پروژهای به فعالیت میرود، در واقع یک روش دیگر در کنار SQL بههمدم معماری ابری برای دادهها پیادهسازی می گردد. دارای شهرتترین دیتابیسها NoSQL را در پی میبینید:
Cosmos DB
ArangoDB
Couchbase Server
CouchDB
Amazon DocumentDB
MongoDB, CouchBase
Elasticsearch
Informix
SAP HANA
Neo4j
فرایند طراحی پایگاه داده چیست
اینک می خواهیم به سراغ طراحی یک پایگاه داده برویم. لازم به ذکر میباشد در اینجا تمرکز ما بر پایگاه داده رابطهای خواهد بود. چون که این مدل ازمدیریت پایگاه داده دوستداشتنیترین و پرکاربردترین آنها است و توضیح تک تک نحوهها از توان این نوشتهیعلمی خارج خواهد بود. فرض فرمائید استخراجوکاری دارید و قرار می باشد برای آن پایگاه دادهای طراحی شود. این مراحل مورد نیاز میباشد با ظرافت و دقت خاصی به ایفا برسد. چون در غیراینصورت توانمند به بهبود روندهای کاری شما نخواهد بود. در پی این پروسه به ترتیب توضیح داده میشوند.
هدف از طراحی پایگاه داده چیست
پایگاههای داده در جاهای متفاوت و برای اهداف متفاوتی طراحی می شوند. اینکه چه فرد یا افرادی قرار میباشد با این پایگاه داده فعالیت کنند بسیار مهم خواهد بود. از جمله درصورتی که قرار است منشی شرکت با اطلاعات بسیار تحت کامپیوتری از آن به کار گیری کند، این دیتابیس می بایست مبتنی بر با قدرت او طراحی گردد. سفارش ما برای این مرحله بازرسی نوع سازماندهی فعلی اطلاعات و گفتوگو با کسانی میباشد که در آینده با دیتابیس عمل خواهند کرد.
مراحل طراحی پایگاه داده چیست
فهرست پدیدهها و ویژگیهایشان را بسازید
پایگاه داده رابطهای بر مبنای چندین جدول شکل میگیرد. هر سطر این جدولها مربوط به یک پدیده (کاربر، مال، کارمند یا..) و هر ستون شامل ویژگیهای آن (نامکاربری، بها، شمارهپرسنلی یا…) خواهد بود. آغاز می بایست تک تک پدیدههای مورد تفحص را مشخص و معلوم کرده و آنگاه کل ویژگیهای اصلی آنان را روی برگه بیاورید
جدول نخستین را روی صفحه طراحی نمایید
بهدنبال یک فهرست دارید دربرگیرنده پدیدهها و ویژگیهای مهم هر پدیده. اکنون وهله به طراحی جدول از این فهرست می رسد. فرض نمایید تجارت شما می خواهد پایگاه دادهای از مشتریان و اطلاعات آنها داشته باشد.
انتخاب نوع دادهها
بعداز طراحی یک جدول اولیه روی صفحه، دفعه به تعیین نوع داده هر ستون میرسد. این جدولها قرار میباشد وارد یک زبان اپلیکیشننویسی شوند و اولین قدم در نرمافزارنویسی، تعیین نوع دادهها میباشد. مثلا دادههای ستون سن از فرآورده int دادههای ستون نام از مال varchar خواهند بود.
انتخاب کلید اساسی برای هر جدول
درین مرحله بایستی بدانید یکسری جدول دارید، هرمورد تعریف کننده کدام پدیده هستند و چه ویژگیهایی از آن پدیده را تمجید خواهند کرد. به دنبال برای هر جدول یک کلید اساسی (Primary Key) معین نمائید. این کلید بهمعنای کمی است که منجر مجزا شدن ردیفهای جدول از یکدیگر میشود.
به عنوان مثال مشتری، بهترین گزینه برای کلید مهم شماره ملی خواهد بود چون که منحصر به فردبهفرد هست و مشتریان را از یکدیگر جداازهم میکند. مقدار ستون کلید اساسی هیچگاه نباید null باشد. بههمین برهان می باشد که اکثر زمان ها کسبوکارها به هر توصیه یا مشتری یکی از چندرقمی یا کد دربرگیرنده سخن و رقم اختصاص میدهند.