یادداشتهایی از کلاس آموزش پایگاه داده برگزار شده در دانشگاه خاتم – زمستان 401
پایگاه داده چیست؟
مجموعه ای از داده های مرتبط است که جنبه ای از دنیای واقعی را نشان میدهند. این مجموعه برای کار خاص طراحی شده و با داده ها پر میشود.
دسترسی به این دادهها معمولاً توسط «سیستم مدیریت پایگاه داده» یا RDBMS متشکل از مجموعهای از نرمافزارهای رایانهای که به کاربران اجازه میدهد با یک یا چند پایگاه داده تعامل داشته باشند و دسترسی به همه دادههای موجود در پایگاه داده را فراهم میکند.
DBMS چیست؟
DBMS نرم افزاری است که برای ذخیره و مدیریت داده ها استفاده می شود. DBMS در دهه 1960 برای ذخیره هرگونه داده معرفی شد.
همچنین دستکاری داده ها یا manipulate مانند درج یا insert، حذف یا delete و به روز رسانی داده ها یا Update را ارائه می دهد.
سیستم DBMS همچنین عملکردهایی مانند تعریف، ایجاد یا create، بازنگری و کنترل پایگاه داده را انجام می دهد.
RDBMS چیست؟
سیستم مدیریت پایگاه داده رابطه ای RDBMS- نسخه پیشرفته یک سیستم DBMS است.
در طول دهه 1970 به وجود آمد.
تفاوت کلیدی DBMS , RDBMS

DBMS | RDBMS |
داده ها را به عنوان یک فایل ذخیره می کند | داده ها در قالب جداول ذخیره می شوند. |
تک کاربر | چند کاربر |
عدم پشتیبانی از client-server architecture | پشتیبانی میکند |
نیاز نرم افزاری و سخت افزاری پایین | بالاتر |
افزونگی داده ها (data redundancy)رایج است | کلیدها و فهرست ها اجازه افزونگی داده را نمی دهند |
SQL چیست؟
زبان جستجوی ساختاریافته (SQL) که به صورت «S-Q-L» یا گاهی اوقات به صورت «See-Quel» تلفظ میشود، زبان استاندارد برای کار با پایگاههای داده رابطهای است. یک پایگاه داده رابطه ای روابط را در قالب جداول تعریف می کند.
برنامه نویسی SQL می تواند به طور موثر برای درج insert ، جستجو، به روز رسانی update، حذفdelete رکوردهای پایگاه داده استفاده شود.
مثال از پایگاه داده های رابطهای:
مانند MySQL, PostgreSQL، Oracle، MS SQL Server، Sybase و غیره از SQL استفاده می کنند.
NoSQ چیست؟
NoSQL یک DMS غیرمرتبط است که به طراحی ثابت نیاز ندارد، از پیوستن جداول(جوین) اجتناب می کند و مقیاس پذیری آن آسان است.
NoSQL برای ذخیرهسازی دادههای توزیعشده(distributed) با نیازهای عظیم ذخیرهسازی داده استفاده میشود. NoSQL از پایگاه داده یا داده های بزرگ و برنامه های وب بلادرنگ استفاده می شود.
به عنوان مثال شرکت هایی مانند توییتر، فیس بوک، گوگل که هر روز چندین ترابایت اطلاعات کاربر را جمع آوری و پردازش می کنند.
RDBMS سنتی از نحو SQL به معنای structured query language برای ذخیره و بازیابی داده ها برای بینش و بصیرت بیشتر استفاده می کند.
اما یک سیستم پایگاه داده NoSQL شامل طیف گسترده ای از فناوری های پایگاه داده است که می تواند داده های ساختار یافته، نیمه ساختاریافته، بدون ساختار و چند شکلی را ذخیره کند.
مزایای no sql :
توزیع پذیر بودن آنها دیتای بزرگ را روی sql نمیتوان برد. سرعت آنها کاهش پیدا میکند. برای مثال فیسبوک و … . بنابراین باید از نوعdistributed استفاده کرد که این ویزگی در nosql وجود دارد. آنها از لحاط ساختار فیکس نیستند.
چند اصطلاح:
DML مربوط به دستگاری داده است data manipulation که ادیت و آپدیت و … باشد.
برای منیپولایشن دیتا استفاده میشود.insert- update- delet
ِDDL مربوط به ساختار است data definition language1
DCL – data control language به امنیت و دسترسی – کی چه یوزری- چه مقدار دسترسی- رضا فقط ببیند- علی فقط ارسال کند و … .
چند نکته:
تاپل همان row هستن.
ستون ها همان attribute است.
relation همان جدول است.
پروسیجر یا رویه که یک تیکه کد است. برای مثال پروسیجری که برای ما جمع انجام میدهد.
فانکشن از ما ورودی میگیرد و ممکنه خروجی نداشته باشد و یا داشته باشد.
trigger : برای مثال دوست داریم سر یک ایونت خاص یک اکشن خاص انجام شود.
constraint: برای مثال اینکه در فلان فیلد فقط عدد باشد. یک سری محدودیت ها و قوانین را گویند.
یک پایگاه داده NoSQL (غیر رابطه ای) چگونه کار می کند؟
حجم دادههای زیاد، تأخیر کم و مدلهای داده انعطافپذیر
در پایگاه داده NoSQL، یک رکورد معمولاً به عنوان یک سند JSON ذخیره می شود.
دلایل استفاده از NOSQL
•NoSQL databases are a great fit for many modern applications such as mobile, web, and gaming that require flexible, scalable, high-performance, and highly functional databases to provide great user experiences.
•Flexibility: NoSQL databases generally provide flexible schemas that enable faster and more iterative development.
The flexible data model makes NoSQL databases ideal for semi-structured and unstructured data.
•Scalability: NoSQL databases are generally designed to scale out by using distributed clusters of hardware instead of scaling up by adding expensive and robust servers. Some cloud providers handle these operations behind-the-scenes as a fully managed service.
•High-performance: NoSQL database are optimized for specific data models and access patterns that enable higher performance than trying to accomplish similar functionality with relational databases.
•Highly functional: NoSQL databases provide highly functional APIs and data types that are purpose built for each of their respective data models.
Referential integrity:
Referential integrity refers to the relationship between tables. Because each table in a database must have a primary key, this primary key can appear in other tables because of its relationship to data within those tables.
یکپارچه بودن ارجاعات. اگر میگوییم ID اول در هر جای دیتابیس رابطه ای که باشیم منظورمان یک چیز است.
Consistency :
Consistency, in the context of databases, states that data cannot be written that would violate the database’s own rules for valid data.
If a certain transaction occurs that attempts to introduce inconsistent data, the entire transaction is rolled back and an error returned to the user.
در زمینه پایگاههای داده، بیان میکند که نمیتوان دادههایی نوشت که قوانین خود پایگاه داده برای دادههای معتبر را نقض کند. اگر تراکنش خاصی رخ دهد که سعی در معرفی داده های متناقض داشته باشد، کل تراکنش برگشت داده می شود و یک خطا به کاربر برگردانده می شود.
سازگاری داده یا Read consistency:
Data consistency means that each user sees a consistent view of the data, including visible changes made by the user’s own transactions and transactions of other users.
به این معنی است که هر کاربر یک نمای ثابت از دادهها، از جمله تغییرات قابل مشاهده ایجاد شده توسط تراکنشهای خود کاربر و تراکنشهای سایر کاربران را میبیند.Read consistency))
تا 13
***
انواع کوئری:

ساختار SQL :

دستورات در SQL :

رابطه در دیتا بیس:
عدد 815 در یه جدول زیر وجود دارد. این خود یعنی وجود رابطه.

تا 19