الجمعة، 31 مايو 2013

حل إمتحان القطامية (نظم معلومات محاسبية 2013)

حل إمتحان القطامية (نظم معلومات محاسبية 2013)

طبعا أحنا راجعنا قبل كده فى المعهد
بس نظرا لأن الطلاب كلهم طلبوا منى أحلى إمتحان القطامية فقولت تراجعوا منه قبل الإمتحان لأن معظم حلولكم اللى كانت بتتبعتلى غلط محلتش جزء الـ Financial لأنكم كلكم قولتوا سهل وحلينوا صح فعلا
حاجة تانى خدوا بالكوا طبعا فيه أكتر من طريقة حل صح بس الميزة إنى مجرب الحلول دى فهى ثقة إن شاء الله
 فربنا يوفقكم يارب









مراجعة نظم معلومات إدارية على السريع

السنة الثانية نظم معلومات إدارية
أولا: كل الناس تأكد على سؤال الـ Prolog سؤال مضمون
ثانيا: سؤال الـ UML إما Class Diagram, Use Case, Sequence
         واحد منهم جاى
ثالثا: سؤال Data Cubes و Star Schema و Rule Induction جاى أتنين منهم وركزوا على الـ Rule Induction بجانب Cubes
رابعا: سؤال التشفير مهم جدا بس ركزوا بالذات على اللى جاى تشفير مش فك تشفير
Abash, ROT13, Caesar, Simple/Full Vigenere
خامسا: النظرى بقى إمتحان السنة اللى فاتت ومعاه الأختصارات والتعريفات اللى الدكتور ملاها وفيها طبعا منهجية تطوير نظم قواعد البيانات واخدلى بالك
------------------------------------------------------
مرفق إمتحان السنة السابقة وإمتحان تخلفات من شهر كده وحلى لإمتحان السنة اللى فاتت بالتوفيق

يلا راجعوا وحلوا الحاجة اللى مش محلولة وربنا يوفقكم












الأربعاء، 22 مايو 2013

الأسئلة فى مادة إعداد تقارير والمهم منها

الجزء الأول
الأسئلة النظرى فى مادة إعداد تقارير والمهم منها

أرقام الأسئلة المهمة (وده توقع بالنسبة لإمتحانات السنوات السابقة) هى:
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


2) مجموعة من الأستعلامات على
 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-     يستحب مع حقول المفاتيح (رئيسية و خارجية)
      Create unique index index-a
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);