رايانه - نرم افزار
(12 سوال SQL)
1- كدام يك از قابليتهاي Enterprise Manager نيست ؟
الف) تعريف سطح دسترسي گروهي جهت كاربران ب) تغيير نام پايگاه داده
ج) ايجاد گروه بندي جهت پايگاههاي داده د) ب و ج
2- براي تعريف فيلدي از نوع رشته اي با طول متغير و كدگذاري Unicode از كدام تايپ
استفاده مي كنيد ؟
الف) nvarchar ب) Varchar ج) Nchar د) الف و ج
3-كدام دستور زير صحيح نيست ؟
select top 5 percent last-name from employee(الف
select top 5 last-name as [family ] from employee(ب
update last-name set ' ahmad ' from employee where id=12(ج
د ( insert into employee(last_name,first_name)
Select lname,fname from person
4- فرض كنيد مي خواهيد %10 قيمت تمام محصولات را كاهش دهيد. كدام گزينه صحيح است ؟
(الف update unitprice
set unitprice *0.9 from products
update products (ب
set unitprice= unitprice -(unitprice *0.1)
update products (ج
set unitprice= unitprice*0.9 where productId is not null
update unitprice (د
set unitprice –(unitprice *0.1) where prodctId is not null
5- فرض كنيد Stored procedure زير را براي محاسبه فروش كل يك عنوان كتاب خاص طراحي
كرده ايد:
create procedure TotalSold
@ title-id varchar (6) , @ totalQty int =0 output
As
select @ totalQty =sum (qty)
from titles inner join sales
on titles.title-id = sales .title-id
where titles.title-id=@title-id
if @totalQty=0
return 0
else
return 1
چگونه مي توان اين روال را فراخواني كرد به نحوي كه اگر يك عنوان خاص فروش نداشت
پيغام " no sales " را بدهد و گرنه شماره كتا ب و تعداد كل فروش آن را نمايش دهد؟
Declare @title-id varchar(6)
Declare @ totalQty int
Declare @ret-value int
Set @ title-id='b1034'
Exec totalSold @title-id ,@ ret_value output (الف
If @ret-value=0 print 'no sales'
Else print "total sales for " +@title-id +'is' + cast (@totalQty As varchar
(10))
Exec totalSold @ title-id ,@titleQty (ب
If @ret-value=0 print 'no sales'
Else print 'total sales for' +@title-id + 'is' + cast (@totalQty as varchar
(10))
Exec TotalSold @title–id ,@totalQty output ,@ ret-value (ج
If @ret-value =0 print 'no sales'
Else print 'total sales for' +@title-id + 'is' + cast (@totalQty as varchar
(10))
Exec @ret-value =totalSold @title-id ,@totalQty output (د
If @ret-value =0 print 'no sales'
Else print 'total sales for' +@title-id + 'is' + cast (@totalQty as varchar
(10))
6- فرض كنيد مي خواهيد يك عمليات محاسباتي پيشرفته را پياده سازي نماييد كه اطلاعات
را از جداول مختلف بدست مي آورد و محاسبه بر اساس يك Customer id كه كاربر وارد مي
كند انجام مي شود و ارتباط بين جداول نيز از اين فيلد است . محاسبات آماري انجام
شده و يك مقدار خروجي برگردانده مي شود . نتيجه اين محاسبات در دستورات Select ،
Insert ، update ، Delete ، نيز بكار گرفته مي شود . كدام روش بهترين گزينه است ؟
الف) Scalar user- defined function ب) view
ج) stored procedure د) rule
7- فرض كنيد شما مدير ( Administrator ) يك كامپيوتر2000 SQL Server هستيد و سرور
شامل يك بانك اطلاعاتي به نام Sales مي باشد . يك برنامه كاربردي ( Application )
مربوط به e-commerce شركت از اين بانك استفاده مي كند تا تراكنش هاي بانك مربوطه را
ذخيره كند . Web site شركت از نظر Popularity رشد كرده است وUtilization بانك
اطلاعاتي نيز افزايش يافته است .
شما به جمع آوري اطلاعات در باره Utilization منابع سرور احتياج داريد بنابر اين مي
توانيد برنامه ريزي ظرفيت را تهيه و ارائه كنيد . براي خودكار سازي پروسه هاي جمع
آوري ، نياز به جمع بندي اطلاعات با حداكثر سرعت ممكن مي باشد . چگونه ؟
الف) پيكربندي و تنظيم System Monitor براي جمع آوري اطلاعات و ذخيره سازي آن در
يك جدول SQL Server
ب) ساخت SQL Server Agent job كه روالهاي ذخيره شده Sp_statistics را بصورت روزانه
ذخيره كرده و نتايج را در يك فايل Text قرار دهد .
ج) استفاده از Profiler SQL براي رديابي فعاليت سرور و ذخيره نتايج در جداول SQL
Server
د) پيكر بندي و تنظيم اخطارهاي SQL Server براي ذخيره سازي اطلاعات در LOG رخداد
برنامه كاربردي (Application ) ويندوز .
8- فرض كنيد مدير (Administrator) يك كامپيوتر SQL Server 2000 هستيد . سرور به
منظور ذخيره سازي اطلاعات براي دپارتمان حسابداري شركت شما استفاده مي شود .
مجوزهاي روي جدول Accounting به شكل نمايش داده شده زير پيكر بندي و تنظيم شده اند
:
Ali يك عضو از Role هاي بانك Managers و Salespeople است . در طي كار با اين جدول
، او از توانايي انجام edit و remove اطلاعات گزارش مي دهد ولي نمي تواند هيچيك از
اطلاعات جدول را مشاهده كند .
شما احتياج داريد به Ali اجازه رويت اطلاعات را در بانك حسابداري بدهيد. چه مي كنيد
؟
الف) Grant privileges on accounting to ali
ب) Grant select on accounting to Ali with Grant option
ج) Revoke Grant Option for select on Accounting To Ali
د) Revoke select on accounting from ali
9- فرض كنيد شما به عنوان مدير( Administrator ) يك كامپيوتر SQL Server 2000
مجموعه ای از اخطارها را روي سرور پيكر بندي و تنظيم مي كنيد تا شما را از اينكه چه
موقع عمليات اصلي Fail مي شوند يا با خطايي مواجه مي شويد آگاه كند. اعلامها با
استفاده از فرمان ارسال شبكه به كامپيوتر Microsoft windows 2000 professional شما
فرستاده مي شوند . شما اخطارها را بطور موفقيت آميز تست مي كنيد و پس از چند روز
هنگاميكه عمليات Fail مي شوند يا با يك خطا مواجه مي شويد دريافت اعلامها را متوقف
مي كنيد . شما مطمئن مي شويد كه سرويس SQL Server Agent شروع شده است . براي
اطمينان از ادامه دريافت اعلامهاي اخطار چه بايد كرد ؟
الف) توقف و شروع مجدد سرويس SQL ServerAgent
ب) پاك كردن Application Log روي كامپيوتر SQL Server
ج) پاك كردن System Log روي كامپيوتر Windows 2000 Professional
د) نصب ابزارهاي SQL Server 2000 Administrative روي كامپيوتر Windows 2000
Professional
10 - بانک اطلاعاتی جهت ثبت سفارشات مشتريان وجود دارد و مشتريان ميتوانند در هر
بار، چند سفارش را در آن ثبت نمايند. بانک اطلاعاتی طراحی شده در زير نشان داده شده
است.
چگونه ميتوان زمان پاسخ سيستم را جهت جستجوها (Query) کاهش داده و دادههای اضافی
را مينيمم نمائيم؟
الف) ايجاد يک جدول سفارش جديد بنام OrderDetail و حذف ستونهای ProductID و
Quantity از جدول Orders.
ب) ايجاد يک قيد مرکب PRIMARY KEY روی ستونهای OrderID و ProductID جدول Orders.
ج) ايجاد يک قيد UNIQUE روی ستونهای OrderID جدول Orders.
د) انتقال ستون UnitPrice از جدول Products به جدول Orders.
11- بانک اطلاعاتی را جهت يک شرکت ورزشی که محصولاتش را در سراسر دنيا به مشتريانش
عرضه ميکند، طراحی ميکنيم. اين شرکت اطلاعات فروش خود را در بانک اطلاعات Sales
ذخيره ميکند. مشخصات مشتريان در جدول Customers که بصورت زير ايجاد شده، قرار
دارند.
CREATE TABLE Customers
(
CustomerID int NOT NULL,
CustomerName varchar(30) NOT NULL,
ContactName varchar(30) NULL,
Phone varchar(20) NULL,
Country varchar(30) NOT NULL,
CONSTRAINT PK_Customers PRIMARY KEY (CustomerID)
)
معمولاً فقط يک يا دو مشتری در هر کشور وجود دارند، گرچه برخی از کشورها تا بيست
مشتری هم دارند. ميخواهيم ليستی از کشورهائی که بيش از 10 مشتری در آنها وجود دارد
را بدست آوريم. کداميک از دستورات زير ميتواند مورد استفاده قرار گيرد؟
(الف SELECT TOP 10 Country FROM Customers
(ب SELECT Country FROM Customers
GROUP BY Country HAVING COUNT (Country)>10
(ج SELECT TOP 10 Country FROM Customers
FROM (SELECT DISTINCT Country FROM Customers) AS X
GROUP BY Country HAVING COUNT(*)> 10
(د SET ROWCOUNT 10
SELECT Country, COUNT (*) as “NumCountries”
FROM Customers
GROUP BY Country ORDER BY NumCountries, Desc
12- در يک بانک اطلاعات SQL Server 2000، سه جدول A, B, C وجود دارند که اطلاعات
اين جداول بندرت بروز (update) ميشوند. ميخواهيم زمان پاسخ Queryهائی که در آن از
سه جدول فوق استفاده ميشود مينيمم باشد، بهترين راه حل کدام گزينه ميباشد؟
الف) ايجاد يک Stored Procedure که اطلاعات را از جداول برگرداند.
ب) ايجاد يک Index View روی جداول.
ج) ايجاد يک Scalar User-Defined Function که اطلاعات را از جداول برگرداند.
د) ايجاد يک Table-Valued User-Defined Function که اطلاعات را از جداول برگرداند.