برنامه نویسی

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

روز دوم: طراحی پایگاه داده و ایجاد طرحواره

تاریخ: 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 تاریخ و ساعت سفارش.

تعریف روابط

  1. یک به یک:

    • یک کاربر ممکن است یک نمایه داشته باشد و یک نمایه متعلق به یک کاربر باشد.
  2. یک به چند:

    • یک کاربر می تواند چندین سفارش بدهد، اما یک سفارش متعلق به یک کاربر است.
  3. چند به چند:

    • محصولات می توانند در چندین سفارش ظاهر شوند و سفارش ها می توانند چندین محصول را شامل شوند. این به یک جدول اتصال نیاز دارد (به عنوان مثال، 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;
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید


مثال دنیای واقعی

یک برنامه تجارت الکترونیک مانند آمازون به شدت به پایگاه داده ها متکی است. با درک طراحی طرحواره، می توانید نحوه ذخیره و مدیریت کارآمد کاربران، محصولات و سفارشات توسط چنین سیستم هایی را تکرار کنید.


سوالات متداول مصاحبه

  1. کلید اصلی و خارجی چیست؟ نقش آنها را توضیح دهید.
  2. عادی سازی چیست؟ چرا مهم است؟
  3. چگونه یک طرح واره برای یک برنامه رسانه اجتماعی طراحی می کنید؟

نتیجه روز

تا پایان روز دوم، باید:

  • نحوه طراحی یک طرحواره پایگاه داده را بدانید.
  • جداول با روابط مناسب ایجاد کنید.
  • نرمال سازی را برای بهینه سازی طراحی خود اعمال کنید.

فردا کاوش می کنیم پرس و جوهای SQL برای دستکاری و بازیابی داده ها برای تعامل موثر با طرحواره


در صورت نیاز به توضیح بیشتر به من اطلاع دهید! 😊

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا