الجزء الأول
الأسئلة النظرى فى مادة إعداد تقارير والمهم منها
الأسئلة النظرى فى مادة إعداد تقارير والمهم منها
أرقام الأسئلة المهمة (وده توقع بالنسبة لإمتحانات السنوات السابقة) هى:
1-2-3-9-10-13-16-18
محتمل يجى 3 أسئلة فى الإمتحان
س1/ ماهى مراحل كتابة وإعداد التقارير؟ وتكلم بالتفصيل عن إثنين منهم على الاقل؟
س2/ ماهى عناصر التقارير؟ مع شرح إثنين منهم على الاقل؟
س3/ ماهى اماكن العثور على المعلومات؟
س4/ ماهو الفرق بين البحث الثانوى والبحث الاساسى؟
س5/ كيف يمكن تقييم مدى إمكانية الاعتماد على الإكتشافات؟
س6/ ماهى مراحل إصدار القرار؟
س7/ ماهى اهمية التأمين؟
س8/ كيف تتحكم فى منح التصاريح؟
س9/ ماهى الانشطة التى تدعمها SQL server reporting services؟
س10/ ماهى reporting services؟
س11/ ماهى ادوات إدارة التقارير؟
س12/ ماهى التقارير المجدولة ؟
س13/ ماهو ملف RDL؟
س14/ ماهو برنامج Crystal Report؟
س15/ ماهى ادوات تكوين التقرير؟
س16/ ماهى اقسام التقرير؟ (هام جداً)
س17/ اذكر طريقة تقوم بها بإضافة حقول جديدة للتقرير او إضافة حقل ال date او حقل رقم الصفحة؟
نفس السؤال بصيغة اخرى
س17/ ما هى نافذة Field Explorer Window؟
س18/ ماذا تعرف عن خبراء التقرير Report Experts التى تحتوى عليها Crystal Report؟
الجزء الثانى
الأسئلة العملى
1)أسئلة فى تصاريخ الدخول على SQLServer
ما هى أساسيات تصريح الدخول ومستوياتها, مع عرض قائمة جميع تصاريح الدخول, وكيفية إنشاء مستخدم بكلمة مرور وما هى سياسات كلمة المرور وكيفية الاستعلام عن المستخدمين.
أساسيات تصريح الدخول:
§ تمنح حق الدخول (Grant)
§ تلغى حقوق الدخول (Deny)
§ تلغى عمل الكلمتين السابقتين (Revoke)
مستويات تصريح الدخول:
§ منح تصريح على مستوى الخدمة
§ منح تصاريح على مستوى قواعد البيانات
§ حق الدخول على بيانات محددة
§ حق الدخول لمستخدم محدد
§ حق ملكية العناصر
قائمة جميع تصاريح الدخول
Select *
From sys.fn_builtin_permissions(‘Database’)
لعرض وحدة الخدمة: تصاريح الدخول
Select *
From sys.server_permissions
where class=100
لاستعراض تصاريح الدخول للنقاط الطرفية فى وحدة الخدمة
Select *
From sys.server_permissions
where class=105
لإنشاء مستخدم
Create Login أسم المستخدم
with password=’باسورد’
لتحديد دخول مستخدم على قاعدة بيانات معينة
Use أسم قاعدة بيانات
Create Userأسم المستخدم
كيفية الاستعلام عن المستخدمين (مخطط قواعد البيانات)
1. استعراض جميع المستخدمين وعمليات تسجيل الدخول لنسخة SQL
Select *
From sys.server_principals
1. أستعراض جميع المستخدمين لقاعدة البيانات
Use أسم قاعدة البيانات
Select *
From sys.database_principals
2. عرض جميع مخططات قواعد البيانات الموجودة
Select * From sys.schemas
سياسات كلمة المرور
1. كلمة يصعب اختراقها
2. كلمة لها مدة وتتغير
3. تامين حق الدخول من المهاجمين بنظام out Lock
SQLServer (Northwind) Database
س: اعرض من جدول المنتجات Products الحقول: كود المنتج ProductID ، اسم المنتج ProductName و ثمن الوحدة UnitPrice ، سعر الوحدة مضافا إليه 10% ضريبة و أستخدم اسم معبر للحقل المحسوب TotalPrice
USE Northwind
SELECT ProductID, ProductName,
UnitPrice, (1.1*UnitPrice) as TotalPrice
FROM Products ;
س: أعرض أسم المنتج (ProductName) و أسم المورد (ContactName) الذى قام بتوريد المنتج ؟
select Products.ProductName,
Suppliers.ContactName
From Suppliers,Products
Where Products.SupplierID=
Suppliers.SupplierID
س: أعرض رقم الطلبية (OrderID) و أسم العميل (ContactName) لكل طلبية باستخدام الربط الداخلي (inner join) ؟
select orders.OrderID,
customers.ContactName
From customers inner join orders
on ( orders.customerid =
customers.customerid )
س: أستخدم استعلام فرعى لعرض بيانات طلبيه العميل (Thomas Hardy) ؟
Select Orders.*
From Customerid = ( Select Customerid
From Customers
Where Customername=’Thomas Hardy’ )
3) سؤال على الـ Transaction ممكن يجى صحح خطأ أو تتبع أو كما يلى
س: ما هى وحدة العمل Transaction
مع شرح مبسط لوحدات التحكم؟
ثم قم بكتابة كود لوحدة عمل بالاسم New_Account
يضيف صف فى جدول العميل Customer(CustID,
CustName,Phone) ثم يتأكد من
وجود العميل المضاف إن كان موجودا يضاف صف أخر فى جدول الحساب برقم 5 Account(AccountID, CustID)
إن لم يكن العميل موجودا يتم التراجع عن العمليات, وفى نهاية الوحدة يتم حفظ
الوحدة كاملة إن تم إضافة العميل برقم الحساب 5 وإن لم يضاف يتم التراجع عن كل
العمليات التى تمت بالوحدة؟
وحدة العمل (Transaction): هى مجموعة من العمليات المشتركة التى تتعامل مع
بعضها وفقا لشروط فيمكن التراجع عن بعضها وحفظ البعض الأخر أو تشغيل عملية معينة
بناءا على عملية أخرى او العكس.
وحدات التحكم :
§
لبدء عملية (Begin transaction)
§
حفظ وحدة عمل (Commit
Transaction)
§
إلغاء عمليات وحدة
عمل (Rollback Transaction)
§
حفظ مؤقت لوحدة
عمل (أسمSave transaction
) .
Begin Transaction
New_Account
Insert Into Customer
Values(1,’Kareem’,’0123333233’)
If exists( Select * From Customer
where CustId=1
)
Begin Transaction
Insert into Account Values(5,1);
Else
Rollback Transaction
If exists( Select *
From Account
where CustId=1 and
AccountID=5 )
Commit
Transaction
Else
Rollback Transaction
Go
4) سؤال عن الـ View
س: لماذا نستخدم المشهد View فى
إعداد التقارير المختلفة. أشرح باختصار أنواع المشاهد في قواعد البيانات.
أنشئ
المشهد المسمى View1 من جدولى Employees , Department بقاعدة البيانات Northwind
ليعرض اسم العائلة ( Last_Name
) و الأسم الأول ( First_Name ) للموظف و كد الموظف ( SSN
) من جدول الموظف , و كود القسم ( Department_ID ) و أسم القسم ( Department_name
) من جدول القسم .
المشهد : هو عبارة عن جملة أستعلام محفوظة بداخل قاعدة البيانات يتم تنفيذها
عند الأستدعاء .
نستخدم المشهد فى أعداد التقارير: إنشاء View على اساس عرض
البيانات المجمعة من اكثر من جدول لتبسيط الكود فى برنامج إنشاء التقارير,
أنواع المشاهد:
Create View View1
As
( Select E.lastname, E.firstname, E.SSN,
D.department_ID,
D.department_name
From Employees as E, Department as D
Where E.department_ID=D.department_ID );
5) سؤال عن الـ Index
س: ما هى وظيفة الفهرس (Index)
وماهى انواعه وما
هى أسباب أستخدامه ومتى يستحب أستخدامه ومتى لا؟
§
إنشئ الفهرس
Index-a على الحقل CustID فى جدول العميل
Customer بحيث لا يسمح بالتكرار.
§ عدل الفهرس ليصبح فهرسا مركبا ليرتب أسماء العملاء طبقا للأسم
Custname تنازلى و الشركة (Compname)
تصاعدى.
وظيفة
الفهرس: هى تصنيف للبيانات حتى يتم تسهيل البحث فلا
يمر الجهاز على كل البيانات المسجلة بل يصل مباشرة من خلال التصنيف الذى تم وهو ما
يعرف بطريقة (Direct Access)
التى تشبة تفرعات الشجرة (Tree-Like Structure).
أنواع
الفهارس: يمكن تصنيفها فهارس بسيطة (على حقل واحد)
وفهارس معقدة (على اكثر من حقل) كما يمكن تصنيفها فهارس غير مرتبة وفهارس مرتبة
(وهى الأكثر شيوعا).
أسباب
استخدامه:
1- تيسير ترتيب البيانات
2- زيادة سرعة تنفيذ الأستعلامات
3- ضبط البيانات باستخدام (Primary Key, Unique)
متى يستحب
استخدامه ومتى لا:
1- لا يستحب إن كان الجدول صغير
2- لا يستحب مع الحقول التى يتم التعديل فيها بصورة كبيرة
3- لا يستحب مع الحقول التى تحتوى على قيم Null
كثيرة.
4- يستحب مع الحقول التى تحتوى على بيانات مختلفة ومتغيرة.
5- يستحب مع البيانات المستخرجة من بيانات كثيرة.
6- يستحب مع حقول المفاتيح (رئيسية و خارجية)
On customer( CustID )
Go
Drop Index index-a
GO
Create Index index-a
On
customer( custname desc,
compname asc )
6) سؤال عن الـ Trigger
س: ما هو الحدث ؟ ولماذا ننشئه؟ Trigger و كيف يعمل ؟ وما هى قواعد
استخدامه؟
أنشئ كود حدث يسمى Trig1 يقوم بإلغاء عملية حذف أكثر من سجل موظف واحد من
جدول الموظفين Employees بقاعدة بيانات Northwind
التى دراستها على أن يظهر رسالة التحذير التالية :
" لقد حاولت إلغاء سجلات أكثر من موظف واحد . العملية ألغيت " , أستخدم لغة SQL ببرنامج SQL Server
الحدث : هو نوع خاص من العمليات يحدث عن محاولة لتنفيذ
أو تغيير بيانات جدول مرتبط بالحدث.
ننشئة : لكى يقوم بتنفيذ عمليات ما تلقائيا بناءا على
حدث فعله المستخدم.
يعمل الـ trigger:
§
قبل ما فعله المستخدم (Before)
§
أو بعد (After)
§
أو بدلا من ما فعله المستخدم (Instead of)
يتم تنفيذ : الحدث تلقائيا عند
§
إدخال بيانات ( Insert
)
§
أو تحديث بيانات ( Update )
§
أو حذف بيانات ( Delete ) .
USE Northwind
GO
CREATE TRIGGER trig1
ON Employees
For Delete
AS
IF (Select count (*) From deleted) > 1
Begin Transaction
Raiserror ( 'you cannot
delete more than one employee at a time', 16,1)
Roll back transaction
End
شرح لكل سطر
1- استخدام قاعدة بيانات Northwind
2- بدء تنفيذ البرنامج GO
3- إنشاء الحدث باسم
trig1 بالأمر CREATE TRIGGER
4- يتم الحدث علي جدول Employees
5- بدء شرط حدوث الحدث
For Delete عند الإلغاء
6،
7- - شرط تنفيذ الحدث
IF : عند الإلغاء لأكثر من سجل واحد
8- بدء تنفيذ الحدث (الشرط (Begin
9- أمر كتابة رسالة خطأ Raiseerror بمستوي خطأ 16
10- أمر الرجوع في عملية إلغاء البيانات Rollback
11- نهاية تنفيذ الحدث End
7) سؤال عن الـ Cursor
عرف المؤشر
(Cursor) ؟ و الإجراء
(Procedure) ؟ وأكتب إجراء بالاسم Print_Books كما يلى.
يعرف بداخله
مؤشر (Cursor) بالأسم Books يسترجع عنوان
الكتاب Title من جدول Store ثم يطبع وهكذا
حتى يتم طبع كل عناوين الكتب ثم غلق المؤشر ويحذف؟
المؤشر: يفتح بيانات فى شكل جدول من ناتج جملة
Select ويسمح لنا بالتجول فى السجلات والتعامل معها.
الإجراء: مجموعة من الاوامر التى يتم تنفيذها
بصفة مستمرة فنكتبها بداخل أجراء مرة واحدة لتأخذ اسم ثم نستخدمها ونستدعيها فيما
بعد بهذا الاسم, كما أنه يزيد من سرعة تنفيذ هذه العمليات.
Create Procedure print_books
As
Declare Books Cursor
For select title from store
Declare @title varchar(40)
Open books -- لفتح المؤشر
Fetch next from books Into @title
--استخراج أول صف من المؤشر
While @@fetch_status =0 - - أى كرر لو تم أسترجاع بيانات بنجاح
Begin
Print @title
Fetch next from books into @title
End
Close books - - لإغلاق المؤشر
Dellocate cursor books - - يحذف المؤشر
Go
8) سؤال عملى عن إعداد تقرير (مهم جدا جدا)
تمرين : إنشئ تقرير "كشف غياب" طبقا لما يلى:
علما بأن طول صفحة الرسم 1170 و عرضها 825
- العنوان بخط Arial بحجم 18 وباقى النصوص بحجم 14
- ينتهى المستطيل الرئيسى قبل نهاية الصفحة بـ 70 نقطة ويترك هوامش جانبية مقدارها 50
- موضع الكلمة "أسم الطالب" (650,110)
- الخطوط الأفقية تبدأ من 550 وتنتهى بـ 100 وتبعد عن بعضها بـ 50 نقطة
- الخطوط الرئسية تبدأ من 150 وتنتهى 1100 وتبعد عن بعضها بـ 50 نقطة
- البعد X للكلمة "معمل" 590 وللكلمة "قسم" 390 وللكلمة "مادة" 200
الأبعاد الأفقية على الترتيب فى الرسم 10 و 35 و 40 و 100
الحل
e.Graphics.DrawString("كشف غياب معمل", New Font("Arial", 18), Brushes.Blue, 325, 10);
e.Graphics.DrawLine(Pens.Black, 200, 35, 625, 35);
e.Graphics.DrawString("معمل", New Font("Arial", 14), Brushes.Black, 590, 40);
e.Graphics.DrawString("قسم", New Font("Arial", 14),
Brushes.Black, 390, 40);
e.Graphics.DrawString("المادة", New Font("Arial", 14),
Brushes.Black, 200, 40);
e.Graphics.DrawRectangle(Pens.Black, 50, 100, 725, 1000);
e.Graphics.DrawString("أسم الطالــــب", New Font("Arial", 14),
Brushes.Black, 650, 110);
for(int x = 550; x>=100; x-=50)
e.Graphics.DrawLine(Pens.Black, x, 100, x, 1100);
for(int x = 150; x>=1100; x+=50)
e.Graphics.DrawLine(Pens.Black, 50, x, 775, x);
بالنجاح والتوفيق إن شاء الله
ربنا يكرمك يارب يادكتور عادل
ردحذفويكرمكم فى الإمتحان يارب وبالتوفيق
حذفالف الف الف الف شكر يا دكتور عادل ربنا يباركلك يارب والله كنا محتاجين الاسئله دى جدا
ردحذفشكرااااا يا دكتوور
ردحذفالعفو
حذفvery thx doc adel
ردحذفthanks for you!
حذفشكرا جدا دكتور عادل والله عملت فينا خيييييير كبير اوووووى شكرا شكرا
ردحذفبس يارب يكون فعلا نفع
حذفجزاك الله خيراً يا دكتور عادل :)
ردحذفوجزاك
حذفطول عمر حضرتك صاحب واجب
ردحذفوياريت فى الإمتحان تكون عملت الواجب
حذفطيب فين حضرتك الجزء التانى من المراجعة
ردحذف