طراحی پایگاه دادهها
مدرس: مریم رمضانی | گواهی: رسمی دوزبانه |
ترم: زمستان | پیشنیاز: دادهساختارها و الگوریتمها |
زمان ارائه: چهارشنبه ۱۶ تا ۱۹ | محل برگزاری: کلاس مجازی |
هدف کلی
در این درس دانشجویان با مفاهیم مدلسازی معنایی دادهها و طراحی پایگاه دادهها آشنا میشوند و در انتهای ترم انتظار میرود که دانشجویان با مفاهیمی که در ریزموارد به آنها اشاره شده است، آشنایی کامل پیدا کرده باشند.
سرفصلها
- مقدمه و معرفی سیستمهای پایگاهی (۱ جلسه)
- معرفی درس
- تعریف و اهمیت پایگاه دادهها
- عناصر کلیدی محیط پایگاه داده
- 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.