طراحی پایگاه داده و ایجاد طرحواره

روز دوم: طراحی پایگاه داده و ایجاد طرحواره
تاریخ: 20 ژانویه 2025
آشنایی با طراحی پایگاه داده
طراحی پایگاه داده پایه و اساس هر برنامه کاربردی است که داده ها را مدیریت می کند. یک طرح واره خوب طراحی شده ذخیره سازی، بازیابی و مدیریت کارآمد داده را تضمین می کند. این فرآیند شامل سازماندهی داده ها در جداول، تعریف روابط و اطمینان از سازگاری است.
مفاهیم کلیدی
1. جداول، سطرها و ستون ها
-
جدول: نشان دهنده یک موجودیت است، مانند
users
یاproducts
. - ردیف ها: نشان دهنده رکوردهای فردی (به عنوان مثال، یک کاربر واحد).
-
ستون ها: نشان دهنده ویژگی های موجودیت (به عنوان مثال،
name
،email
).
2. کلیدهای اصلی و کلیدهای خارجی
-
کلید اصلی: یک شناسه منحصر به فرد برای هر ردیف در جدول (مثلاً
id
در یکusers
جدول). - کلید خارجی: فیلدی در یک جدول که به کلید اصلی در جدول دیگر ارجاع می دهد و یک رابطه ایجاد می کند.
عادی سازی
عادی سازی فرآیند سازماندهی داده ها برای به حداقل رساندن افزونگی و بهبود یکپارچگی است. سطوح کلیدی عادی سازی عبارتند از:
1. اولین فرم عادی (1NF)
- اطمینان حاصل کنید که هر ستون دارای مقادیر اتمی (تقسیم ناپذیر) باشد.
- هر ردیف باید منحصر به فرد باشد.
2. فرم عادی دوم (2NF)
- تمام الزامات 1NF را برآورده کنید.
- وابستگی های جزئی را با اطمینان از اینکه همه ویژگی های غیر کلیدی کاملاً به کلید اصلی وابسته هستند حذف کنید.
3. فرم سوم عادی (3NF)
- تمام الزامات 2NF را برآورده کنید.
- وابستگی های گذرا را حذف کنید (ویژگی های غیر کلیدی نباید به سایر ویژگی های غیر کلیدی وابسته باشند).
فعالیت تمرینی: طراحی طرحواره
بیایید یک طرحواره برای یک طراحی کنیم اپلیکیشن تجارت الکترونیک. این نرم افزار شامل موارد زیر خواهد بود:
- کاربران (مشتریان).
- محصولات.
- سفارشات
طراحی طرحواره
1. جدول کاربران
نام فیلد | نوع داده | توضیحات |
---|---|---|
id |
عدد صحیح | کلید اصلی، منحصر به فرد برای هر کاربر. |
name |
TEXT | نام مشتری. |
email |
TEXT | آدرس ایمیل مشتری. |
password |
TEXT | رمز عبور مشتری |
2. جدول محصولات
نام فیلد | نوع داده | توضیحات |
---|---|---|
id |
عدد صحیح | کلید اصلی، منحصر به فرد برای هر محصول. |
name |
TEXT | نام محصول. |
price |
واقعی | قیمت محصول. |
stock |
عدد صحیح | مقدار محصول موجود |
3. جدول سفارشات
نام فیلد | نوع داده | توضیحات |
---|---|---|
id |
عدد صحیح | کلید اصلی، منحصر به فرد برای هر سفارش. |
user_id |
عدد صحیح | ارجاع کلید خارجی users.id . |
product_id |
عدد صحیح | ارجاع کلید خارجی products.id . |
quantity |
عدد صحیح | تعداد محصولات سفارش داده شده |
order_date |
TIMESTAMP | تاریخ و ساعت سفارش. |
تعریف روابط
-
یک به یک:
- یک کاربر ممکن است یک نمایه داشته باشد و یک نمایه متعلق به یک کاربر باشد.
-
یک به چند:
- یک کاربر می تواند چندین سفارش بدهد، اما یک سفارش متعلق به یک کاربر است.
-
چند به چند:
- محصولات می توانند در چندین سفارش ظاهر شوند و سفارش ها می توانند چندین محصول را شامل شوند. این به یک جدول اتصال نیاز دارد (به عنوان مثال،
order_items
) برای مدیریت رابطه چند به چند.
- محصولات می توانند در چندین سفارش ظاهر شوند و سفارش ها می توانند چندین محصول را شامل شوند. این به یک جدول اتصال نیاز دارد (به عنوان مثال،
تمرین عملی
با استفاده از SQLite، می توانید طرح بالا را پیاده سازی کنید:
مرحله 1: ایجاد جداول
CREATE TABLE users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT NOT NULL UNIQUE,
password TEXT NOT NULL
);
CREATE TABLE products (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
price REAL NOT NULL,
stock INTEGER NOT NULL
);
CREATE TABLE orders (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER NOT NULL,
product_id INTEGER NOT NULL,
quantity INTEGER NOT NULL,
order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users (id),
FOREIGN KEY (product_id) REFERENCES products (id)
);
مرحله 2: داده های نمونه را وارد کنید
-- Insert sample users
INSERT INTO users (name, email, password) VALUES
('Arjun', 'arjun@example.com', 'password123'),
('Omkar', 'omkar@example.com', 'securepass456');
-- Insert sample products
INSERT INTO products (name, price, stock) VALUES
('Laptop', 1200.50, 10),
('Mouse', 25.75, 100);
-- Insert sample orders
INSERT INTO orders (user_id, product_id, quantity) VALUES
(1, 1, 1),
(2, 2, 2);
مرحله 3: داده ها را پرس و جو کنید
بازیابی سفارشات با مشخصات کاربر و محصول:
SELECT
orders.id AS order_id,
users.name AS customer,
products.name AS product,
orders.quantity,
orders.order_date
FROM orders
JOIN users ON orders.user_id = users.id
JOIN products ON orders.product_id = products.id;
مثال دنیای واقعی
یک برنامه تجارت الکترونیک مانند آمازون به شدت به پایگاه داده ها متکی است. با درک طراحی طرحواره، می توانید نحوه ذخیره و مدیریت کارآمد کاربران، محصولات و سفارشات توسط چنین سیستم هایی را تکرار کنید.
سوالات متداول مصاحبه
- کلید اصلی و خارجی چیست؟ نقش آنها را توضیح دهید.
- عادی سازی چیست؟ چرا مهم است؟
- چگونه یک طرح واره برای یک برنامه رسانه اجتماعی طراحی می کنید؟
نتیجه روز
تا پایان روز دوم، باید:
- نحوه طراحی یک طرحواره پایگاه داده را بدانید.
- جداول با روابط مناسب ایجاد کنید.
- نرمال سازی را برای بهینه سازی طراحی خود اعمال کنید.
فردا کاوش می کنیم پرس و جوهای SQL برای دستکاری و بازیابی داده ها برای تعامل موثر با طرحواره
در صورت نیاز به توضیح بیشتر به من اطلاع دهید! 😊