العودة   منتديات طلاب الجامعة العربية المفتوحة > منتديات المشرفين والمنتديات المساعدة > أرشيف المواد والمواضيع القديمة > CS490

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع

قديم 18-01-2011, 11:28 PM   #15
Unique Unique غير متصل
مشرف سابق
 
الصورة الرمزية Unique
افتراضي رد: CS490 Mock Exam Questions Discussion


الله يسلمك أخوي khalat0d1.
اقتباس:
28. List the C u s t o m e r IDs for C u s t o m e r s who bought cats also bought products for Cats?
الطلبات:
Sale.C u s t o m e r ID

الشروط:
who bought cats
also bought products for Cats
الزباين الي اشتروا قطط و اشتروا منتجات للقطط.

أول خطوة: نعدد الجدوال المطلوبة للإجابة علي هذا الإستفسار:
Sale بنجيب منه رقم الزبون Sale.C u s t o m e r ID،
Animal بنجيب منه الكتجوري Animal.Category,
Merchandise بنجيب منه المنتجات Merchandise.ItemID

طيب المنتجات الي تم بيعها وين مخزنه أصلاً؟ في جدول SaleItem صح؟
يعني بحتاجه عشان أجيب بس المنتجات الي تم بيعها.

زين، القطط الي تم بيعها وين بتصير معلوماتها؟ في جدول SaleAnimal
برضو بحتاجه هذا الجدول.

كم جدول صاروا؟ 5 جداول، مضبوط؟
طيب 5 جداول كل واحد في زاوية.. يعني لازم ربط:
مادام عندي 5 جداول معناها بحتاج من رابط؟ 5 - 1 = 4، بحتاج 4 Inner Join أوكي.

هنا لازم أجزء الشغل عشان يسهل علي كتابة الكود المطلوب:
1. List the C u s t o m e r IDs
يعني:
Select Sale.C u s t o m e r ID From Sale.

2. for C u s t o m e r s who bought cats,
يعني بربط Sale مع SaleAnimal
Select Sale.C u s t o m e r ID From Sale Inner Join SaleAnimal On Sale.SaleID = SaleAnimal.SaleID
بجي أرجع للكلاس ديجرام.. هل فيه شيد يدلني على صنف الحيوان المباع في جدول SaleAnimal؟؟ لا مافيه…
كل الي عندي رقم… بس هذا الرقم ممكن يوصلني للصنف لو رجعت بإستخدامه لجدول Animal!

خلاص، عليك نور: بنربط جدول SaleAnimal مع جدول Animal بإستخدام AnimalID، نقول:
Animal Inner Join SaleAnimal On Animal.AnimalID = Sale.AnimalID

صار عندي عبارتين:
Select Sale.C u s t o m e r ID From Sale Inner Join SaleAnimal On Sale.SaleID = SaleAnimal.SaleID
و
Animal Inner Join SaleAnimal On Animal.AnimalID = Sale.AnimalID

حيتداخلوا في بعض… كيف؟ مو قلنا نبغى الكاتيجوري؟ على أساسه بناخذ رقم الزبون؟ يعني كأني بقول:
رجع لي رقم الزبون المدرجه معلوماته في عملية البيع الي نباع فيها قطط، و هذا ترتيب العبارة:
Select Sale.C u s t o m e r ID From Sale Inner Join
)‬Animal Inner Join SaleAnimal On Animal.AnimalID = Sale.AnimalID‫(‬
SaleAnimal On Sale.SaleID = SaleAnimal.SaleID
WHERE (Animal.Category)=‘Cat'


3. also bought products for Cats

بعد، هم أشتروا منتجات للقطط..يعني ببحث عن رقم الزبون الي أشترى منتجات في جدول المبيعات SaleItem
Select Sale.C u s t o m e r ID Inner Join SaleItem On Sale.SaleId = SaleItem.SaleID
Where
….. eh?
مافيه شيء هنا يدلني على نوع المتتج.. هو تابع لأي صنف؟ هل هو لقطط؟ لسمك؟ لطيور…. ماادري..
وين ألقي هالمعلومة؟ في جدول المنتجات الي هو Merchandise.

اممم يعني ربط بين SaleItem و Merchandise، اوكي:
SaleItem Inner Join Merchandise On SaleItem.ItemId = Merchandise.ItemID
Where Merchandise.category = 'Cat'


حلو، صار عندي عبارتين:
Select Sale.C u s t o m e r ID Inner Join SaleItem On Sale.SaleId = SaleItem.SaleID
و
SaleItem Inner Join Merchandise On SaleItem.ItemId = Merchandise.ItemID
Where Merchandise.category = 'Cat'


الحين بنربطهم مع بعض:
Select Sale.C u s t o m e r ID From Sale Inner Join
) ‬Merchandise Inner Join SaleItem On Merchandise.ItemID = SaleItem.ItemID‫(‬
On Sale.SaleId = SaleItem.SaleID
Where Merchandise.category = 'Cat'


خلاص نفذت الطلبات، باقي أرتب الجملة كاملة: "الشروط دائما تجي في الأخير"
Select Sale.C u s t o m e r ID From Sale Inner Join
(‬Animal Inner Join SaleAnimal On Animal.AnimalID = Sale.AnimalID‫(‬
SaleAnimal On Sale.SaleID = SaleAnimal.SaleID
Where (Animal.Category)=‘Cat'

AND أند هذي Keyword بستخدمها لو عندي أكثر من شرط.

مو قلنا بنسوي بحث عن رقم الزبون؟ فيه Keyword برضو بتسوي بحث: In
هذي تعني هل الرقم موجود في البحث التالي ولا لا؟ كيف بنكتبها:

Sale.C u s t o m e r ID In(…….)
أيش بيصير بين الأقواس؟ بتصير فيه العبارة الي كتبتها و الي بتحقق المطلوب الثاني و المنتجات الي انباعت.

نقول:
Select Sale.C u s t o m e r ID From Sale Inner Join
)‬Animal Inner Join SaleAnimal On Animal.AnimalID = Sale.AnimalID‫(‬
SaleAnimal On Sale.SaleID = SaleAnimal.SaleID
Where (Animal.Category)=‘Cat'
AND
Sale.C u s t o m e r ID In(
Select Sale.C u s t o m e r ID From Sale Inner Join
) ‬Merchandise Inner Join SaleItem On Merchandise.ItemID = SaleItem.ItemID‫(‬
On Sale.SaleId = SaleItem.SaleID
Where Merchandise.category = 'Cat')

و هذا هو حل السؤال رقم 27.

التعديل الأخير تم بواسطة Unique ; 18-01-2011 الساعة 11:30 PM سبب آخر: none
Unique غير متصل   رد مع اقتباس
قديم 18-01-2011, 11:42 PM   #16
Unique Unique غير متصل
مشرف سابق
 
الصورة الرمزية Unique
افتراضي رد: CS490 Mock Exam Questions Discussion


الفقرة السابقة كانت فقرة 28 مش 27 .

اقتباس:
المشاركة الأصلية كتبت بواسطة حمني الرياض مشاهدة المشاركة
بيض الله وجهك على الشرح الرائع ,,, اللي ياليت اتكمله وتشرحين الاسئلة 21 , 22 من الموك
الله يسلمك و يحفظك.
بإذن الله حطلع عليهم و أحاول أشرحهم.
بقى فقرة وحدة في هذا السؤال.

اقتباس:
المشاركة الأصلية كتبت بواسطة the sun shine مشاهدة المشاركة
جهد رااااائع .. جزاكي الله خير

عقبال ما تبشرينا بالa يارب

تابعي ونحن سنتابع معاكي
تسلمين عزيزتي، الله يخليك ^^
ياريت لو فيه أي ملاحظة أو أي سؤال تشاركوا فيه، لأن هالشيء بيساعدكم أن ترسخ المعلومة.

بالتوفيق للجميع.
Unique غير متصل   رد مع اقتباس
قديم 19-01-2011, 06:40 AM   #17
Unique Unique غير متصل
مشرف سابق
 
الصورة الرمزية Unique
افتراضي رد: CS490 Mock Exam Questions Discussion


اقتباس:
Write an SQL query to list all IDs and De s c r i p t ion of merchandise items whose quantity on Hand is more than twice the average quantity on hand for all merchandise items in the same category.
1. قائمة الأعمدة المطلوبة:
Merchandise.ItemID
Merchandise.De s c r i p t ion
Merchandise.QuantityOnHand

كل الأعمدة من نفس الجدول، ما نحتاج ربط و لا نحتاج نكتب اسم الجدول مع اسم الأعمدة، خلاص معروف وين مكانهم.

طيب، الشروط:
merchandise items whose quantity on Hand is more than twice the average quantity on hand for all merchandise items in the same category.

طيب، خلينا نشتغل على الشروط، فيه هنا عمليات حسابية:
قال لي يبغى: Twice the average، يعني بجيب Average و بضرب في 2، أوكي؟
معدل مين طيب؟ معدل QuantityOnHand
بكتب أيش بالضبط؟ حبه حبه:
يبغى من جدول Merchandise الرقم و الوصف لكل منتج عنده الـ QuantityOnHand تساوي ضعفي معدل الـ QuantityOnHand.
بكتب الطرف الأول من العملية:
Select ItemID, De s c r i p t ion
From Merchandise

زين هذي وحدة، الي بعدها:
Where QuantityOnHand > 2*AVG(QuantityOnHand)
كذه ما ينفع الكلام، ليه؟ لأن علمية avg بتم على مستوى الصفوف مش على العمود كله، يعني بحتاج شيء يدخلني على القيم الي بالصفوف عشان أطلع المعدل، كيف بسويها؟
عندي جملة select هذي بتأشر لي على العمود و بتعرض القيم صف صف، بجي استخدمها، وش بسوي:
بكل بساطة حضيفها كـ sub-query:
Where QuantityOnHand > 2*(Select AVG(QuantityOnHand)
From Merchandise

حلو، الشرط الأخير: in the same category
اها... يعني لما الكتيجوري بيحمل نفس القيمة؟ يعني كذه؟
Where Category = Category)
ما تلاحظوا أننا مو موضحين للبرنامج أي كتيجوري نقصد؟ أي جدول؟

يعني الحين أنا سويت جملتين إستعلام، كلهم على نفس الجدول بس هنا تعاملت مع الجدول كأنه جدول ثاني،
بقارن بين قيم من نفس الجدول... يعني بحتاج شيء يوضح أي الجدول هو الي أقصده... بستخدم حل بسيط هو Alias

Alias يعني بعطي أكثر من اسم لنفس الأوبجكت، مثلاً عشان تقرب الصورة:
عندنا على أجهزة Mac الي جرب يشتغل عليهم، لما تجي تسوي shortcut لملف معين بيسميه Alias،
يعني كأنك جاي تسوي طريقة ثانية للوصول لنفس الأوبجكت، أوكي؟
طبعاً الخيار لك في تسمية هذا الـ Alias، مو ضروري يكون نفس الإسم الأصلي ولا حتى مقارب له،
ولكن من باب التوضيح بتختار اسم يرمز لفايدة هذا الـ alias. حلو؟


نرجع هنا، كيف بنعطي تسمية مختلفة للجداول؟ زي ما نعمل مع الأعمدة الوهمية( أو بالأصح اسمها أعمدة الـ aggregation
مجرد بكتب الإسم جنب العمود الي بغير اسمه، و لكن هنا عل مستوى الجدول فحكتب الإسم علي طول بعد اسم الجدول بهذي الطريقة:

Select ItemID, De s c r i p t ion
From Merchandise Merchandise1
Where QuantityOnHand > 2*(Select AVG(QuantityOnHand)
From Merchandise Merchandise2
Where Merchandise1.Category = Merchandise2.Category)


و هذا حل آخر فقرات سؤال السيكوال الي بملف الموك.
Unique غير متصل   رد مع اقتباس
قديم 19-01-2011, 07:16 AM   #18
Unique Unique غير متصل
مشرف سابق
 
الصورة الرمزية Unique
افتراضي رد: CS490 Mock Exam Questions Discussion


Q20
اقتباس:
Give a simple class diagram for a database that records which colors are used by which artists in which paintings. Each Painting is painted by exactly one artist, and must have at least one color. A color may be used in no paintings at all or in many paintings. Artist’s information may be stored in the database without having painted any paintings yet, but may have any number of paintings in the database. Show all classes, multiplicities (using min-max notation) and all associations.
المطلوب كلاس ديجرام، وش يتكون منه الكلاس ديجرام؟
كلاسات، علاقات بينهم و نوع العلاقات.

بمسك السؤال و أحط خط تحت الأشياء الي ممكن ترمز لكلاس ( الكلاس بيكون اسم الجدول في الداتابيس).
a database that records which colors are used by which artists in which paintings.
هذا هم، عندي 3 أشياء: Artist, Color, Painting
برسم 3 مربعات و بكتب داخلهم اسم كل كلاس.

نجي للربط بينهم، بحدد كل العلاقات الي يتطرق لها السؤال:
Give a simple class diagram for a database that records which colors are used by which artists in which paintings.
هذا المقطع يقول لي أن الألوان تستخدم بواسطة الرسامين في رسم اللوحات، كيف برتب الكلاسات؟
بقرأ العلاقات و منها بعرف:
الألوان تستخدم في اللوحات، الرسامين يرسمون اللوحات، فبالتالي:
اللوحات مرتبطين بالرسامين و بالألوان، يعني حيكونوا هم الرابط الي يوصل بين الألوان و الرسامين.
الألوان------ اللوحات--------الرسامين

بعد، بنطلع نوع العلاقة:
Each Painting is painted by exactly one artist,
and must have at least one color.
A color may be used in no paintings at all or in many paintings.
Artist’s information may be stored in the database without having painted any paintings yet, but may have any number of paintings in the database.

كل لوحة ترسم بواسطة رسام واحد فقط: ----------> One عند كلاس الرسامين.
اللوحة تحتوي على لون واحد على الأقل: -----------> 1...Many عند كلاس الألوان.
اللون ممكن يستخدم في عدة لوحات و ممكن ما يستخدم في أي لوحة: --------> 0...Many عند كلاس اللوحات.
معلومات الرسام ممكن تتخزن في الداتابيس حتى ولو ما رسم أي لوحة مادام عنده لوحات مخزنة في الداتابيس. ------> 0...Many عند كلاس اللوحات.

نرتبهم:
Artists(One) ----------- (0...Many)Paintings
Paintings(0...Many) ----------- (1...Many) Colors

و هذي صورة الكلاس ديجرام النهائية:
الصور المرفقة
نوع الملف: jpg q20.jpg‏ (7.8 كيلوبايت, المشاهدات 328)
Unique غير متصل   رد مع اقتباس
قديم 19-01-2011, 07:42 AM   #19
الملثم الملثم غير متصل
طــالب
 
الصورة الرمزية الملثم

 











افتراضي رد: CS490 Mock Exam Questions Discussion


لله يجزاك عنا كل خير ..واتمنى لك التوفيق والنجاح

لو سمحتي سؤال رقم 6 ما فهمته ممكن تشرحينه
الملثم غير متصل   رد مع اقتباس
قديم 19-01-2011, 08:31 AM   #20
Unique Unique غير متصل
مشرف سابق
 
الصورة الرمزية Unique
افتراضي رد: CS490 Mock Exam Questions Discussion


Q21: The following sample class list is given to University teachers:

Develop a set of 3NF database tables of the above form, in four steps:
Step 1. an un-normalized table
Step 2. 1NF tables
Step 3. 2NF tables
Step 4. 3NF tables.

1. حنستخرج الجداول، هنا عادي ماحد بيحاسبك لو جداولك مو بصورتها الصحيحة، هو طالب منك مجرد تستخرج بيانات.
كيف نستخرجها؟ بنمسك الأسماء الي بترمز لأشياء احتاج أخزنها و بعددها مجرد تعداد:
كود:
ClassList (CourseNo, DeptCode, CourseTitle, DeptName, TeacherID, TeacherName, (StudentID, StudentName
2. NF1: في هذي الخطوة حنتخلص من المجموعات المتكررة، متكررة كيف؟
لو جيت أخزن معلومات في جدول زي هذا بيصير تكرار بيانات، مثلاً:
رقم الكورس بيتكرر عند أكثر من طالب واحد، معاه بتكرر اسم الكورس و رقم القسم تبعه...

لما يكون فيه تكرار بتخلص منه بأن افصل البيانات في جدولين و احط مفتاح مميز يضمن لي أن البيانات ما تتكرر،
و طبعاً بربط الجدولين بالمفتاح الأصلي PK في الجدول الأساسي، بيصير متكرر في الجدولين.

المشكلة في الأعمدة الي تخص الطلاب، إذاً بنشئ جدول للطلاب و أنقل فيه معلوماتهم:
كود:
Course(CourseNo, DepartmentCode, CourseName, TeacherID, TeacherName)
Student(StudentID, CourseNo, DepartmentCode, DepartmentName, StudentName)
3. 2NF: في هذي الخطوة بتأكد بأن كل الأعمدة في الجدول الواحد تعتمد على المفتاح المميز PK ككل و ليس جزء منه،
هذي طبعاً بتحصل لما المفتاح يكون composite يعني مركب من عدة أعمدة، لو ماعندي مفتاح مركب خلاص بنتقل للمرحلة التالية علي طول.

نجي نختبر الأعمدة في كل جدول:
كود:
Course(CourseNo, DepartmentCode, DepartmentName, CourseName, TeacherID, TeacherName)
هل اسم الكورس معتمد على رقم الكورس و رقم القسم؟ يعني عشان أوصل لإسم الكورس هل احتاج اعرف المعلومتين ولا وحدة منهم تكفي؟
رقم الكورس يكفي.. ما احتاج رقم القسم هنا.

طيب اسم الأستاذ و رقمه، معتمدين على العمودين ولا لا؟ أنا أقدر أعرف اسم الأستاذ من رقم الكورس.. ما احتاج رقم القسم في هذي،
خلاص.. معناها DepartmentCode لازم تطلع في جدول يخصها و بتاخذ معها توابعها الي هو DepartmentName.
طيب هل احتاج رقم القسم في شيد في هذا الجدول؟ هل فيه أي عمود يحتاجه؟؟ لا ابد ماله داعي هنا.. خلص يطلع برى بكرامته.

بضيف له جدول:
كود:
Department(DepartmentCode, DepartmentName)
برضو بشيك على جدول الطلاب:
كود:
Student(StudentID, CourseNo, DepartmentCode, StudentName)
اسم الطلاب بيعتمد على أيش هنا؟ علي رقم الطالب فقط.. إذاً بطلع اسم الطالب في جدول جديد:
كود:
Students (StudentID, StudentName)
هل احتاج رقم الطالب في الجدول الأساسي؟ ايوا! لأن ابغى آعرض مجموعة الطلاب الي بيدرسوا نفس الكورس، اها اجل خليه له نسخة عشان نقدر نربط بين الجدولين.

بيطلع معاي 4 جداول:
كود:
Course(CourseNo, CourseName, TeacherID, TeacherName)
Department(DepartmentCode, DepartmentName)
Student(StudentID, CourseNo, DepartmentCode)
Students (StudentID, StudentName)
4. NF3: في هذي الخطوة بتأكد بأن الأعمدة في الجدول الواحد تعتمد علي المفتاح الرئيسي و لا شيء غير المفتاح الرئيسي، كيف؟
بعض الأعمدة ممكن استخرجها من عمود حاله حالها، مش مفتاح مميز ولا شيء، هذي ممكن تسبب لي تكرار في البيانات و بتاخذ مساحة،
غير كذه ممكن لو حذفت صف، تنحذف معه معلومات أنا بحاجتها!

نجي نختبر الجداول:
كود:
Course(CourseNo, CourseName, TeacherID, TeacherName)
هل البيانات هنا كلها معتمدة إعتماد كلي على المفتاح المميز؟
اسم الكورس؟ ايوا معتمد على رقم الكورس إعتماد تام.
طيب و رقم الأستاذ؟ ايوا لكل كورس استاذ يخصه...
و اسم الأستاذ؟ اممممم... معتمد علي رقم الأستاذ أكثر مش على رقم الكورس... ممكن كورس واحد له عدة شعب و له عدة أساتذة.
اها إذن الأستاذ مع إحترامنا له لازم يطلع في جدول خاص فيه، بنضيف جدول و نربطه بالجدول الأساسي بواسطة العمود المميز أو PK.
كود:
Courses (CourseNo, CourseName, TeacherID)
Teachers (TeacherID, TeacherName
)

الي بعده، جدول الأقسام:
كود:
Department(DepartmentCode, DepartmentName)
مافيه شيء، قسم و رقم.. يعني أوكي.

الي بعده:
كود:
Student(StudentID, CourseNo, DepartmentCode)
مافيه مشاكل، كلهم مفاتيح و ضامنين ما تتكرر المعلومات.

التالي:
كود:
Students (StudentID, StudentName)
اسم و رقم، مافيه مشاكل.

خلاص برتب جداولي:
كود:
Courses (CourseNo, CourseName, TeacherID)
Teachers (TeacherID, TeacherName)
Department(DepartmentCode, DepartmentName)
Student(StudentID, CourseNo, DepartmentCode)
Students (StudentID, StudentName)
و هذا حل السؤال رقم 21.
الصور المرفقة
نوع الملف: png Q21.png‏ (34.2 كيلوبايت, المشاهدات 334)
Unique غير متصل   رد مع اقتباس
قديم 19-01-2011, 11:29 AM   #21
عبدالرحمن4 عبدالرحمن4 غير متصل
طــالب

 










افتراضي رد: CS490 Mock Exam Questions Discussion


يا ريت تكملي 22 - 23 - 24
عبدالرحمن4 غير متصل   رد مع اقتباس
قديم 19-01-2011, 12:04 PM   #22
حمني الرياض حمني الرياض غير متصل
طالب جديد

 










افتراضي رد: CS490 Mock Exam Questions Discussion


الله يعطيك العافيه Unigue وما ينقال فيك الا :

من الفهم خطت بذوقاً فريدي
باسلوب راقي فيه قمة ادبها

تستاهل التتويج عبر القصيدي
بنت الرجال اللي يشرف نسبها

هي بنت شيخاً وسط ربعه عقيدي
شيخاً فناجيل المراجل شربها

شيخاً على نهج المراجل عنيدي
له رايتن فالمجد باسه نصبها

وهي دانةٍ لوجيت اكرر واعيدي
غالي ثمنها رابحاً من كسبها


,,,
حمني الرياض غير متصل   رد مع اقتباس
قديم 19-01-2011, 12:57 PM   #23
دنيتي تالا دنيتي تالا غير متصل
طالب جديد
 
الصورة الرمزية دنيتي تالا

 











افتراضي رد: CS490 Mock Exam Questions Discussion


اقتباس:
المشاركة الأصلية كتبت بواسطة Unique مشاهدة المشاركة
يالله الي بعده..

قائمة الطلبات << قاعدين في مطعم على غفلة
خلينا نتعود نكتب الطلبات و نقرنها بالجدول الي هي موجوده فيه، بيسهل علينا الشغل:
Animal. Category
Minimum, Average and Maximum Animal.ListPrice

قائمة الشروط:
Animal.Gender = 'Male'
Animal.Category must hold more than 1 animal, so we'll use: > 1

أوكيه، واضح لهنا؟ أتوقع واضح.. كل شيء جبناه من السؤال اللهم رتبناهم شوي.

أول طلب عمود عادي من جدول Animal، ما يحتاج أي شيء، مجرد بكتب اسمه زي ماهو:
SELECT Animal. Category

الطلب التالي: عندي 3 عمليات حسابية، ابغى معدل و مين و ماكس ، هذول سهلين ما بحتاج أتعب نفسي معهم،
على طول بستخدم فنكشن: بكتب أسم الفنكشن و العمود الي بطبق عليه الفنكشن:
Min(Animal.ListPrice) هذي تعطيني المين.
Max(Animal.ListPrice) و هذا للماكس.
Avg(Animal.ListPrice) هذي للمعدل.
ما ننسى الأقواس.

طيب هذول الثلاثة أيش؟ هذول أعمدة وهمية مش موجودين بالجدول أصلاً، أنا بنفذ عملية حسابية و أبغى نمكان أحفظ فيه الناتج، أوكي؟
يعني بحتاج أعطي مسمى لكل عمود عشان يوضح لي كل قيمة وين مفروض تتخزن، بيسهل علي تتبع النتايج:
Min(Animal.ListPrice) AS MinOfListPrice
Max(Animal.ListPrice) AS MaxOfListPrice
Avg(Animal.ListPrice) AS AvgOfListPrice
بكذه أكون كتبت الطلبات الثلاثة بصيغتها الأخيرة، يعني بعمل كوبي و بيست في جملة الـ SELECT، خلاص.
ب
كتبهم و بحط فواصل بين كل عمود أوكيه:
SELECT Animal. Category،
Min(Animal.ListPrice) AS MinOfListPrice،
Max(Animal.ListPrice) AS MaxOfListPrice،
Avg(Animal.ListPrice) AS AvgOfListPrice،

الي بعده:
من وين بعمل Select؟ الأعمدة الي عندي كلهم من جدول Animal بروح أكتب: From Animal، خلاص؟

بعدين تجي الشروط... عندي شرطين:
Animal.Gender = 'Male'
هذا شرط واضح و جاهز للإستخدام مايبي له شيء، قال يبغى النتايج للذكور فقط، بقول:
Where Animal.Gender = 'Male'

هذا شرط، طيب الثاني:
Animal.Category must hold more than 1 animal, so we'll use: > 1
نجي نترجمها:
الكتاجوري مفروض يحتوي على أكثر من واحد.. كيف يعني؟
هو محتوى العمود Category أيش؟ بيحتوي على الصنف، هل هو Fish or Dog or Cat... الخ
فهنا الي ابغاه هو حساب للقيم الي ترتبط بكل صنف من الحيوانات.
طيب محتوى العمود كتاجوري متكرر بالجدول.. كيف بجيبهم كلهم؟
بستخدم key word و هي Group By. هذي أيش بتسوي؟ بترتب لي البيانات بحسب الصنف الي بحدده، كأني أعمل جروب لكل صنف.
بقول:
Group By Animal.Category

لسه ما خلصنا، فيه شرط يقول لازم يكون العدد في المجموعة الوحدة أكثر من 1، طيب
هنا فيه key word أقدر استخدمها و تكون بمثابة جملة شرط، يعني بتحدد لي كيف بعرض النتايج الي بترجعها جملة Group by.

Having ترتبط بـ Group by و تحدد طريقة عرض نتايجها، من بعد كلمة Having بكتب الشرط الي ابغى أضيفه على المجموعات.

هنا ابغى عدد الحيوانات في المجموعة الوحدة يكون أكثر من واحد... كيف أجيبها؟
بمسك جدول Animal و بشوف أيش العمود الي بقدر أستخدمه كعداد بحيث يكون موجود عند كل الصفوف أو كل الحيوانات و ماتكون قيمته مكررة؟
هذي صفات الـ Primary key صح؟ خلاص بمسك الـ PK هنا و هو العمود AnimalID و باستخدمه كعداد.

بدال ما ادوخ نفسي و اكتب كود يعد و يقارن و سالفه... بستخدم فنكشن اسمها count() هذي فنكشن جاهزة بتشتغل كعداد، بقول:
Group By Animal.Category
Having count(Animal.AnimalID) > 1
هذا الكلام معناه أيش؟ معناه:
أعرض الحيوانات مرتبين على شكل مجموعات بحسب الصنف فقط إذا كان عدد الحيوانات الي تنتمي لصنف معين أكثر من واحد.

نرتب الجملة على بعضها:
SELECT Animal.Category,
Min(Animal.ListPrice) AS MinOfListPrice,
Avg(Animal.ListPrice) AS AvgOfListPrice,
Max(Animal.ListPrice) AS MaxOfListPrice
FROM Animal
WHERE gender = 'Male'
GROUP BY Animal.Category
HAVING count(AnimalID) > 1;
ممكن احد يشرح ليه ما كتبناgender في select ؟ في جواب 26 كتبناgender في select ؟
دنيتي تالا غير متصل   رد مع اقتباس
قديم 19-01-2011, 01:06 PM   #24
دنيتي تالا دنيتي تالا غير متصل
طالب جديد
 
الصورة الرمزية دنيتي تالا

 











افتراضي رد: CS490 Mock Exam Questions Discussion


ممكن توضيح في جواب 25 SELECT SaleID, ItemID من غيرSELECT Animal
وفي جواب 26 كتبناSELECT Animal.Category
دنيتي تالا غير متصل   رد مع اقتباس
قديم 19-01-2011, 01:48 PM   #25
الملثم الملثم غير متصل
طــالب
 
الصورة الرمزية الملثم

 











افتراضي رد: CS490 Mock Exam Questions Discussion


اقتباس:
26. For all Male Animals sold, list the animal’s Id, name, age, sale date, the sale price, List price, and the percentage of sale price to list price.

أول خطوة قلنا نشوف الطلبات أيش هي:
list the animal’s Id,
name,
age,
sale date,
List price,
percentage of sale price to list price


في هذا السوال ليه تخطيتي

sale price

ارجوا الاجابه
الملثم غير متصل   رد مع اقتباس
قديم 19-01-2011, 01:53 PM   #26
عبدالرحمن4 عبدالرحمن4 غير متصل
طــالب

 










افتراضي رد: CS490 Mock Exam Questions Discussion


* طريقة اخرى لحل 21

- الاخت Unique شرحت الحل بالطريقة الرسمية ,,,, بس هناك طريقة اخرى تنفع


ClassList (CourseNo, DeptCode, CourseTitle, DeptName, TeacherID, TeacherName, (StudentID, StudentName

1- نرتب كل الاشياء التابعة لبعض "ذات علاقة" في جدول مثلا + كل Id-code-No يكون كي :
Students (StudentID, StudentName)

2- يصبح عندنا

Courses (CourseNo, CourseName )
Teachers (TeacherID, TeacherName)
Department(DepartmentCode, DepartmentName)
Students (StudentID, StudentName)

2- كده اخذت معظم الدرجة باقي شغل بسيط

هل النظام لدينا مفيد ؟ طبعا لا لأنك اذا استعلمت بواسطة StudentID لن يظهر سوى اسم الطالب فقط.

إذا نحن بحاجة لايجاد شيء يربط " الطالب - الكورس - الادارة " , وهو جدول جديد

نضع جدول جديد يكون فيه الكي فقط للاشياء التي نريد ربطها ببعض.

Student(StudentID, CourseNo, DepartmentCode)

3- مبروك قد حصلت على 90% من الدرجة

4- لم يبقى إلا علاقة بسيطة بين الكورس والمدرس "ما معقول تعرف الكورس وما تعرف مين يدرسه

Courses (CourseNo, CourseName, TeacherID)

5- اذا الحل كاملا

Courses (CourseNo, CourseName, TeacherID)
Teachers (TeacherID, TeacherName)
Department(DepartmentCode, DepartmentName)
Student(StudentID, CourseNo, DepartmentCode)
Students (StudentID, StudentName)

وإن شاء الله الكل ناجح وموفق



التعديل الأخير تم بواسطة عبدالرحمن4 ; 19-01-2011 الساعة 01:57 PM
عبدالرحمن4 غير متصل   رد مع اقتباس
قديم 19-01-2011, 02:17 PM   #27
Unique Unique غير متصل
مشرف سابق
 
الصورة الرمزية Unique
افتراضي رد: CS490 Mock Exam Questions Discussion


اقتباس:
المشاركة الأصلية كتبت بواسطة الملثم مشاهدة المشاركة
لله يجزاك عنا كل خير ..واتمنى لك التوفيق والنجاح

لو سمحتي سؤال رقم 6 ما فهمته ممكن تشرحينه
الله يخليك، تسلم.
Q6:
اقتباس:
In the following client-partner assignment database schema, Each partner can be assigned many clients and each client can be assigned many partners. What would be the most suitable new design for this database if this condition is changed so that each partner can now only have one client?
Client(ClientID, Name, Address, BusinessType)
Partner(PartnerID, Name, Speciality, Office, Phone)
PartnerAssignment(PartnerID, ClientID, DateAcquired)
هذا السؤال معتمد على معرفتك بالنورمليزيشن.
أول شيء بحتاج أفهم السيناريوا عشان أعرف إذا كان الجداول الي هو مسويها صحيحة أو فيها مشكلة و أيش المشكلة.
In the following client-partner assignment database schema,
عندي قاعدة بيانات تعتمد على علاقة بين عميل-شريك
Each partner can be assigned many clients and each client can be assigned many partners.
أيش نوع العلاقة هنا؟
كل شريك ممكن يتعامل مع عدة عملاء ---- يعني One to Many
و كل عميل ممكن يتعامل مع عدد من الشركاء ---- يعني One to Many

What would be the most suitable new design for this database if this condition is changed so that each partner can now only have one client?
يقول لو تغير الشرط المذكور إلى:
كل شريك يمكن له أن يتعامل مع عميل واحد فقط ---- يعني صارت العلاقة One to One

في هالحالة، هل قائمة الجداول صحيحة؟ و إذا لا ، ليش لا؟
كود:
Client(ClientID, Name, Address, BusinessType)
Partner(PartnerID, Name, Speciality, Office, Phone)
PartnerAssignment(PartnerID, ClientID, DateAcquired)
الجداول فيهم مشكلة، و هي:
في جدول PartnerAssignment بيصير عندي DateAcquired واحد فقط لكل ClientID،
و لكل ClientID فيه DateAcquired واحد فقط.
يعني هنا فيه hidden dependency بين العميل و اليوم الي تم فيه تتعينه أو التعامل معه.

هنا أيش المشكلة؟
بنلاحظ أن DateAcquired معتمد على العمود ClientID و على PartnerID، يعني صح هو في مرحلة 3NF لكن:
لو جيت حذفت صف "Record" من هذا الجدول بخسر معلومات، ليش؟

لأن إذا أنحذف صف معناها بخسر معلومات عن Client Date Acquired, بتروح معلومات تخص العميل و مافيه شيء مخزن لي عمود DateAcquired مع Client إلا هذا الجدول...
هذي المشكلة تعتبر واحد من مشاكل BNCF لأن هذي المرحلة تحاول تتخلص من العلاقات الخفية بين الأعمدة الي هي: hidden dependency.

طيب، و أيش كمان، فيه مشاكل ثانية؟ ايوا فيه..
بنشوف العلاقة بين أعمدة الجداول الي فيها composite key، يعني مفتاح مركب من أكثر من قيمة.
PartnerAssignment(PartnerID, ClientID, DateAcquired)
العمود Client عنده أكثر من Partner لكل، كيف:

هو قال أن العملاء فيهم يتعاملوا مع أكثر من شريك، لكن الشريك الواحد فيه يتعامل مع عميل واحد فقط.
يعني العميل بإمكانه يتعامل مع P1 , P2, P3 في وقت واحد.
يعني العميل بيكون له عدة DateAcquired، لأنها بترتبط بكل صف، راح تتكرر متي ما تكرر رقم العميل.
فالـ ClientID الواحد بيكون له كذا DateAcquired.

لو دققنا فيها، بتلاحظ أن DateAcquired و PartnerID مافيه بينهم علاقة مباشرة، يعني هي الأصح كذه:
Client has many DatesAcquired
Client has many Partners
DateAcquired مو مرتبط بـ Partner، لكنه مرتبط بالـ Client.

فهنا علاقتين و الجدول بيحاول يدمجهم في علاقة وحدة و المفترض أنو يوزعهم في جداول ترتبهم:
بحيث يكون كل عمود ينتمي لطرف معين بيدخل في جدول خاص فيه، عشان ما يصير فيه تكرار معلومات بالجدول الواحد.
يعني ما بحتاج اكتب لكل عميل تاريخ التعيين أكثر من مرة، خلاص بحط المعلومة في جدول مستقل يضمن عدم تكرارها.

فالحل بيكون هو: A. Is an issue with BCNF and 4NF

التعديل الأخير تم بواسطة Unique ; 19-01-2011 الساعة 02:19 PM
Unique غير متصل   رد مع اقتباس
قديم 19-01-2011, 02:34 PM   #28
Unique Unique غير متصل
مشرف سابق
 
الصورة الرمزية Unique
افتراضي رد: CS490 Mock Exam Questions Discussion


اقتباس:
المشاركة الأصلية كتبت بواسطة عبدالرحمن4 مشاهدة المشاركة
يا ريت تكملي 22 - 23 - 24
إن شاء الله.
اقتباس:
المشاركة الأصلية كتبت بواسطة حمني الرياض مشاهدة المشاركة
الله يعطيك العافيه Unigue وما ينقال فيك الا :

من الفهم خطت بذوقاً فريدي
باسلوب راقي فيه قمة ادبها

تستاهل التتويج عبر القصيدي
بنت الرجال اللي يشرف نسبها

هي بنت شيخاً وسط ربعه عقيدي
شيخاً فناجيل المراجل شربها

شيخاً على نهج المراجل عنيدي
له رايتن فالمجد باسه نصبها

وهي دانةٍ لوجيت اكرر واعيدي
غالي ثمنها رابحاً من كسبها


,,,
الله يخليك أخوي حمني، أخجلتم تواضعنا والله، ما تقصر.
أتمنى أكون قدمت ولو شيء بسيط يخدمكم بالمادة،
كان ودي أشارك من بداية الترم بس مسجله 19 ساعة و ماكان فيه نفس .

شكراً مرة ثانية و الله يكتب لنا جميعاً التوفيق يا رب.
اقتباس:
المشاركة الأصلية كتبت بواسطة دنيتي تالا مشاهدة المشاركة
ممكن توضيح في جواب 25 SELECT SaleID, ItemID من غيرSELECT Animal
وفي جواب 26 كتبناSELECT Animal.Category
طيب سؤال حلو:
إذا كنا بنتعامل مع جدول واحد، خلاص عادي مافيه مشكلة لو ما ذكرت أسم الجدول الموجود فيه العمود لأن ما مابتعامل مع غيره.
و لكن، إذا كنا نتعامل مع عدة جداول ، يعني لما نحتاج نعمل Join فلازم أذكر اسم الجدول مع اسم العمود، ليش؟
لأن احياناً يتكرر اسم العمود في عدة جداول، ممكن جدولين فيهم عمود باسم Name ،
فأنا بحدد الجدول عشان السيستم بيعرف اي عمود أقصد بالضبط، و يرجع لي نتائج صحيحة.

اقتباس:
المشاركة الأصلية كتبت بواسطة الملثم مشاهدة المشاركة
اقتباس:
26. For all Male Animals sold, list the animal’s Id, name, age, sale date, the sale price, List price, and the percentage of sale price to list price.

أول خطوة قلنا نشوف الطلبات أيش هي:
list the animal’s Id,
name,
age,
sale date,
List price,
percentage of sale price to list price


في هذا السوال ليه تخطيتي

sale price

ارجوا الاجابه
اها، سقط سهواً من قائمة الطلبات.. بس هو موجود بالحل و بالشرح:
كود:
SELECT Animal.AnimalID, Name, (Now-DateBorn) AS Age, animal.gender,
 sale.SaleDate, saleAnimal.SalePrice,
Animal.ListPrice, 
100*SaleAnimal.SalePrice/Animal.ListPrice AS PercentSaleToList
FROM Sale INNER JOIN 
(Animal INNER JOIN SaleAnimal ON Animal.AnimalID = SaleAnimal.AnimalID) 
ON Sale.SaleID = SaleAnimal.SaleID
WHERE Animal.gender = 'male';
Unique غير متصل   رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع


الساعة الآن 12:51 AM.


Powered by vBulletin® Version 3.8.1, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd. TranZ By Almuhajir
جميع المواضيع والمشاركات تعبر عن وجهة نظر أصحابها
ولا تعبر باي شكل من الاشكال عن وجهة نظر منتديات AOUA
تصميم وتطوير : التكنولوجيا الماسية