پوشش تفصیلی دامنه آزمون
مدلسازی دادههای رابطهای و مبانی SQL (۳۰٪)
انواع دادهها، محدودیتها (Constraints) و ایجاد جدول
مفاهیم نرمالسازی و مدلسازی Entity-Relationship
نحو پایه SELECT، نامهای مستعار ستونها و لیترالها
بازیابی دادهها و پرسوجوها (۳۰٪)
اتصالها (Inner, Outer, Self) و عملگرهای مجموعهای (Set Operators)
فیلتر کردن با WHERE، HAVING و پرسوجوهای سلسلهمراتبی
توابع تجمعی، GROUP BY و توابع تحلیلی
تغییر دادهها و کنترل تراکنش (۲۰٪)
دستورات INSERT، UPDATE، DELETE و MERGE
مدیریت تراکنش (COMMIT، ROLLBACK، SAVEPOINT)
استفاده از Sequenceها و Triggerها برای یکپارچگی دادهها
اشیاء دیتابیس، امنیت و بهینهسازی عملکرد (۲۰٪)
Viewها، Materialized Viewها و Synonymها
امتیازات، نقشها و امنیت در سطح ردیف (Row-level Security)
Explain Plan، ایندکسها و راهنمای بهینهساز (Optimizer Hints)
آمادگی برای آزمون Oracle Database SQL Certified Associate (1Z0-071) نیازمند چیزی فراتر از حفظ کردن نحو استاندارد است. آزمون واقعی، توانایی شما را در شناسایی تلههای منطقی ظریف، درک محدودیتهای ساختاری و پیشبینی دقیق نحوه پردازش دادههای پیچیده توسط موتور دیتابیس اوراکل ارزیابی میکند.
من این بانک سوالات تمرینی را طراحی کردهام تا دقیقاً سطح دشواری، ساختار و توزیع موضوعات موجود در آزمون واقعی را شبیهسازی کند. به جای سوالات عمومی، با سناریوهایی روبرو خواهید شد که عمق دانش شما را در مورد تبدیلهای ضمنی نوع داده، رفتارهای مرزی تراکنش و مکانیسمهای دقیق اجرای پرسوجوهای رابطهای میسنجد. هر سوال دارای یک تحلیل جامع است تا متوجه شوید چرا برخی گزینهها درست یا غلط هستند و بدین ترتیب اعتماد به نفس ساختاری خود را قبل از روز آزمون افزایش دهید.
نمونه سوالات تمرینی
سوال ۱: بازیابی دادهها و توابع گروهی
عبارت SQL زیر را ارزیابی کنید: SELECT department_id, MAX(salary) FROM employees WHERE MAX(salary) > 10000 GROUP BY department_id; نتیجه اجرای این پرسوجو چه خواهد بود؟
گزینهها:
الف) پرسوجو با موفقیت اجرا میشود و حداکثر حقوق را برای هر دپارتمانی که این مقدار بیش از ۱۰,۰۰۰ باشد نمایش میدهد.
ب) دستور یک خطای ORA برمیگرداند زیرا توابع گروهی در عبارت WHERE مجاز نیستند.
ج) پرسوجو شکست میخورد زیرا ستون department_id باید در معیارهای فیلترینگ عبارت WHERE نیز ظاهر شود.
د) اگر عبارت GROUP BY جابجا شود و فیزیکی قبل از عبارت WHERE قرار گیرد، دستور با موفقیت اجرا میشود.
ه) خطای کامپایل میدهد زیرا توابع تجمعی هنگام فیلتر شدن به یک نام مستعار صریح برای ستون نیاز دارند.
و) دستور بدون خطا اجرا میشود اما صفر ردیف برمیگرداند زیرا ارزیابیهای گروهی بعد از فیلتر ردیفها اتفاق میافتد.
پاسخ صحیح: ب
توضیحات:
گزینه الف نادرست است: پرسوجو هرگز اجرا نمیشود زیرا دارای ساختاری نامعتبر است که ترتیب پردازش پرسوجوی اوراکل را نقض میکند.
گزینه ب درست است: در Oracle SQL، عبارت WHERE ردیفهای فردی را قبل از هرگونه گروهبندی یا تجمیع فیلتر میکند. به دلیل این توالی، توابعی مانند MAX، MIN یا AVG نمیتوانند در عبارت WHERE ارزیابی شوند؛ فیلترینگ گروهی باید در عبارت HAVING انجام شود.
گزینه ج نادرست است: هیچ قانونی وجود ندارد که ستونهای گروهبندی شده حتماً در WHERE ظاهر شوند. خطا کاملاً مربوط به جایگذاری تابع تجمعی است.
گزینه د نادرست است: تغییر ترتیب فیزیکی عبارتها با قرار دادن GROUP BY قبل از WHERE، ساختار نحوی اجباری دستور SELECT اوراکل را نقض کرده و باعث خطای نحوی دیگری میشود.
گزینه ه نادرست است: اگرچه نامهای مستعار برای خوانایی عالی هستند، اما افزودن نام مستعار به تابع MAX(salary) محدودیت ساختاری علیه قرار دادن توابع تجمعی در فیلتر WHERE را دور نمیزند.
گزینه و نادرست است: پرسوجو به صورت بیصدا شکست نمیخورد یا نتیجه خالی برنمیگرداند؛ تحلیلگر اوراکل این مورد را به عنوان نقض صریح نحو (معمولاً ORA-00934) شناسایی کرده و اجرا را متوقف میکند.
سوال ۲: مکانیسمهای کنترل تراکنش
این توالی از عملیاتها را که در یک نشست (Session) واحد دیتابیس اجرا شدهاند در نظر بگیرید:
SQL
INSERT INTO regions VALUES (1, 'North');
SAVEPOINT step_a;
UPDATE regions SET region_name = 'East' WHERE region_id = 1;
SAVEPOINT step_b;
DELETE FROM regions WHERE region_id = 1;
ROLLBACK TO step_a;
COMMIT;
وضعیت جدول regions پس از اجرای COMMIT نهایی چیست؟
گزینهها:
الف) جدول شامل ردیفی با region_id 1 و مقدار region_name برابر با 'North' است.
ب) جدول شامل ردیفی با region_id 1 و مقدار region_name برابر با 'East' است.
ج) جدول کاملاً خالی است زیرا عملیات DELETE بعدی دادههای ردیف را به طور دائمی پاک کرده است.
د) تراکنش ثبت نشده باقی میماند زیرا دستور ROLLBACK TO SAVEPOINT مانع از COMMIT دائمی میشود.
ه) دستور با خطای زمان اجرا شکست میخورد زیرا عملیات rollback به طور خودکار مارکر step_b را باطل کرده است.
و) ردیف با region_id 1 وجود دارد، اما ستون region_name به دلیل بهروزرسانیهای متضاد، مقدار NULL دارد.
پاسخ صحیح: الف
توضیحات:
گزینه الف درست است: بازگشت (Rollback) به step_a به طور صریح تمام تغییرات دیتابیس را که بعد از اعلان آن savepoint خاص انجام شده است، لغو میکند. عملیات UPDATE و DELETE بعد از step_a رخ دادهاند، بنابراین کاملاً خنثی میشوند. INSERT اولیه قبل از step_a رخ داده بود، به این معنی که دستنخورده باقی میماند و با اجرای COMMIT به طور دائمی در دیتابیس نوشته میشود.
گزینه ب نادرست است: دستور UPDATE مقدار را به 'East' تغییر داد، اما این اقدام بعد از علامتگذاری step_a اتفاق افتاد. عملیات rollback این تغییر را پاک کرده و مقدار را به 'North' برگرداند.
گزینه ج نادرست است: اگرچه دستور DELETE ردیف را حذف کرد، اما این حذف زمانی که وضعیت نشست به موقعیت قبلی در step_a بازگشت، کاملاً نادیده گرفته شد.
گزینه د نادرست است: بازگشت به یک savepoint جزئی، تراکنش را پایان نمیدهد یا مسدود نمیکند. دستور صریح COMMIT که در ادامه میآید، با موفقیت تمام تغییرات ساختاری معلق باقیمانده را نهایی میکند.
گزینه ه نادرست است: درست است که بازگشت به step_a باعث میشود step_b برای rollbackهای آینده نامعتبر شود، اما این رفتار باعث بروز خطای اجرا در اسکریپت ارائه شده نمیشود؛ بلکه دستورات را به ترتیب کامل میکند.
گزینه و نادرست است: اوراکل هنگام حل تضادهای savepoint، جایگزینهای NULL وارد نمیکند؛ بلکه دقیقاً وضعیت دادههای قبلی ثبت شده در لحظه ایجاد savepoint را بازیابی میکند.
سوال ۳: اشیاء دیتابیس و رفتار محدودیتها
یک اسکیمای دیتابیس شامل یک جدول والد به نام customers با ستون کلید اصلی customer_id است. یک جدول فرزند به نام orders از طریق یک محدودیت کلید خارجی (Foreign Key) به این ستون ارجاع میدهد. شما سعی میکنید دستور زیر را اجرا کنید: ALTER TABLE customers DROP COLUMN customer_id; با فرض اینکه در هر دو جدول ردیف وجود دارد، چه اتفاقی میافتد؟
گزینهها:
الف) ستون با موفقیت حذف میشود و محدودیت کلید خارجی وابسته در جدول orders به طور خودکار حذف میگردد.
ب) دستور شکست میخورد زیرا ستون به طور فعال توسط یک محدودیت کلید خارجی وابسته در جدول دیگر مورد ارجاع قرار گرفته است.
ج) ستون با موفقیت حذف میشود و تمام رکوردهای وابسته مطابق در جدول orders به طور خودکار حذف میشوند.
د) اوراکل دستور حذف را نادیده میگیرد و به طور خودکار وضعیت ستون customer_id را به حالت UNUSED تغییر میدهد.
ه) دستور تنها در صورتی با موفقیت اجرا میشود که جدول orders وابسته در آن لحظه صفر ردیف فعال داشته باشد.
و) این عملیات به جای فیلتر کردن یک ستون واحد، کل جدول customers را به طور کامل از tablespace حذف میکند.
پاسخ صحیح: ب
توضیحات:
گزینه الف نادرست است: اوراکل یک ستون کلید اصلی را در صورت وجود وابستگیهای ساختاری فعال در جای دیگر حذف نمیکند، مگر اینکه صریحاً عبارت CASCADE CONSTRAINTS را در دستور خود بگنجانید.
گزینه ب درست است: برای محافظت از یکپارچگی دادههای رابطهای، اوراکل حذف هر ستونی که به عنوان کلید اصلی یا شناسه منحصر به فرد عمل میکند و در حال حاضر توسط یک کلید خارجی هدف قرار گرفته است را مسدود میکند. دیتابیس این دستور را با یک پیام خطا رد میکند.
گزینه ج نادرست است: حذف یک ستون باعث حذف آبشاری (Cascade Delete) ردیفها در جدول دیگر نمیشود، مگر اینکه تنظیمات خاص جدول یا قانون حذف ساختاری تعریف شده باشد.
گزینه د نادرست است: اوراکل هرگز یک دستور DROP شکست خورده را به طور خودکار به وضعیت ستون UNUSED تبدیل نمیکند؛ قرار دادن یک ستون در حالت UNUSED نیازمند دستور مجزا و عمدی ALTER TABLE...SET UNUSED است.
گزینه ه نادرست است: وجود یا عدم وجود ردیفهای داده در جدول فرزند، این رفتار را تغییر نمیدهد. این محدودیت ساختاری است، به این معنی که دیتابیس دستور را بر اساس تعریف خودِ محدودیت (Constraint) مسدود میکند، صرف نظر از حجم دادهها.
گزینه و نادرست است: دستور برای حذف یک ستون هدف مشخص شده است، بنابراین اوراکل هرگز در پاسخ به تغییر یک ستون، کل ساختار جدول را حذف نمیکند.
به آکادمی آزمونهای تمرینی Mock Exam خوش آمدید تا شما را برای آزمون Oracle Database SQL Certified Associate (1Z0-071) آماده کنیم.
شما میتوانید آزمونها را هر چند بار که بخواهید تکرار کنید
این یک بانک سوالات جامع و اورجینال است
در صورت داشتن سوال، از پشتیبانی مدرسان بهرهمند میشوید
هر سوال دارای توضیح تفصیلی است
سازگار با موبایل از طریق اپلیکیشن Udemy
امیدوارم تا اینجا متقاعد شده باشید! سوالات بسیار بیشتری در داخل دوره وجود دارد.
Mock Exam Practice Test Academy
مدرس در Udemy
نمایش نظرات