💡مرور مطالب گفته شده با بررسی یک کوئری
فرض کنید که سه جدول
هدف اینکه مجموع فروشهای انجامشده توسط هر کارمند رو در سال 2023 محاسبه کنیم، بعد فقط کارمندانی که مجموع فروششون بیشتر از 50,000 واحد هست رو نشون بدیم و نتایج رو به ترتیب نزولی مجموع فروش مرتب کنیم.
🔵 ساختار جداول و کوئری
🔵 بررسی جزئیات کوئری
🔵 انتخاب ستونها: در اینجا سه ستون
🔵 منبع داده و ارتباط جداول: در این بخش، جدول
🔵 شرطها (WHERE): این قسمت مشخص میکنه که فقط فروشهایی که در سال 2023 انجام شدن، انتخاب شن.
🔵 گروهبندی (GROUP BY): دادهها بر اساس نام کارمند و نام دپارتمان گروهبندی میشن.
🔵 شرطها برای گروهها (HAVING): فقط گروههایی که مجموع فروششون بیشتر از 50000 واحده، انتخاب میشن.
🔵 مرتبسازی (ORDER BY): نتایج بر اساس مجموع فروش به ترتیب نزولی مرتب میشن.
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
فرض کنید که سه جدول
Employees
شامل اطلاعات کارمندان، Departments
شامل اطلاعات دپارتمانها و جدول Sales
شامل اطلاعات فروش رو داریم.هدف اینکه مجموع فروشهای انجامشده توسط هر کارمند رو در سال 2023 محاسبه کنیم، بعد فقط کارمندانی که مجموع فروششون بیشتر از 50,000 واحد هست رو نشون بدیم و نتایج رو به ترتیب نزولی مجموع فروش مرتب کنیم.
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
EmployeeName NVARCHAR(50),
DepartmentID INT
);
CREATE TABLE Departments (
DepartmentID INT PRIMARY KEY,
DepartmentName NVARCHAR(50)
);
CREATE TABLE Sales (
SaleID INT PRIMARY KEY,
EmployeeID INT,
SaleAmount DECIMAL(10, 2),
SaleDate DATE
);
SELECT
E.EmployeeName,
D.DepartmentName,
SUM(S.SaleAmount) AS TotalSales
FROM
Employees E
JOIN
Sales S ON E.EmployeeID = S.EmployeeID
JOIN
Departments D ON E.DepartmentID = D.DepartmentID
WHERE
S.SaleDate >= '2023-01-01' AND S.SaleDate <= '2023-12-31'
GROUP BY
E.EmployeeName, D.DepartmentName
HAVING
SUM(S.SaleAmount) > 50000
ORDER BY
TotalSales DESC;
EmployeeName
(نام کارمند)، DepartmentName
(نام دپارتمان) و SUM(S.SaleAmount) AS TotalSales
(مجموع فروشها به عنوان TotalSales) انتخاب میشن.SELECT E.EmployeeName, D.DepartmentName, SUM(S.SaleAmount) AS TotalSales
Employees
با جدول Sales
بر اساس EmployeeID
و جدول Departments
بر اساس DepartmentID
مرتبط شدن.FROM Employees E
JOIN Sales S ON E.EmployeeID = S.EmployeeID
JOIN Departments D ON E.DepartmentID = D.DepartmentID
WHERE S.SaleDate >= '2023-01-01' AND S.SaleDate <='2023-12-31'
GROUP BY E.EmployeeName, D.DepartmentName
HAVING SUM(S.SaleAmount) > 50000
ORDER BY TotalSales DESC
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2👏1👌1
زیرپرسوجو یا Subquery، یک کوئری تودرتو (nested query) هست که داخل کوئری دیگه قرار میگیره. به عبارت دیگه، سابکوئری یک پرسوجوی SQL هست که به عنوان بخشی از یک کوئری دیگه اجرا میشه. سابکوئری میتونه در بخشهای مختلف یک کوئری اصلی مثل SELECT، FROM، WHERE، HAVING و حتی در دستورهای UPDATE و DELETE استفاده شه.
SELECT name
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);
SELECT name
FROM employees
WHERE department_id IN (SELECT department_id FROM departments WHERE location = 'New York');
SELECT name
FROM employees e1
WHERE salary > (SELECT AVG(salary) FROM employees e2 WHERE e1.department_id = e2.department_id);
SELECT name, (SELECT COUNT(*) FROM projects WHERE manager_id = e.employee_id) AS project_count
FROM employees e;
SELECT sub.department_id, sub.avg_salary
FROM (SELECT department_id, AVG(salary) AS avg_salary FROM employees GROUP BY department_id) sub
WHERE sub.avg_salary > 50000;
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👏2👌2👨💻2❤1
دو جدول مشتری با ستونهای customer_name و customer_id و سفارشات با ستونهای order_date، customer_id و order_id داریم. برای پیدا کردن نام مشتریانی که تعداد سفارشهاشون بیشتر از میانگین تعداد سفارشهای همه مشتریانه، از یک Subquery استفاده میکنیم.
SELECT customer_id, COUNT(order_id) AS order_count
FROM Orders
GROUP BY customer_id
SELECT AVG(order_count)
FROM (
SELECT customer_id, COUNT(order_id) AS order_count
FROM Orders
GROUP BY customer_id
) AS subquery
SELECT customer_name
FROM Customers
WHERE customer_id IN (
SELECT customer_id
FROM Orders
GROUP BY customer_id
HAVING COUNT(order_id) > (
SELECT AVG(order_count)
FROM (
SELECT customer_id, COUNT(order_id) AS order_count
FROM Orders
GROUP BY customer_id
) AS subquery
)
);
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👏2👌1
دو نوع اصلی پایگاه دادهها SQL و NoSQL هستن که هر کدوم از این دو نوع پایگاه داده ابزارها و نرمافزارهای خاص خودشون رو دارن.
علاوه بر نرمافزارهای اصلی پایگاه داده، ابزارهای متعددی برای مدیریت و توسعه پایگاه دادهها وجود دارن. بعضی از این ابزارها عبارتند از:
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥1👨💻1
#Weekend
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍2👏2
در پایگاههای داده، مدیریت بهینه دادهها اهمیت خاصی داره. دو تکنیک اساسی که برای بهبود عملکرد و یکپارچگی دادهها به کار میرن، نرمالسازی و نرمالزدایی (Normalization and Denormalization) هستن. انتخاب بین این دو روش باید بر اساس نیازها و الزامات سیستم انجام شه تا بهترین عملکرد و کارایی به دست بیاد.
-فرم نرمال اول (1NF): در این فرم، همه ستونهای جدول باید atomic باشن، یعنی هر ستون باید تنها یک مقدار منحصر به فرد داشته باشه و جداول باید بدون تکرار و چندتایی باشن.
-فرم نرمال دوم (2NF): برای رسیدن به فرم نرمال دوم، اول باید جدول به فرم نرمال اول رسیده باشه. بعد همه ستونهای غیر کلیدی باید به کلید اصلی بهطور کامل وابسته باشن، یعنی نباید هیچگونه وابستگی جزئی وجود داشته باشه.
-فرم نرمال سوم (3NF): برای رسیدن به فرم نرمال سوم، اول باید جدول به فرم نرمال دوم رسیده باشه. بعد هیچ کدوم از ستونهای غیر کلیدی نباید به ستونهای غیر کلیدی دیگه وابستگی Transitive داشته باشن.
وابستگی ترانزیتی (Transitive Dependency) در پایگاههای داده به وضعیتی گفته میشه که یک ستون غیر کلیدی به یک ستون غیر کلیدی دیگه وابسته باشه، نه به کلید اصلی.
-فرم نرمال بویس-کاد (Boyce-Codd Normal Form - BCNF): این فرم تکمیلکننده فرم نرمال سومه و اطمینان حاصل میکنه که هر وابستگی تابعی در جدول، باید تنها و تنها به کلید اصلی وابسته است.
-فرم نرمال چهارم (4NF): این فرم از چند مقدار بودن جداول جلوگیری میکنه تا هیچ ترکیب چند مقداری از دادهها در یک جدول وجود نداشته باشه.
-فرم نرمال پنجم (5NF): این فرم اطمینان میده که هیچ وابستگی پیوستی در جدول وجود نداره و جداول باید به نحوی باشن که بدون از دست دادن اطلاعات بشه اونها رو به بخشهای کوچکتر تقسیم کرد.
وابستگی پیوستی (Join Dependency) زمانی اتفاق میافته که یک جدول نمیتونه بدون از دست دادن اطلاعات به جداول کوچکتر تقسیم شه. به عبارت دیگه، اگه جدول به جداول کوچکتر تقسیم شه، برای بازسازی اطلاعات اصلی نیاز به پیوندهای پیچیده (Join) خواهد بود.
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍3👏2👌1
مثال: اضافه کردن نام مشتری به جدول سفارشات تا نیاز به پیوند جدول مشتریان و سفارشات کاهش پیدا کنه.
مثال: تقسیم جدول بیماران به دو جدول
Patient_Details
و Patient_Medical_History
برای جدا کردن اطلاعات عمومی بیماران از سوابق پزشکیشون.مثال: تقسیم جدول اطلاعات دانشجویان به جداول جداگانه بر اساس دانشکدههای مختلف.
مثال: اضافه کردن ستون مجموع نمرات به جدول دانشجویان برای جلوگیری از محاسبه مجدد مجموع نمرات در هر پرسوجو.
مثال: ایجاد نسخهای از جدول سفارشات که فقط شامل سفارشات فعاله و برای پرسوجوهای مکرر مربوط به سفارشات فعال بهینهسازی شده.
مثال: ایجاد یک Materialized Views برای نمایش مجموع فروش ماهانه که نیاز به پیوند جداول فروش و محصولات رو کاهش میده.
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍1🔥1👏1
ایندکس در پایگاههای داده، دسترسی سریع به دادهها رو ممکن میکنه. ایندکسها مثل فهرست یک کتاب عمل میکنن؛ به این معنی که برای پیدا کردن سریع یک رکورد خاص در جدول دادهها، از ایندکس استفاده میشه. بدون وجود ایندکس، جستجو در پایگاه داده نیازمند اسکن کامل جدوله که میتونه بسیار زمانبر باشه.
CREATE INDEX
به همراه مشخص کردن نام ایندکس، نام جدول و ستون یا ستونهایی که باید ایندکس شن، به کار میرن. برای مثال:CREATE INDEX idx_name ON table_name(column_name);
- مزایا: به دلیل ساختار درختی، زمان دسترسی به دادهها رو به شکل لگاریتمی کاهش میده که باعث کارایی بالا در جستجو و مرتبسازی میشه. B-tree برای جستجوهای محدودهای کارآمده چون میتونه به سرعت دادههایی رو که در یک محدوده خاص قرار دارن، پیدا کنه. در نهایت، این ساختار از انعطافپذیری بالایی برخورداره و برای ایندکسهای اولیه، ثانویه و ترکیبی مناسبه.
- معایب: نیاز به فضای ذخیرهسازی زیاده داره چون باید اطلاعات ساختاری درخت رو ذخیره کنه. همچنین، مدیریت و نگهداری یک B-tree میتونه پیچیده باشه، به ویژه در پایگاههای داده با حجم زیاد تغییرات و اطلاعات.
- مزایا: سرعت بسیار بالا در جستجوهای دقیق (Exact Match) و ایندکسهای هش نسبت به B-tree سادهتر پیادهسازی و مدیریت میشن، که در نتیجه باعث کاهش پیچیدگی در فرآیندهای نگهداری و بهروزرسانی ایندکسها میشه.
- معایب: عدم پشتیبانی از جستجوهای محدودهای؛ یعنی ایندکسهای هش برای جستجوهایی که نیاز به بررسی یک محدوده از دادهها دارن، مناسب نیستن. همچنین، در صورتی که تابع هش دو کلید مختلف رو به یک مکان نگاشت کنه، Collision به وجود میاد که نیاز به مدیریتش داریم و این موضوع پیچیدگی رو افزایش میده.
- مزایا: افزایش کارایی جستجوهای ترکیبی؛ به این معنی که ایندکسهای ترکیبی میتونن سرعت جستجوهایی که بر اساس چند ستون انجام میشن رو بهبود بدن.
- معایب: مدیریت ایندکسهای ترکیبی ممکنه پیچیده باشه، به خصوص اگه تعداد ستونهای ایندکس شده زیاد باشن و هر بار که دادهها در ستونهای ایندکس شده تغییر میکنن، ایندکس ترکیبی هم باید بهروز شه که هزینهبره.
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤3👍2👏1
انبار داده (Data Warehouse):
- تحلیل دادهها
- ذخیره دادههای خلاصهشده
- استفاده از OLAP (پردازش تحلیلی آنلاین) که بر اساس مدل داده چندبعدیه
- انجام عملیات پیچیده روی دادهها برای تحلیل
- نیاز به بهروزرسانی دادهها برای دریافت اطلاعات جدید
- معمولاً برای استفاده چند برنامه کاربردی و بخشهای مختلف سازمان طراحی میشه
- معمولاً برای پشتیبانی از تصمیمگیری و تحلیلهای کلان استفاده میشه
پایگاه داده (Database):
- ثبت دادهها و تراکنشها
- ذخیره دادههای جزئی و دقیق
- استفاده از OLTP (پردازش تراکنش آنلاین) که اجرای لحظهای تعداد زیادی از تراکنشهای پایگاه داده رو ممکن میکنه
- انجام عملیات اساسی روی دادهها
- دسترسی لحظهای به دادهها رو فراهم میکنه
- استفاده از دادهها از چند برنامه کاربردی
- معمولاً برای پشتیبانی از عملیات روزمره و تراکنشهای جاری استفاده میشه
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤4👌2👨💻1
جوینها در SQL به ما امکان میدن دادهها رو از چند جدول با هم ترکیب کنیم. درک صحیح از انواع مختلف JOIN و نحوه استفاده از اونها، برای هر برنامهنویس پایگاه داده ضروریه.
employees
و departments
داریم. میخوایم تمام کارمندان رو همراه با نام دپارتمانهاشون نشون بدیم، حتی اگه کارمندی دپارتمان نداشته باشه.SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;
products
و orders
داریم. میخوایم تمام سفارشها رو همراه با جزئیات محصولاتشون نشون بدیم، حتی اگه محصولی در سفارشها نباشه.SELECT orders.order_id, products.product_name
FROM orders
RIGHT JOIN products ON orders.product_id = products.id;
students
و courses
داریم. میخوایم تمام دانشجویان و تمام دورهها رو نشون بدیم، حتی اگه دانشجویی در دورهای ثبتنام نکرده باشه یا دورهای دانشجو نداشته باشه.SELECT students.name, courses.course_name
FROM students
FULL OUTER JOIN courses ON students.course_id = courses.id;
authors
و books
داریم. میخوایم تمام کتابها رو همراه با نویسندگان نشون بدیم، فقط اگه کتابی نویسندهای داشته باشه.SELECT authors.name, books.title
FROM authors
INNER JOIN books ON authors.id = books.author_id;
SELECT A.*
FROM A
LEFT JOIN B ON A.id = B.id
WHERE B.id IS NULL;
SELECT B.*
FROM A
RIGHT JOIN B ON A.id = B.id
WHERE A.id IS NULL;
SELECT A.*, B.*
FROM A
FULL OUTER JOIN B ON A.id = B.id
WHERE A.id IS NULL OR B.id IS NULL;
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3🔥2👌1
انبار داده (Data Warehouse):
- قابلیت ذخیرهسازی دادههای ساختاریافته و پردازششده
- دارای حجم کمتری از دادهها در حدود ترابایت
- شامل دادههای تاریخی و رابطهای
- بیشتر توسط تحلیلگران کسبوکار استفاده میشه
- کاربرد در پردازش دستهای و گزارشدهی هوش تجاری
- دارای امنیت بالا و کامل
- ساختار انبار داده از قبل تعریف شده و برای پرسوجوهای خاص بهینه شده
دریاچه داده (Data Lake):
- قابلیت ذخیرهسازی مقادیر زیادی از دادههای ساختاریافته، نیمهساختاریافته، غیرساختاریافته و خام
- دارای حجم بسیار زیادی از دادهها در حدود پتابایت
- دادهها میتونن برای انواع مختلفی از کاربردها مثل یادگیری ماشین، تحلیل جریان داده و هوش مصنوعی استفاده شن
- بیشتر توسط دانشمندان داده و تحلیلگران داده استفاده میشه
- امنیتاش میتونه متغیر باشه و نیاز به مدیریت دقیق داره
- انعطافپذیری بیشتری در ذخیرهسازی و پردازش دادهها داره
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍2🔥2👌1
انبار داده یک سیستم مرکزیه که دادههای سازمان رو از منابع مختلف جمعآوری، ذخیره و مدیریت میکنه تا برای تحلیل و گزارشدهی آماده باشن. این سیستم به منظور پشتیبانی از فرآیند تصمیمگیری و تحلیلهای پیچیده طراحی شده.
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥1👌1
معماری Data Vault 2.0 یک روش پیشرفته برای طراحی انبار دادههاست که هدفش فراهم کردن قابلیت توسعهپذیری، انعطافپذیری و استحکام در مدیریت دادههای بزرگ و پیچیده است. Data Vault 2.0 به عنوان یک توسعه از مدل اصلی Data Vault طراحی شده.
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍1🔥1👨💻1
پایگاه دادههای NoSQL یک دستهبندی از سیستمهای مدیریت پایگاه داده (DBMS) است که برای کار با دادههای غیرسازمانی و حجمهای بزرگ داده طراحی شدن. برخلاف پایگاه دادههای رابطهای (SQL) که از جداول و روابط ساختار یافته استفاده میکنن، پایگاه دادههای NoSQL انعطافپذیری بیشتری در مدلسازی دادهها ارائه میدن.
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🔥2👌2
پایگاههای داده SQL به مدلهای ساختاریافته و رابطهای تأکید میکنن، درحالیکه پایگاههای داده NoSQL با رویکردی برای مدیریت دادههای متنوع و پویا با تأکید بیشتر بر مقیاسپذیری و سرعت دارن. این مطلب تفاوتهای بین این دو سیستم پایگاه داده رو بررسی میکنه.
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2👏2👌1
BACKUP DATABASE MyDatabase TO DISK = 'C:\Backups\MyDatabaseFull.bak';
BACKUP DATABASE MyDatabase TO DISK = 'C:\Backups\MyDatabaseDiff.bak' WITH DIFFERENTIAL;
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE;
RESTORE DATABASE MyDatabase FROM DISK = 'C:\Backups\MyDatabaseFull.bak';
RESTORE DATABASE MyDatabase FROM DISK = 'C:\Backups\MyDatabaseFull.bak' WITH NORECOVERY;
RESTORE DATABASE MyDatabase FROM DISK = 'C:\Backups\MyDatabaseDiff.bak' WITH RECOVERY;
RESTORE DATABASE MyDatabase FROM DISK = 'C:\Backups\MyDatabaseFull.bak' WITH NORECOVERY;
RESTORE LOG MyDatabase FROM DISK = 'C:\Backups\MyDatabaseLog.bak' WITH STOPAT = '2024-07-11T14:30:00', RECOVERY;
ابزار گرافیکی برای مدیریت پشتیبانگیری و بازیابی در SQL Server
ابزار پشتیبانگیری و بازیابی در Oracle Database
ابزاری برای پشتیبانگیری و بازیابی پایگاههای داده MySQL
ابزارهای خط فرمانی برای پشتیبانگیری و بازیابی در PostgreSQL
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2👏2👌2
در پایگاه دادهها، وابستگی به این معناست که مقادیر یک ستون یا مجموعهای از ستونها میتونن تعیینکننده مقادیر ستونهای دیگه باشن. این وابستگیها به طراحان کمک میکنن تا جداول بهینهتر و بدون تکرار و ناسازگاری دادهها ایجاد کنن.
این وابستگی یعنی اگه در یک جدول، یک ستون خاص باشه که با دونستن مقدارش، بتونیم به طور قطعی مقدار یک ستون دیگه رو بگیم. مثلاً اگه شماره ملی یک نفر رو بدونیم، میتونیم نام و نام خانوادگیاش رو هم بفهمیم. بنابراین، شماره ملی تعیینکننده نام و نام خانوادگیه.
این نوع وابستگی زمانی رخ میده که یک ستون میتونه به چند مقدار مستقل از یک ستون دیگه مربوط باشه. مثلاً اگه یک دانشجو چند شماره تماس و همچنین چند آدرس ایمیل داشته باشه، شماره تماسها و آدرسهای ایمیل به طور مستقل از هم هستن، اما هر دو به یک دانشجو مربوط میشن.
این وابستگی زمانی رخ میده که یک ستون به طور غیرمستقیم به ستون دیگه وابسته باشه. مثلاً اگر بدونیم درس یک دانشجو چیه و بر اساسش استاد درس رو بدونیم، بعد اگه از روی استاد بتونیم دانشکده رو بفهمیم، اون وقت بین درس و دانشکده هم یک وابستگی غیرمستقیم (Transitive) وجود داره.
این وابستگی زمانی مطرح میشه که یک جدول بتونه به چند زیرجدول تقسیم شه و با ترکیب مجدد این زیرجدولها، جدول اصلی دوباره ساخته شه. یعنی اطلاعات به شکلی تقسیم شده که بشه با اتصال اونها دوباره به دادههای اولیه رسید.
این وابستگی زمانی مطرح میشه که تمام محدودیتها در جدول تنها به وسیله دامنه مجاز مقادیر ستونها و کلیدهای اصلی تعیین شه. در این صورت، جدول در بالاترین سطح نرمالسازی قرار داره.
این وابستگی بیان میکنه که مقدار یک ستون یا مجموعهای از ستونها در یک جدول باید با مقدار یک ستون یا مجموعهای از ستونها در جدول دیگه مطابقت داشته باشه. مثلاً شماره دانشجویی در جدول نمرات باید با شماره دانشجویی در جدول اطلاعات دانشجو تطابق داشته باشه.
این نوع وابستگی زمانی رخ میده که مجموعهای از وابستگیها یک حلقه تشکیل بدن. مثلاً اگه ستون A به ستون B وابسته باشه، ستون B به ستون C و ستون C دوباره به ستون A وابسته باش، این یک حلقه است.
این وابستگی زمانی رخ میده که یک ستون غیرکلیدی به بخشی از کلید ترکیبی وابسته باشه. مثلاً اگه یک کلید ترکیبی شامل دو ستون کد درس و شماره کلاس باشه و ستون نام استاد فقط به کد درس وابسته باشه، این وابستگی انتزاعیه.
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍1🔥1👏1
https://t.me/data_ml/655
#Weekend
#Database
@Data_ML | دیتاساینس و ماشین لرنینگ
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1🔥1👏1