به دلیل حساس بودن اطلاعات سازمانی، سطح دسترسی کارکنان یک سازمان به اطلاعات پایگاه داده باید مشخص شود و این وظیفه کارشناس پایگاه دادهها است که پس از مشورت با مدیریت، سطح دسترسی کارکنان را بر مبنای کاری که انجام میدهند مشخص کند. به همین دلیل یک کارشناس پایگاه داده باید دانش و مهارت کافی در ارتباط با نرمافزارهای کاربردی مرتبط با شغل خود داشته باشد. تسلط بر زبان محاوره ساختیافته (SQL) و آشنایی با مکانیزمهای عملیاتی بانکهای اطلاعاتی مورد استفاده سازمان (SQL Server، اوراکل و نمونههای مشابه) از پیششرطهای مهم احراز مشاغل مرتبط با بانکهای اطلاعاتی است. کارشناسان بانکهای اطلاعاتی باید مهارت حل مسئله، توانایی کار با فناوریهای روز که عمدتا ابرمحور هستند و توانایی انجام کار تیمی را داشته باشند. در بیشتر موارد این افراد برای انجام دقیق وظایف خود باید به یک زبان برنامهنویسی مسلط باشند و درباره الفبای امنیت اطلاعات دانش کافی را کسب کرده باشند. علاقهمندان پس از آشنایی با مفاهیم مهم و کسب تجربه عملی در زمینه مدیریت و نگهداری از پایگاههای داده در مرحله بعد باید برای حضور در مصاحبههای استخدامی آمادگی لازم را داشته باشند. سازمانها بر مبنای نیازهای کاری، خطمشیها و برنامههایی که برای گسترش فعالیتهای تجاری دارند پرسشهای مختلفی را در مصاحبههای استخدامی مطرح میکنند. با اینحال برخی از پرسشها حالت کلی دارند و در بیشتر مصاحبههای استخدامی مطرح میشوند. در این مطلب قصد داریم به مهمترین پرسشهای مطرح شده در این زمینه نگاهی داشته باشیم. بهطور معمول، هیچ روش و فرمول خاصی برای موفقیت در یک مصاحبه استخدامی وجود ندارد و همه چیز به مصاحبهکننده و کارجو بستگی دارد. با اینحال، پرسشهایی که قرار است یک کارشناس بانک اطلاعاتی در یک جلسه مصاحبه به آنها پاسخ دهند تقریبا مشخص هستند. بهطور کلی، پرسشها حول محور مفاهیم اساسی هستند و در بیشتر موارد جذب یک کارشناس بانک اطلاعاتی منوط به موفقیت در دوره کار آزمایشی است.
پرسش و پاسخهای جذب کارشناس مدیریت بانکهای اطلاعاتی
1. سامانه مدیریت بانک اطلاعاتی برای چه مقاصدی استفاده میشود؟
پاسخ: سامانه مدیریت بانکاطلاعاتی (DBMS)، یک سیستم کاربردی است که هدف اصلی آن مدیریت و سازماندهی دادهها است. این سامانه به کاربر اجازه میدهد دادهها را ذخیرهسازی و تعریف کند، آنها را بازیابی و اطلاعات درون بانک اطلاعاتی را بهروز کند.
2. منظور از پایگاه داده چیست؟
پاسخ: به زبان ساده، بانک اطلاعاتی مجموعهای متشکل از دادههایی است که به روشی ساختیافته و با هدف تسهیل دسترسی کاربران به اطلاعات، مدیریت و بارگذاری ساده دادهها طراحی و استفاده میشوند.
3. چرا استفاده از DBMS پیشنهاد میشود؟ برخی از مزایای مهم آنرا توضیح دهید.
پاسخ: از مهمترین مزایای DBMS به موارد زیر میتوان اشاره کرد:
- کنترل افزونگی کنترل شده: DBMS از مکانیسم مشخصی برای کنترل افزونگی دادههای درون بانکهای اطلاعاتی استفاده میکنند تا اصل یکپارچگی اطلاعات حفظ شود و دادهها تنها در یک مکان مشخص ذخیره شوند و سازمانها با مشکل دادههای تکراری روبرو نشوند.
- بهاشتراکگذاری دادهها: DBMS فرآیند بهاشتراکگذاری همزمان دادهها میان کاربران مختلف را تسهیل میکنند، زیرا برنامههای کاربردی و کاربران به بانک اطلاعاتی یکسانی دسترسی دارند.
- تسهیل فرآیند تهیه نسخه پشتیبان و بازیابی: DBMS با ارائه ویژگی مهم و کاربردی پشتیبانگیری و بازیابی که بهطور خودکار فرآیند پشتیبانگیری از دادهها را مدیریت میکنند به سازمانها اجازه میدهند در هر زمان به بازیابی دادهها بپردازند و هر زمان بانکهای اطلاعاتی در اثر یک حمله هکری یا خرابی سامانهای دچار مشکل شدند اطلاعات با استفاده از نسخههای پشتیبان بازیابی شوند.
- حفظ یکپارچگی دادهها: مکانیزمها و قیدهای محدودکننده دادهها باعث میشوند تنها دادههای پالایش شده و منطبق با ساختار از پیش تعیین شده در بانکهای اطلاعاتی ذخیرهسازی شوند.
- استقلال دادهها: رویکرد فوق بدین معنا است که متخصصان بانکهای اطلاعاتی میتوانند تغییراتی در ساختار دادهها به وجود آورند، بدون آنکه تغییرات بر کارکرد عادی برنامههای کاربردی تأثیر منفی بگذارند.
4. چرا سامانههای مدیریت بانکهای اطلاعاتی به نرمالسازی نیاز دارند؟
پاسخ: یکی از اصول مهم پایگاه دادهها حذف افزونگیهای ناخواسته است. افزونگی به این معنا است که یک داده خاص در چند محل مختلف پایگاه ذخیرهسازی شود. رویکرد فوق این مشکل را به وجود میآورد که دادهها هر لحظه با هم در تضاد قرار گیرند و استخراج دادههای واقعی که قرار است در استراتژیهای تجاری از آنها استفاده شود غیرممکن شوند. نرمالسازی فرآیندی است که بر اساس آن دادهها در واحدهای منطقی به نام جدول به شکل توزیعی ذخیره میشوند تا علاوه بر حفظ موجودیت دادهها مشکل افزونگی نیز برطرف میشود. برای نرمالسازی یک جدول لازم است جدول ابتدا در فرم اول نرمال شود و سپس نرمالسازیهای بعدی اعمال شوند. نرمالسازی تعداد جداول پایگاه داده را افزایش میدهد. اولین فرم نرمالسازی 1NF است که در آن سعی میشود دادهها و اطلاعات مربوط به موجودیتهای مستقل در واحدهای مستقل بهنام جدول ذخیره شود. پس از آن نرمالسازی 2NF، 3NF، Bcnf و 4NF انجام میشوند. البته بهکارگیری هر مرحله بر مبنای استراتژیهای سازمانی انجام میشود و لزومی ندارد برای تمامی بانکهای اطلاعاتی از نرمالسازی سطح چهار استفاده کرد، زیرا هزینهبر است.
5. چه زبانهایی برای تعامل با سامانههای مدیریت بانکهای اطلاعاتی در دسترس است؟
پاسخ: بهطور کلی 3 نوع زبان در ارتباط با سامانههای مدیریت بانکهای اطلاعاتی وجود دارد که تعریف آنها به شرح زیر است:
- DDL: زبان تعریف دادهها (Data Definition Language) برای بانکاطلاعاتی و ساختار طرحواره است که توسط برخی از محاورههای زبان پرسوجوی ساخت یافته (SQL) مانند CREATE، ALTER ، TRUNCATE ، DROP و RENAME استفاده میشود.
- DCL: زبان کنترل دادهها (Data Control Language) برای کنترل دسترسی کاربران سازمانی به بانکاطلاعاتی استفاده شده و مجموعهای از محاورههای زبان پرسوجوی ساخت یافته مانند GRANT و REVOKE را استفاده میکند.
- DML: زبان دستکاری دادهها (Data Manipulation Language) برای انجام یکسری وظایف مدیریتی و اعمال تغییرات مانند اضافه، حذف و موارد این چنینی استفاده میشود. برخی محاورههای زبان پرسوجوی ساخت یافته شبیه به SELECT، INSERT، DELETE و UPDATE از زبان دستکاری دادهها استفاده میکند.
6. منظور از SQL چیست؟
پاسخ: SQL سرنام Structured Query Language به معنای پرسوجوی ساختیافته است و با هدف تعامل با بانکهای اطلاعاتی رابطهای استفاده میشود. زبان فوق به توسعهدهندگان اجازه میدهد به شکل سادهای برخی از فرآیندهای کاربردی همچون درج و بهروزرسانی و ویرایش دادهها در پایگاه داده را مدیریت کنند.
7. دو اصطلاح کلید اصلی و کلید خارجی را شرح دهید:
پاسخ: کلید اصلی (Primary Kay) در مدل بانکهای اطلاعاتی رابطهای یک گزینه خاص از مجموعه حداقل ویژگیها (ستونها) است که به صورت یکتا یک چندتایی (سطر) را در یک رابطه (جدول) تعریف میکند. کلید اصلی مشخص میکند که رکوردهای یک جدول در پایگاه داده باید منحصر به فرد باشند. کدملی مثال روشنی از یک کلید اصلی است. در حالت کلی کلید اصلی برای شناسایی منحصر به فرد رکوردها در جدول پایگاه داده استفاده میشود، در حالی که کلید خارجی برای مرتبط کردن دو یا چند جدول به یکدیگر استفاده میشود. به بیان ساده کلید خارجی برای ارتباط و متصل کردن دو جدول به یکدیگر استفاده میشود. به جدولی که شامل کلید خارجی است، جدول فرزند گفته میشود و به جدولی که کلید ارتباط با جدول قبلی دارد را جدول مرجع یا والد میگویند.
8. چه تفاوتهایی میان کلید اصلی و کلید منحصر به فرد وجود دارد؟
پاسخ: از مهمترین تفاوتها به موارد زیر میتوان اشاره کرد:
تفاوت مهم کلید اصلی و کلید منحصر به فرد در این است که کلید اصلی (Primary) هرگز نمیتواند مقدار تهی (null) داشته باشد، در حالی که کلید منحصر به فرد (Unique) ممکن است مقدار تهی داشته باشد. در هر جدول فقط یک کلید اصلی وجود دارد، در حالی که ممکن است بیش از یک کلید منحصر به فرد در یک جدول وجود داشته باشد.
9. مفهوم زیرپرسوجو در SQL چیست؟
پاسخ: زیرپرسوجو اساسا محاوره درون سایر محاورهها (محاوره درونمحاورهای) است و میتواند به عنوان یک پرسوجوی داخلی که درون یک پرسوجوی خارجی قرار گرفته ظاهر شود.
10. کاربرد دستور DROP چیست و چه تفاوتی میان دستورات DROP ، TRUNCATE و DELETE وجود دارد؟
پاسخ: دستور DROP یک دستور DDL است که برای آزادسازی/ حذف جدول، بانک اطلاعاتی، فهرست یا نمای موجود از پایگاه داده استفاده میشود. تفاوت اصلی DROP، TRUNCATE و DELETE به شرح زیر است:
- دستورات DROP و TRUNCATE فرامین DDL هستند که برای حذف جداول از پایگاه داده استفاده میشوند و پس از حذف جدول کلیه شاخصها و موارد مربوط به جدول را حذف میکنند. این 2 عملیات غیر قابل برگشت هستند و بنابراین تنها در صورت لزوم باید استفاده شوند.
- فرمان DELETE یک فرمان DML است که برای پاک کردن ردیفها از جدول استفاده میشود و قابل برگشت است. توصیه میشود از گزاره "WHERE" به همراه دستور DELETE استفاده کنید، در غیر این صورت جدول بهطور کامل از پایگاه داده حذف میشود.
11. تفاوت اصلی UNION و UNION ALL چیست؟
پاسخ: UNION و UNION ALL برای مرتبط کردن دادههایی که درون دو یا چند جدول قرار دارند استفاده میشوند. UNION سطرهای تکراری را حذف میکند و پس از ترکیب دادهها از جداول ردیفهایی که متمایز هستند را باز میگرداند، در حالی که UNION ALL سطرهای تکراری را حذف نمیکند و تمامی دادههای درون جداول را انتخاب میکند. به بیان دیگر عملگر UNION تنها دادههایی را به صورت پیشفرض انتخاب میکند که از یکدیگر متمایز باشند. برای اینکه امکان انتخاب دادههای تکراری فراهم شود باید از کلیدواژه ALL به همراه UNION استفاده کرد.
12. مفهوم ACID را همراه با ویژگیهای آن در DBMS توضیح دهید؟
پاسخ: اسید (ACID) سرنام کلمههای تجزیهناپذیری، همخوانی، انزوا و پایایی (Atomicity, Consistency, Isolation, Durability) است که مجموعه ویژگیهای تراکنشها در پایگاه داده را تعریف میکند. در دنیای پایگاه داده یک عمل/کار منطقی روی دادهها، یک تراکنش نامیده میشود. بهطور مثال جابهجایی پول از یک حساب به حساب دیگر یک تراکنش منطقی است. اسید از ویژگیهای زیر ساخته شده است:
- تجزیهناپذیری (atomic): به معنای تجزیه ناپذیر بودن دستورها است، یعنی اگر بخشی از تراکنش انجام نشد پایگاه داده باید بدون تغییر باقی بماند.
- سازگاری (consistency): تراکنش وقتی پایان مییابد، تمام دادهها باید در وضعیت پایدار قرار بگیرند. هر تراکنش پایگاه داده را از یک حالت معتبر به حالت معتبر دیگری میبرد. به این معنا که دادهها مطابق با قوانین تعریف شده پایگاه داده باشند.
- ایزولهسازی/انزوا (isolation): هر تراکنش به گونهای اجرا شود که مستقل از تراکنش دیگر به نظر برسد.
- پایایی (durability): براساس این خاصیت تراکنشهایی که به مرحله انجام (Commit) برسند اثرشان ماندنی است و هرگز بهطور تصادفی از بین نمیروند.
13. زیرمحاوره همبسته در DBMS چیست؟
پاسخ: یک زیرمحاوره ممکن است بهنام محاوره تو در تو شناخته شود، زیرا محاورهای است که درون محاوره دیگری نوشته میشود. زیرمحاوره همبسته ممکن است برای هر ردیفی که توسط پرسوجوی اصلی فرستاده میشود یک بار اجرا شود، به همین دلیل گاهی اوقات آنرا زیرمحاوره تکرارشونده نیز مینامند.
یک عبارت شامل زیرمحاوره همبسته به این صورت اجرا میشود که ابتدا پرسوجوی اصلی یک رکورد را بازیابی میکند و آنرا به زیر پرسوجو ارسال میکند. در ادامه زیر پرسوجو بر مبنای مقادیر دریافتی اجرا میشود و نتیجه بهدست آمده برای پرسوجوی اصلی ارسال میشود تا برای تکمیل پردازش استفاده شود.
15. نهاد، نوع نهاد و مجموعه نهادها در DBMS را توضیح دهید؟
پاسخ: نهاد (Entity) میتواند یک شی، مکان یا موجودیتهایی باشد که ماهیت مستقلی در دنیای واقعی دارند و اطلاعات مربوط به آنها را میتوان در یک پایگاه داده ذخیره کرد. یک انسان، یک کتاب و نمونههای این چنینی را میتوان نهادهای واقعی و مستقل توصیف کرد.
Entity Type: به مجموعهای از نهادها که خصوصیات یکسانی دارند اشاره دارد. بهطور مثال، جدول Student حاوی ردیفهایی است که در آن هر سطر یک نهاد است که ویژگیهایی مانند نام، سن و شناسه دانشآموزان را شامل میشود. از این رو Student یک Entity Type است که نهادهایی که دارای ویژگیهای یکسان هستند را نگهداری میکند.
Entity Set: مجموعهای از نهادها با نوع یکسان است. مجموعهای متشکل از کارمندان یک شرکت نمونه روشنی در این زمینه است.
16. سطوح مختلف انتزاع در DBMS را توضیح دهید؟
پاسخ: دادهها در سامانه مدیریت پایگاه داده دارای سه سطح انتزاعی به شرح زیر هستند:
- سطح فیزیکی: پایینترین سطح انتزاع دادهها است که نحوه ذخیرهسازی دادهها در پایگاه داده را نشان میدهد.
- سطح منطقی: سطح بعدی انتزاع است که نوع دادهها و روابط حاکم بر دادههای ذخیره شده در پایگاه داده را نشان میدهد.
- سطح مشاهده: بالاترین سطح انتزاع است که فقط بخشی از پایگاه داده را نشان میدهد.
17. چه قواعدی در ارتباط با یکپارچگی دادهها بر سامانههای مدیریت پایگاه داده حاکم است؟
پاسخ: دو قانون اصلی در رابطه با اصل یکپارچگی دادهها به شرح زیر وجود دارد:
- Entity Integrity: قاعده بسیار مهمی است که اعلام میدارد کلید اصلی هیچگاه نمیتواند مقدار تهی داشته باشد.
- Referential Integrity: این قاعده در ارتباط با کلید خارجی است و اعلام میدارد مقدار کلید خارجی میتواند تهی یا مقداری برابر با کلید اصلی بهکار گرفته شده در رابطه دیگری باشد.
18. مدل E-R در DBMS چیست؟
پاسخ: مدل موجودیت-رابطه (E-R) سرنام Entity–relationship model نوعی مدلسازی دادهای است که در آن سعی شده به دادهها از دید کسبوکار یا نیازمندیهای عملیاتی نگاه شود. بخش اصلی این مدل، موجودیتها/نهادها هستند که با خطوطی که بیانگر رابطهها هستند به یکدیگر متصل میشوند.
19. وابستگی عملکردی در DBMS چیست؟
پاسخ: بهطور کلی قیدی است که رابطه میان صفات مختلف در یک رابطه را توصیف میکند. بهطور مثال: اگر رابطهای با "R1" موجود باشد که دارای 2 ویژگی Y و Z است، وابستگی عملکردی این 2 ویژگی را میتوان به صورت Y-> Z نشان داد. در تعریف فوق Z از لحاظ عملکردی به Y وابسته است.
20. 1NF در DBMS چیست؟
پاسخ: 1NF اولین شکل و سادهترین شکل نرمالسازی است که در آن سعی میشود دادهها و اطلاعات مربوط به موجودیتهای مستقل در واحدهای مستقل در واحدهای مستقل بهنام جدول ذخیره شود. در این حالت جدول زمانی نرمال میشود که نوع دادهها و اطلاعات در هر ستون یکسان باشند، محتویات هر ستون یک مقدار مشخص اتمیک باشند و هر سطر از جدول منحصربهفرد باشد. برای این منظور میتوان از قید کلید اصلی یا PK استفاده کرد.
21. 2NF در DBMS چیست؟
پاسخ: 2NF دومین فرم نرمالسازی است. یک جدول زمانی در شکل دوم نرمال قرار میگیرد که ابتدا فرم اول نرمالسازی روی آن انجام شده باشد و تمامی ستونهای غیر کلید، وابستگی تابعی کامل به کلیه ستونهای کلید داشته باشد.
22. 3NF در DBMS چیست؟
پاسخ: یک جدول زمانی در حالت نرمالسازی سطح سوم قرار میگیرد که ابتدا نرمالسازی سطح اول و دوم روی آن اعمال شده باشد و فاقد وابستگیهای با واسطه باشد.
23. Bcnf در DBMS چیست؟
پاسخ: یک جدول زمانی در این سطح قرار میگیرد که سه سطح قبلی نرمالسازی روی آن اجرا شده باشد و هر دترمینان یک کلید کاندید باشد.
24. اصطلاح CLAUSE در SQL به چه معنا است؟
پاسخ: بیانگر بخش شرطی محاورههای اسکیوال است. شروطی که برای واکشی و استخراج دقیق دادهها مطابق با الزامات تعیین شده استفاده میشود.
25. چگونه میتوان رکوردهای متناوب را از یک جدول SQL دریافت کنید؟
پاسخ: اگر به دنبال دریافت اعداد مفرد هستید باید از ترکیب نحوی زیر استفاده کنید:
;SELECT EmpId from (SELECT rowno,EmpId from Emp) WHERE mod(rowno,2)=1
اگر به دنبال دریافت اعداد زوج هستید باید از محاوره زیر استفاده کنید:
;SELECT EmpId from (SELECT rowno,EmpId from Emp) WHERE mod(rowno,2)=0
26. فرآیند تطبیق الگو در SQL چگونه انجام میشود؟
پاسخ: با کمک عملگر LIKE تطبیق الگو در اسکیوال عملیاتی میشود. مثال زیر نحوه انجام اینکار را نشان میدهد:
;’%SELECT * from Emp WHERE name like ‘b
;’_SELECT * from Emp WHERE name like ‘hans
27. Join در SQL به چه معنا است؟
پاسخ: Join یکی از دستورات پر کاربرد زبان پرسوجوی ساخت یافته است که برای مرتبط کردن دادهها یا سطرهای درون دو یا چند جدول بر مبنای یک فیلد یا ستون مشترک انجام میشود.
28. انواع مختلف Join در SQL چیست؟
پاسخ: در اسکیوال سرور چهار نوع Join به صورت Inner Join، Left Join، right Join و Full Join وجود دارد.
29. منظور از trigger چیست؟
پاسخ: نوعی رویه ذخیره شده است که پس از یک رویداد اجرا میشود، برخلاف روالهای ذخیره شده (Stored Procedure) که باید فراخوانی شوند، تریگرها قابل فراخوانی نیستند و به صورت خودکار در واکنش به عملیاتی مانند حذف، بهروزرسانی و اضافه قبل یا بعد از تراکنشها اجرا میشوند. بهطور عنوان مثال، اگر یک رکورد جدید در بانک اطلاعاتی کارمندان درج شود، دادهها بهطور خودکار در جداول مربوطه مانند حقوق، بخش و نقشها ایجاد میشوند.
30. روال ذخیره شده را توضیح دهید.
پاسخ: روال ذخیره شده به گروهی از دستورات اسکیوال اشاره دارد که در قالب تابعی با یک نام منحصر به فرد در سامانه مدیریت بانک اطلاعاتی رابطهای ذخیره میشوند و میتوانند هر زمانی فراخوانی شوند.
1+30: RDBMS چیست؟
پاسخ: RDBMS سیستم مدیریت پایگاه داده رابطهای است که شامل دادههایی است که در قالب جداول ذخیرهسازی شدهاند. دسترسی به این دادهها از طریق فیلدهای مشترک میان جداول انجام میشود.
2+30:چه نوع روابطی بر یک DBMS حاکم است؟
پاسخ: روابط در DBMS ارتباط میان جداول را نشان میدهند. روابط میتوانند یک به یک (One-to-One)، یک به چند (One-to-Many) و چندبهچند (Many-to-Many) باشند.
کلام آخر
تمامی پرسشهایی که ممکن است در یک آزمون استخدامی با آنها روبرو شوید مشابه با پرسشهای اشاره شده هستند. ممکن است در برخی مصاحبهها تفاوتهایی وجود داشته باشد، اما اگر درباره هر یک از پرسشهای یاد شده تحقیقی انجام دهید، متوجه خواهید شد که تمامی مباحث بانکهای اطلاعاتی رابطهای را شامل میشوند
به این مطلب چند ستاره میدهید؟(امتیاز: 4.5 - رای: 2)
- نویسنده: حمیدرضا تائبی