Database Konkour Flashcards

1
Q

DBMS
چیست؟

A

سیستمی برای مدیریت پایگاه داده است.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

منظور از خاصیت یکپارچگی در خواص ACID
چیست؟

A

یا باید همه دستوالعمل های یک تراکنش اجرا شوند یا هیچکدام نباید اجرا شوند.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

عنصرهای اصلی پایگاه داده کدام است؟

A

عناصر اصلی پایگاه داده شامل سخت‌افزار، نرم‌افزار، کاربر و داده است. سخت‌افزار برای ذخیره‌سازی، پردازش و ارتباطات در فرایندهای پایگاه داده مورد استفاده قرار می‌گیرد. انواع نرم‌افزار در بحث پایگاه داده نیز شامل نرم افزار کاربردی و نرم افزار سیستمی می‌شود. کاربران پایگاه داده نیز افرادی مختلفی همچون مدیر پایگاه داده، برنامه نویس
DBP و کاربران نهایی هستند. نقش داده‌ها در بانک‌های اطلاعاتی نیز بسیار واضح است یعنی اگر داده‌ای درکار نباشد نیازی به پایگاه داده هم وجود نخواهد داشت.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

معماری توزیع شده در انواع معماری
DBMS
چیست؟

A

معماری است که در آن داده‌های ذخیره شده به لحاظ منطقی متعلق به یک سیستم هستند و به لحاظ فیزیکی داده‌ها روی کامپیوترهایی به هم متصل در یک شبکه یا چند شبکه ذخیره شده‌اند.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

انواع مدل سازی معنایی داده کدام است؟

A

مدل‌سازی معنایی داده، ارائه مدلی از محیط عملیاتی به کمک مفاهیمی مستقل از موضوع‌های مربوط به نمایش منطقی و فیزیکی داده‌ها است. روش‌های
EER ،ER و UML
از جمله روش‌های مدل‌سازی معنایی داده‌ها به حساب می‌آیند.
ER روش موجودیت
- ارتباط،
EER
روش موجودیت - ارتباط توسعه یافته و
UML
زبان مدل‌سازی یکپارچه است که فقط خاص مدل‌سازی معنایی داده نیست و برای طراحی سیستم‌های نرم‌افزاری هم از UML
استفاده می‌شود.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

انواع کلید در مدل رابطه ای کدام است؟

A

انواع کلید در مدل رابطه‌ای عبارتند از:
ابرکلید
کلید کاندید
کلید اصلی
کلید فرعی
کلید خارجی

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

DDL (Data Definition Language)

A

زبان تعریف داده برای
ساختاردهی پایگاه داده است و جدول ها و ویوها و این ها را می سازد

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

DML (Data Manipulation Language)

A

زبان دستکاری داده هاست که برای تغییرات روی داده ها به کار می رود مثل
select, insert, update, delete

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

پارتیشن بندی در دیتابیس برای چه چیزی انجام می شود و چرا؟

A

1- برای بهبود عملکرد جست و جو و فیلتر کردن داده ها
2- برای مدیریت بهتر داده های کلان
برای ایجاد یک پارتیشن بندی، از ابتدای یک جدول که داریم ایجاد می کنیم، باید آن جدول را بر اساس یک ستون پارتیشن بندی کنیم.
این ستون باید
primary key
باشد تا دیتاها یکتا باشند و ما رکوردهای تکراری در جدول های نامربوط به آن پارتیشن نداشته باشیم.
در مثال زیر، آمدیم و مقصد ماموریت افراد را پارتیشن بندی کردیم.
CREATE TABLE missions (
mission_id SERIAL,
person_id INT REFERENCES persons(id),
destination VARCHAR(100),
mission_date DATE,
PRIMARY KEY (mission_id, destination) – اضافه کردن ستون destination به کلید اصلی
) PARTITION BY LIST (destination);

CREATE TABLE missions_destination_New_York partition of missions
FOR VALUES IN (‘New York’);

CREATE TABLE missions_destination_Los_Angeles PARTITION OF missions
FOR VALUES IN (‘Los Angeles’);

CREATE TABLE missions_destination_Chicago PARTITION OF missions
FOR VALUES IN (‘Chicago’);

CREATE TABLE missions_destination_Houston PARTITION OF missions
FOR VALUES IN (‘Houston’);

CREATE TABLE missions_destination_London PARTITION OF missions
FOR VALUES IN (‘London’);

CREATE TABLE missions_destination_Paris PARTITION OF missions
FOR VALUES IN (‘Paris’);

DO $$
DECLARE
cities TEXT[] := ARRAY[‘New York’, ‘Los Angeles’, ‘Chicago’, ‘Houston’, ‘London’, ‘Paris’];
BEGIN
FOR i IN 1..1000000 LOOP
INSERT INTO missions (person_id, destination, mission_date)
VALUES (
(i % 1000) + 1, – هر فرد چندین ماموریت دارد
cities[(i % array_length(cities, 1)) + 1], – انتخاب شهر از لیست
CURRENT_DATE - (i % 365)
);
END LOOP;
END $$;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Distributed Database Systems

A

یک دیتابیس از چندین سیستم تشکیل می شود که همه ی این سیستم ها با هم در یک شبکه هستند و با همدیگر همکاری می کنند.
در
distributed database systems،
نحوه توزیع داده‌ها می‌تواند به دو روش اصلی انجام شود:

Replication (تکثیر):
در این روش، نسخه‌های کپی
(Replication)
از یک دیتابیس یا بخشی از آن در چندین سیستم ذخیره می‌شوند.

مزایا:
اگر یکی از سیستم ها خراب شود، سایر سیستم ها می توانند کار کنند.
چالش‌ها:
هماهنگ کردن داده‌ها
(Data Consistency)
در میان سیستم‌ها، به خصوص در صورت تغییر یا به‌روزرسانی داده‌ها.

Partitioning (پارتیشن‌بندی):
در این روش، داده‌ها به بخش‌های مختلف تقسیم می‌شوند و هر بخش در یک سیستم خاص ذخیره می‌شود.

مزایا: استفاده بهینه از منابع، کاهش حجم داده در هر سیستم، و افزایش عملکرد (Performance).
چالش‌ها: مدیریت کوئری‌های پیچیده که ممکن است نیاز به ترکیب داده‌ها از سیستم‌های مختلف داشته باشند.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Transparency
in
Distributed Database Systems

A

Transparency (شفافیت)
به معنای پنهان کردن پیچیدگی سیستم های توزیع شده از کاربران است.
Types of Transparency:
1- Access Transparency :
شفافیت دسترسی:
یعنی کاربر نیازی ندارد که بداند داده ها کجا ذخیره شده اند و چگونه باید به آن دسترسی پیدا کند. کاربر یک کوئری می نویسد و سیستم به طور خودکار تشخیص می دهد که باید به کدام سرور مراجعه کند.
2- Location Transparency:
شفافیت مکانی:
کاربر نیازی ندارد که بداند داده ها در کدام سرور یا نود ذخیره شده اند.
3- Replication Transparency:
شفافیت تکثیر:
اگر داده‌ها در چندین سیستم کپی شده باشند
(Replication)،
سیستم به‌طور خودکار کپی مناسب را انتخاب می‌کند، بدون اینکه کاربر از تعداد کپی‌ها یا مکان آنها اطلاعی داشته باشد.
مثلا اگر دو جدول یکسان
Orders
در دو سرور
A و B
داشته باشیم، خود سیستم انتخاب می کند که از کدام سرور پاسخ بدهد.
4- Fragmentation Transparency:
شفافیت تقسیم بندی:
اگر داده ها را به چندین بخش تقسیم کنیم و هر بخش در سرور خاصی ذخیره شود، سیستم این جزییات را از کاربر پنهان می کند.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

ACID in Transaction

A

1- Atomicity:
اتمی بودن:
یا همه عملیات یک ترنزاکشن باید انجام شود یا کلا انجام نشود.
2- Consistency:
سازگاری:
بعد از انجام یک ترنزاکشن، یکپارچگی دیتابیس حفظ شود.
مثلا موجودی بانکی نمی تواند منفی باشد، بنابراین اگر یک ترنزاکشن که انجام شد، موجودی بانکی نباید منفی شود.
3- Isolation:
ایزوله سازی:
دو تراکنش که همزمان انجام می شوند، نباید با همدیگر کانفلیکت داشته باشد.
برای اجرای این ویژگی، می توان یک قفل روی دیتابیس گذاشت که فقط یک تراکنش انجام شود و تمام که شد، سراغ تراکنش بعدی می رود.
4- Durability:
ماندگاری:
تغییرات ترنزاکشن باید ماندگار باشد.
یعنی با ریستارت سرور، آن ترنزاکشن هم باید همچنان وجود داشته باشد.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

انواع حافظه در دیتابیس

A

1- Volatile:
حافظه موقت
2- non-volatile:
حافظه ای که با ریستارت کردن سیستم، پاک نمی شود اما ممکن است خراب هم شود.
3- Stable Storage:
یا
Permenant Storage:
حافظه دائمی:
برای داشتن حافظه ی دائمی از
Replication
استفاده می کنیم.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Recoverable Schedule
زمانبندی قابل بازیابی

A

اگر داده ای را از یک ترنزاکشن می خوانیم ، حتما باید بعد از کامیت آن ترنزاکشن باشد.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Cascading Rollback

A

اگر یک ترنزاکشن
abort
یا
rollback
شود،
و همچنین این
abort
شدن باعث
abort شدن
ترنزاکشن های دیگر هم شود،
Cascading Rollback
اتفاق می افتد.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Isolation Levels
سطح های ایزولیشن

A

1- Serializable:
یعنی همه ی ترنزاکشن ها باید به گونه ای انجام شود که در خروجی نهایی، به صورتی باشد که انگار ترنزاکشن ها پشت سر هم انجام شده اند، حتی اگر در واقعیت، به طور همزمان اجرا شده باشند.
2- Repeatable Read:
خواندن های مکرر بدون تغییر
3- Commited Read:
یک ترنزاکشن داده هایی را می تواند بخواند که تا این لحظه کامیت شده باشند.
4- UnCommited Read:
یک ترنزاکشن می تواند داده های
Uncommit
ترنزاکشن های دیگر را هم بخواند.
این ساده ترین سطح ایزولیشن است.

17
Q

یک سیستم برای طراحی باید چه اصولی داشته باشد؟ سه اصل مهم

A

1-Reliability: قابلیت اطمینان
سیستم باید درشرایط نامطلوب، سخت افزاری، نرم افزاری یا خطای انسانی هم عملکرد صحیح داشته باشد.
2- Scalability: مقیاس پذیری
با افزایش حجم داده، تعداد کاربران، و پیچیدگی سیستم، همچنان باید سیستم قابلیت مدیریت منطقی برای این شرایط را داشته باشد.
3- Maintainability: قابلیت نگه داری
سیستم باید طوری طراحی شود که توسعه دهنده های مختلف در زمان های مختلف روی سیستم کار کنند و آن را نگه داری کنند و همچنین فیچرهای جدید به آن اضافه کنند.

18
Q

انواع مقیاس پذیری در طراحی سیستم ها

A

1- vertical scaling(scale up) : مقیاس پذیری عمودی
افزودن منابع قوی تر به سرور (ارتقای رم، سی پی ی و دیسک)
2-horizontal scaling (scale out): مقیاس پذیری افقی
افزایش تعداد سرورها
3- optimization: بهینه سازی نرم افزار
بهینه سازی پایگاه داده، کش کردن داده ها، بهبود الگوریتم ها و کاهش درخواست های غیرضروری
4- Distributed systems:
استفاده از دیتابیس های توزیع شده