طراحی پایگاه داده‌ها

مدرس: مریم رمضانی گواهی: رسمی دوزبانه
ترم: زمستان پیش‌نیاز: داده‌ساختارها و الگوریتم‌ها
زمان ارائه: چهارشنبه ۱۶ تا ۱۹ محل برگزاری: کلاس مجازی

هدف کلی

در این درس دانشجویان با مفاهیم مدل‌سازی معنایی داده‌ها و طراحی پایگاه داده‌ها آشنا می‌شوند و در انتهای ترم انتظار می‌رود که دانشجویان با مفاهیمی که در ریزموارد به آن‌ها اشاره شده است، آشنایی کامل پیدا کرده باشند.

سرفصل‌ها

  • مقدمه و معرفی سیستم‌های پایگاهی (۱ جلسه)
    • معرفی درس
    • تعریف و اهمیت پایگاه داده‌ها
    • عناصر کلیدی محیط پایگاه داده
    • ACID Properties
    • انواع معماری سیستم پایگاهی (متمرکز، مشتری-خدمتگزار، توزیع‌شده)
    • اجزای سیستم مدیریت پایگاه داده رابطه‌ای (RDBMS)
  • مدل رابطه‌ای (۱ جلسه)
    • رابطه و مفاهیم مربوطه
    • انواع کلید
    • عملیات رابطه‌ای
    • Constraints
  • پیاده‌سازی SQL (۴ جلسه)
    • زبان پایگاه داده‌ی جدولی (SQL)
    • دستورات DDL
    • دستورات DML
    • دستورات DCL
    • دستورات TCL
    • Subqueries
    • انواع Join
    • View & Materialized View
  • طراحی پایگاه داده (۴ جلسه)
    • مدل‌سازی معنایی
    • موجودیت، صفت، ارتباط
    • نمودار ER و EER
    • Aggregation و Generalization
    • تبدیل مدل‌سازی معنایی به طراحی منطقی
    • نرمال‌سازی (Normalization) - سطوح 3NF, 2NF, 1NF و BCNF
    • انواع دام‌ها و نحوه‌ی حل آن‌ها
  • Modern SQL (۱ جلسه)
    • Output Control + Redirection
    • Window Functions
    • Nested Queries
    • Lateral Joins
    • Common Table Expressions (CTE)
    • Recursive Queries
  • جامعیت در مدل رابطه‌ای (۱ جلسه)
    • Integrity
    • Assertion
    • Procedure, Function
    • Trigger
  • بهینه‌سازی عملکرد پایگاه داده (۲ جلسه)
    • Query Execution Plan و Query Profiling
    • Indexes Clustered & Non-Clustered
    • Database Tuning
    • Data Purging
    • Data Partitioning
  • انبار داده (Data Warehouse) (۱ جلسه)
    • مفهوم و اهمیت انبار داده‌ها
    • مدل‌های مختلف معماری انبار داده
    • فرآیندهای استخراج، تبدیل و بارگذاری داده‌ها (ETL)
    • طراحی و ساخت Data Mart (انبار داده‌های خاص)
    • پیاده‌سازی Normalized و Denormalized داده‌ها
    • داده‌کاوی در انبار داده‌ها
  • پایگاه‌داده غیررابطه‌ای (NoSQL DBMS) (۱ جلسه)
    • دلایل استفاده از پایگاه داده‌های غیررابطه‌ای (NoSQL)
    • تئوری CAP
    • پایگاه داده‌های کلید-مقدار، ستون-محور، گراف-محور و سند-محور و ترکیبی (Multi-Model)
    • مقیاس‌پذیری افقی و عمودی
    • طراحی پایگاه داده برای داده‌های بزرگ و معماری توزیع‌شده
  • معرفی و کار با پایگاه‌داده‌های Mongo و Neo4J به همراه کاربرد آن‌ها در مسائل واقعی (۱ جلسه)
  • معرفی Vector Databases به همراه کاربرد‌های آن‌‌ها در دنیای هوش مصنوعی (۱ جلسه)

توجه: از مرحله معرفی ساختارهای داده‌ای جدولی و پس از آن، هرجا که لازم باشد، از SQL برای ارائه مثال استفاده می‌شود. دانشجو بایستی از هفته سوم و همروند با پیشرفت درس، SQL را مطالعه کند.

ارزیابی

  • تمرین‌های عملی هفتگی: ۵۰٪ نمره
  • آزمون‌ پایانی: ۵۰٪ نمره

منابع

  • سید محمد تقی روحانی رانکوهی، "مفاهیم بنیادی پایگاه داده‌‌‌ها"، ویراست چهارم، ۱۳۹۰.
  • R. Elmasri, S. Navathe. Fundamentals of Database Systems. 8th Edition, Pearson, 2019.
  • A. Silberschatz, H. F. Korth, S. Sudarshan. Database System Concepts. 6th Edition, McGraw-Hill, 2010.
  • C. J. Date. An Introduction to Database Systems 8th Edition, Pearson, 2003.
  • T. Connolly, C. Begg. Database Systems. 6th Edition, Pearson, 2014.
  • R. Ramakrishnan, J. Gehrke. Database Management Systems. 4th Edition, McGraw-Hill, 2014.