Professional Documents
Culture Documents
Relational Algebra
Relational Algebra
2- Table=Relation
a. Table degree (# of columns = fields = attributes)
b. Table cardinality (# of rows = records = tuples)
c. Field’s domain = possible values for a field = datatype of a field
d. Database instance
اللي فيهcolumns ألي جدول هي كم عدد الـdegree الـ/ ... Employee أوStudent مثالTable هي نفسها الـRelation الـ
صف500 بالجدول لو كان فيrecords هي كم عدد الصفوف أو الـcardinality الـ/ degree = 2 يعني لو كان فيه عامودين الـ
/ int , varchar ممكن يكونAttributes للـdatatype هي عبارة عن الـdomain الـ/ 500 تساويcardinality بتكون الـ
منها في وقت معينsample من الداتابيس يعني باخدview هي لما أعملdatabase instance الـ
3- ER diagram
a. Entity (Strong & Weak)
b. Attributes (single, composite, derived, multi-valued)
c. Keys (candidate, super, primary, secondary, surrogate )
d. Relationships
- Degree (unary, binary, ternary, n-ary)
- Cardinality (1-1, 1-M, M-M)
- Participation (total (full), partial (optional))
- Attributes on relationships
- Identifying relationship (connecting strong entity to weak entity)
الـ/ 2 موجود جدول بميز أنواعهم بصفحةattributes الـ/ Strong , week هي أي اشي يمكن وصفه وإلها نوعينentity الـ
اللي هي نسبةcardinality هي كم عدد الجداول اللي مرتبطة بهاي العالقة والـdegree الـ: الها خصائصrelationships
المشاركة بين الجداول يعني لو أخدنا العالقة بين األقسام والموظفين بنحكي أكتر من موظف بشتغل بقسم واحد بس الموظف ما بكون
هي طبيعة المشاركة بالمثال اللي قبل كلparticipation الـ/ من جهة الموظفينm والـ1:m تابع ألكتر من قسم وهون بتكون
att ه يAttributes on relationships الـ/ من الجهتينtotal األقسام بشتغل فيها موظفين وكل الموظفين تابعين ألقسام فبتكون
ه الىل ربتبط نIdentifying relationship الـ/ ـجدولي الىل ربتبطهم
strong بي ن وإلها عالقة بالrelationship بتكون موجودة عىل الـ
ي ي ي
. week entity وentity
4- Mapping ER diagram into relations (tabular representation)
a. Mapping strong and weak entities
b. Mapping multivalued attributes
c. Mapping relationships (1-1, 1-M, M-M)
week entity لجدول الـcomposite PK عبارة عنDiscriminator والـFK وبكون الـweek وبنحطه بجدول الـstrong اللي بالـPK بننقل الـ
composite PK تبع الجدول اللي كانت موجوده فيه وبصيروا التنين مع بعضprimary key بحطها بـجدول جديد وبنقل معها الـmultivalue الـ/
جدول وبنحطهم مع تبع كلpk وبناخد الـrelationship بنعمل جدول جديد باسم الـm:m والـm لعند الـ1 من جهة الـpk بناخد الـm:1 بحالة الـ/
الجدول الجديد
5- EER diagram
a. Specialization/Generalization
b. Specialization constraints:
- Distinct & Overlapping
- Total and partial
c. Aggregation
d. Categorization (union)
e. Mapping specialization/generalization into relations
f. Mapping aggregation into relations
Composite Attribute LN وFN هي بقدر أقسمها ألجزاء أكتر مثل األسم بتقسم للـ
Name
FN LN
Derived Attribute ثانية مثل أنه اشتق العمرattribute هي اللي بتكون مشتقة من
Age
من تاريخ الميالد
Single Attribute الشخص ما بكون أله- مثل االسم.يأخذ قيمة واحدة دائ ًما ي
ID والـ-أكتر من اسم أكثر ID
Multivalue Attribute
يأخذ أكثر من قيمة مثل التلفون ممكن يكون اله أكثر من رقم واحد Phone
الىل ممكن نستنتجهم من الـ : ERD
بعض األشياء ي
ر ن ن
ه unary relationshipأو recursiveمعناها انه الـ empيف عالقة بينه وبي نفسه وبنقرأها بأكت من طريقة: -الـ Supervisionي
1) Employee can supervise another employee. 2) Employee is a supervisor for other employees.
3) An Employee can be supervisee by other employee.
ن
الموظفي عليهم مدراء. ن
الموظفي يكونو مدراء ومش كل الـ participationلهاي الـ relationshipحيكون partialألنه مش نضوري كل
ن
موظفي بس الموظف بكون عليه مدير واحد. الـ cardinalityحتكون m :1الموظف ممكن يكون مدير عىل عدة
مالحظة :لما بدي أعمل mappingللـ managesالمفروض اخد الـ pkمن عند الـ partialلعند الـ totalبس بهاي الحالة بقدر اعمل جدول جديد أحط
فيه الـ pkتبع الـ employeeوالـ departmentمع الـ . start-date
ه M:Mبس ليش حطينا M:Nألنه عدد الـ employeeمش نضوري يساوي عدد الـ . project
-الـ WORKS_ONي
-الـ DEPENDES_OFه Identifying relationshipألنها ربتبط strongمع weekالـ nameحطينه تحته خط مقطع ألنه ممكن يكون عندي ر
اكت من ي
ابن الهم نفس االسم كيف بنحل هاي المشكلة؟ لما نعمل mappingبننقل الـ pkتبع الـ employeeوبنحطه عند الـ dependentوهيك بصت strong
Data Modeling Using the EER
Terms for relationship between a superclass and any one of its subclasses:
- Superclass/subclass
- Supertype/subtype
- Class/subclass relationship
Type inheritance: Subclass entity inherits all attributes and relationships of superclass.
Specialization
Generalization
ليش بنستخدم super classو sub class؟
ممكن يكون عنا entityرئيسية زي الـ employeeوهدول الـموظفين الهم خصائص مشتركة وبتفرعو ألكتر من اشي بس ممكن كمان هاي التفرعات تتفرد
بخاصية لحالها فبتكون خصائصها هي المشتركة باإلضافة للخاصية اللي بتتفرد فيها.
لو أخدنا ً
مثال الـ Secretaryحيكونو الـ Attributeإلها عبارة عن:
-من األعلى لألسفل أو من العموم إلى الخصوص ) (Top-Downهيك أحنا بنعمل )(Specialization
مالحظة :سواء عملنا Generalizationأو Specializationالمحصلة وحدة بس بتفرق بأنه كيف بنينا الـ model
Constraints:
)(Partial / Total) (Overlap / Disjoint
Partial Total
يعني عادي الموظف يكون تابع ألكتر من subclass يعني الموظف بكون تابع لـ subclassواحد بمعنى
بمعنى أخر أنه في تقاطع بين الـ entitiesالموظف أخر أنه ما في تقاطع بين الـ entitiesالموظف يا
ممكن يكون Secretaryو Technicianمع بعض بكون Secretaryأو Technicianمستحيل يكون
التنين مع بعض
)Total: Every entity in the superclass must be a member of some subelass (double-edge
Specialization: Process of defining a set of subclasses of an entity type
▪ Defined on the basis of some distinguishing characteristic of the entities in the superclass
▪ Specific attributes
Generalization
▪ Reverse process of abstraction
▪ Generalization: Process of defining a generalized entity type from the given entity types
Disjointness constraint: Specifies that the subclasses of the specialization must be disjoint.
Total/Overlap
Total/Disjoint Total/Disjoint
Specialization hierarchy: Every subclass participates as a subclass in only one class/subclass relationship.
▪ Results in a tree structure or strict hierarchy
Specialization lattice: Subclass can be a subclass in more than one class/subclass relationship.
employee, student, staff مثل الـ/ واحدparent إلهson واحد فقط أو كلsuperclass يكون إلهsubclass يعني الـ:hierarchy الـ
student_assistant مثل الـ/ parent إله أكتر منson أو كلsuperclass إله أكنر منsubclass يعني الـ: lattice الـ
▪ Subclass represents a collection of objects that is a subset of the UNION of distinct entity types
فيعني ما فيtotal والـpartial ما في بينهم أشياء مشتركة وعادي بكون فيه الـsubclasses ؟ بنستخدمه لما يكون في عناunion ليش بنستخدم الـ
وهو أصال مش كتير مستخدمsubclasses غير بطبيعة الـgeneralization والـspecialization أختالف بينه وبين الـ
فهو طالب دراسات عليا في إله صفات بختلفgrad_student هو دكتور بالجامعة وإله صفات خاصة فيه أما بالنسبة للـfaculty هسا عنا الـ
بس ممكن هم التنين يعملو أبحاث فهاي شغلة اشتركو فيها فجمعناهمspecialization أوgeneralization فيها عن الدكتور فما بصير اعمللهم
.union وهاد هو استخدام الـinstructor_resarcher واحد وسميناهsuperclass التنتين مع بعض بـ
▪ Many specializations and subclasses can be defined to make the conceptual model accurate
▪ If subclass has few specific attributes and no specific relationships Can be merged into the superclass
مش مرتبطين بأيsubclasses قليلة جدا أو الـsubclasses اللي على الـattributes لو كان الـEER للـmapping لما نيجي نعمل الـ
subclasses بس وما بعمل للـsuperclass واحد للـtable هون بنعملrelationship
Aggregation and Association
Aggregation: Abstraction concept for building composite objects from their component objects
اللي3attrebut فصار عنا. حيتعينو الموظفينinterview للناس اللي مقدمين عليها ونتيجة هاي الـinterview وبتعملcompany عنا
جديدة وسميناهاrelationship بعدين عملنا3 متصل فيهاrelationship يعني الـternary إلهمdegree والـb موجودين بالرسمة
تانية مباشرة فالحل لهاي المشكلة أنه نتعامل مع الـrelationship بـrelationship بس ما بصير ترتبط الـc زي بالرسمةresults_in
aggregation وهاي هي فكرة الـd وحدة زي ما عملنا بالرسمةentity على أساس أنهمinterview والـjob_applicant والـcompany
أللهمmapping فيعني لما نعملm:m هيcardinality وكانت ناتجة عن العالقة اللي بالمربع ؟ ألنه الـd جدوال بالرسمة3 ليش طلع معنا
relationship باسم الـtable حنعمل
job_applicant ؟ ألنه وجودها معتمد عللى الشركة والـweek entity طلعتinterview ليش الـ
؟Generalization وSpecialization ليش بنعمل
Predicate defined subclasses: The subclass is defined through a predicate on the attributes of the superclass.
Attribute defined subclasses: The subclasses in the specialization are all defined by the same attribute of the
superclass.
User defined subclasses Membership in the subclasses is determined at the insertion operation level
Relation Schema:
Degree (STUDENT) = 7
A relation (or relation instance) r of the relation schema R(A1, A2, …, An), denoted by r(R), is a set of n-tuples
ti = <v1, v2, …, vn) where each value vi, 1 ≤ i ≤ n, is an element of dom(Ai) or a special null value
Basic Relational Algebra Operations: Is a collection of operators that are used to manipulate entire
relations. The result of each operation is a new relation which can be further manipulated.
. SQL وهي تعتبر مصدر للـSQL للـbackground ؟ عشان نفهم الـRelational Algebra ليش بنستخدم الـ
SELECT Operation
Selection- condition هاد الشرط اللي بحدد من خالله حيرجع الريكورد أو ال
is used to select a subset of the tuples in a relation that satisfy a selection condition.
وبيرجع منهم بس اللي حقق الشرط وهيrecord بكون فيها شرط على الـSelect الـ
) ألنه عشان أطبقه بحتاج لجدول واحد (هدول ركز عليهم الدكتورunary عبارة عن
وبنحط شرط أنها تساوي قيمة معينة أو تكون أكبر أو أصغر منهاAttribute بكون عنا
Find all students who are 20 years old or younger, and whose birthplace is the same as his/her
residence.
أو أقل باإلضافة إىل إنه المكان الىل انولدو فيه هو نفس مكان اإلقامة فالزم نعمل رش ن20 بده نطلع الطالب الىل عمرهم
طي زي أخر حالة ي ي
σ Age ≤ 20 and Birthplace = Residence(Students)
: select وبما أنه ما في شرط على األعمدة بنحط * بعدSQL Statement لـRelational Algebra تحويل الـ
) records (عدد الـ2 ؟cardinality شو الـ / ) columns (عدد الـ6 للجدول؟degree شو الـ
Commutativity of select:
σ city = “Irbid” AND GPA > 65 (STUDENT) or σ city = “Irbid” (σ GPA > 65 (STUDENT)
هي تبادلية يعني ما بفرق بأي شرط أبلش أول يعني مش مهم الترتيب زي عملية الجمع والضرب من وين ما أبلش نفس الناتجselect الـ
PROJECT Operation
Format: π attribute-list(R),
Semantics: Returns all tuples of relation R but for each tuple, only values under attribute-list are returned
unary وبيرجع بس القائمة اللي بحددله اياها وبرضه هايcolumn بكون فيها شرط على الـProject الـ
بشيل التكرار وبس بحط واحد منهمrecords لما يكون في تكرار بالـ:مالحظة
- Selects certain columns from the table and discards other columns.
π <attribute-list> (<relation-name>)
- The number of tuples of the result of project is less than or equal to the number of tuples in the original
relation. (It removes the duplicates)
lest اللي موجودين بالـattributes للجدول اللي طلع بالناتج هو عبارة عن عدد الـdegree الـ
بالجدول األًصلي أو أقل (بكون أقل بحالة وجودrecords فهي بتساوي عدد الـcardinality أما بالنسبة للـ
) records التكرار بالـ
Output
columns ألنه بس طلعنا الـ2 طلعتcardinality بالنسبة للـ2attribiuts اللي مكتوبة فيهاlist ألنه الـ2 طلعتdegree الـ
) هيك يعتبر ماJohan , 3.1( ) والتانيJohan , 3.2( لو مثال واحد كان. فشلناهrecord اللي بده اياهم طلع في تكرار بأحد الـ
في تكرار
يعني اللي برا جزء من اللي جواlist2 هي جزء منlist1 جوا بعض عشان تزبط الجملة الزم تكون2 project لما يكون عنا
. مش تبادلي يعني الترتيب مهمproject ومن هون بنعرف أنه الـlist1 والناتج حيكون
EX: Retrieve all student numbers and names who live in Amman.
STNO , ST-Name اللي همcolumns برا ما حيزبط ألنه باألول حيحدد الـcity = Amman لو أجينا هون بدنا نعكس وخلينا الشرط تبع الـ
. city للـcolumn وبعدين بس يجي يشوف إذا المدينة كانت عمان ما حيكون في
In complex queries, it becomes necessary to store intermediate results, therefore we should know how to
give names to relations and attributes.
Amman-students = σ city = “Amman” (STUDENT) وبنخزنهاsub result لما تصير الجملة كتير معقدة بنجزءها يعني بنعمل
relation واألشي المطلوب بنطبقه على هاي الـrelation بـ
Result = π STNO, ST-Name (Amman-Students) or
Ex: Find the name and GPA of all students who are 20 years old or younger and whose birthplace and
residence are the same.
RENAME Operation
Format: ρ S(R)
Select * from R AS S ;
Select A1 AS B1 , A2 AS B2 from R AS S;
Select A1 AS B1 , A2 AS B2 from R ;
Set Theoretic Operations
UNION, INTERSECTION, DIFFERENCE.
Two relations R(A1, A2, …, An) and S(B1, B2, …, Bm) are said to be union-compatible if:
Both R and S have the same number of attributes and the corresponding attributes have the same domain
union compatible يعني عشان أطبقهم بحتاج جدولين وتاني شرط أنهم يكونو هدول الجدولينBinary عبارة عن3 Operations هدول الـ
. المتقابلة الزم يكون متشابهattributes للـdatatype يعني الـdomain (عدد األعمدة) ونفس الـdegree يعني إلهم نفس الـ
∪ --- union
Format: R1 ∪ R2
∪ Output
ألنه بنشيل التكرار5 تساويcardinality ألحد الجداول أما الـdegree هو نفسه الـ3 للجدول الناتج تساويdegree الـ
- set difference
Format: R1 - R2
. R2 – R1 ناتجها غير عنR1 – R2 نفس الشروط اللي قبل بس هون بطلعلي الفرق بين الجدولين وهون بفرق الترتيب يعني
Output
-
INTERSECTION
. difference مشتقة من الـIntersection وعملية الـ. المشتركين بين الجدولينrecords برجع الـ
Union and Intersection are commutative operations:
R ∪ S = S ∪ R and R∩S=S∩R
Union and Intersection can be applied to any number of relations and both are associative:
R - S ≠ S - R in general.
Cartesian Product
Format: R1 X R2
Semantics: Returns every tuple that can be formed by concatenating a tuple in R1 with a tuple in R2
Binary operation, but the relations on which it is applied do not have to be union compatible.
وهو عبارة عن ضرب ديكارتي بياخد الصف. union compatible بس مش ضروري يكونوbinary عشان أطبقه بحتاج جدولين يعني
األول من الجدول األول وبضربه بكل الصفوف اللي بالجدول التاني وبعدين بياخد الصف التاني من الجدول األول وبيضربه بكل الصفوف اللي
. concatenation بيضربه يعني بيعمل بينهم..... بالجدول التاني وهيك
زي ما حكينا فوق أ خد الصف األول بالجدول وضربه بكل الصفوف بالجدول التاني وبعدين الصف التاني وضربه بكل الصفوف والصف التالت
. نفس األشي
عشان نحدد كل عامود من المتشابهين ألي جدول تابع أو ممكن أحط قبلها اسم الجدول الليrename لو في عامود تكرر أسمه بالجدولين بنعمل
. R1.B تابعة أله
To prevent identical attribute names from occurring in the same relation schema, R x R is not allowed.
However, R X ρS(R) is allowed.
Commutativity: R1 X R2 = R2 X R1
األصليةrelation وبضرب الـrename ممنوع لكن بقدر أعمل منها نسخة عن طريق الـR X R ببعضهاrelation ما بقدر أضرب نفس الـ
. بهاي النسخة
EX: Retrieve for each female employee a list of names of her dependents
؟SQL كيف بنكتبها بالـ، female يكونوemployee بس بشرط هدول الـemployee بده نرجع اسماء أوالد الـ
EMP-NAMES = π Fname,Lname,SSN(FEMALE-EMPS)
RESULT = π Fname,Lname,Dependent-name(ACTUAL-DEP)
sex= f اللي الـemployees وطلع كل الـemployee على جدول الـselect أول أشي عمل-1 :بدنا نمشي خطوة خطوة كيف حلها
EMP- ) وخزنا الناتج فيFname,Lname,SSN ( أعمدة3 وحدد هدول الـproject الناتج اللي طلع معنا من أول خطوة عمل عليه-2
NAMES
dependent فبيطلع معنا جدول كبير بيحتوي على كل بيانات الـdependent والـEMP-NAMES بين الـcartesian prodact عملنا-3
بس مضروبين ببعضfemale employees للـFname,Lname,SSN باالضافة للـ
. أعمدة اللي بدنا اياهم3 الناتج اللي بيطلع معنا بنحدد منه الـ-5
attribute قبل اسم الـtable والجملة التانية نفس األولى بس بسطها ألنه االسم مش نفسه فعادي مش ضروري نحط اسم الـ
Use assignment operator ( = ) to save the intermediate result into a temporary relation
EX: Find the names of all students who have the highest GPA
Step 3: Find the names of students who have the highest GPA
وهيك بيطلع معناStudent من جدول الـTEMP1 الناتج اللي طلع معنا بأول خطوة هو األقل وأحنا بدنا األعلى بنطرح الـ:الخطوة الثانية
GPA بيحتوي على عامود فيه أعلىTEMP2 سميناهtable
. GPA وبطلع أسماء الطالب إلي إلهم أعلىTEMP2 والـstudent بين الـcartesian product بنعمل:الخطوة الثالثة
Join
∞ --- join
Format: R1 ∞ join-condition R2
Format of join condition: بضرب الجدولين ببعض وبعدينcartesian product هو عبارة عنjoin الـ
: اللي حققو الشرط بالنسبة للشرط في نوعينrecords برجعلي الـ
R1.A op R2.B
أما لو ما كان في شرط بكون اسمهtheta join إذا كان الشرط موجود هاد بنسميه
R1.A1 op R2.B1 and R1.A2 op R2.B2 . . . natural أوequijoin
Tuples whose join attributes are NULL do not appear in the result
Ex: Find the names of all employees and their department locations
join تبع الـقسم بما أنه االشي المطلوب من جدولين فهون عرفنا انه حنعملlocation بده نطلع اسم الموظف باإلضافة للـ
أنه االسم بجدولDept-Name = Departments.Name اللي حققو الشرط تبعrecords اللي عملناه أنه ضربنا الجدولين ببعض وأخدنا الـ
الناتج اللي طلع معنا بنحدد منه أنه بدنا هدول العامودينnull وما بناخد الـemployee نفس االسم بجدول الـdepartment الـ
Employees.Name, Location
Ex: Find the names of all employees who earn more than his/her manager
employee اللي بجدول الـManagerssn والشرط أنه الـEMP بينه وبين نسخة تانية منه سميناهاjoin وعملناEmployee أخدنا جدول الـ
EMP بجدول الـsalary أكبر من الـemployee بجدول الـSalary وكمان أنه الـEMP اللي بجدول الـSSN تساوي
:توضيح للحل
Employee EMP
بجدول الـ employeeشو هم الـ manager-ssnاللي موجودين بجدول الـ EMPبالـ columnتبع الـ SSNكان عبارة عن الـ record
األول والرابع ودمجناهم مع الصف الثالث والرابع من جدول الـ EMPوهيك صار مقابل كل employeeالـ managerتبعه
هسا بنحكي مين الموظف اللي راتبه أعلى من راتب مديره يعني أي recordفيها employee.salary > EMP.salaryيعني الصف األخير
فباخد اسم Mikeوبحطه بجدول لحاله.
Equijoin
Definition: A join is called an equijoin if only equality operator is used in all join conditions.
الزم يكون في عامود مشترك بين الجدولين على أساسه بعمل الـ joinبروح على عامود الـ Bبالجدول األول وباخد أول صف فيه طلع bبقارن
هاي الـ bبالقيم اللي موجودة بالجدول التاني برضه بالعامود Bفبالقي أول قيمة bوباخد الصفكامل ومن هون طلع معنا أول صف بالجدول
الناتج وبعدين بقارن القيمة اللي بالصف التاني اللي هي برضه bفباخد الصف التاني من الجدول األول وبدمجه مع الصف األول من الجدول
التاني وهيك نتج الصف التاني بالجدول الناتج وأخر اشي الـ cبالقي في cبالصف التاني فباخد الصف التالت مع الصف التاني وهيك بنتج أخر
صف بالجدول .
لو حكالنا كم عدد األعمدة إذا استخدمنا natural equijoinبنشيل العامود المكرر اللي هو Bوبيطلعو 3
أما لو طلب عدد األعمدة لما نستخدم الـ equijoinبيضل تكرار األعمدة بكونو .4
Among each pair of identically named attributes from the two relations, only one remains in the result.
العامود المشترك ما بكررهjoin بكون لما يكون في عنا جدولين فيهم عامود مشترك وبكون إلهم نفس االسم وبس أعمل الـnatural join الـ
.ومش ضروري نحط الشرط هون عشان الهم نفس االسم
Questions: How to express natural join in terms of equijoin and other relational operator?
كتبناهم بس مرة وحدةA , C مش ضروري نحط شرط وبنالحظ بالناتج ما كررنا األعمدة المشتركة اللي همnatural join بما أنه حعمل
. على الناتجproject العادي حط شرط المساوة وبعدين عملequijoin وبعد المساوة شرح كيف عملناها باستخدام الـ
Outerjoin
Semantics: like join except it retains dangling tuples from both R1 and R2 and it uses null to fill out missing
entries
∞LO --- left outer join
بياخد الـ recordsاللي تساوت عندهم األعمدة باإلضافة للـ recordsاللي بالجدول األول
Format: R1 ∞LO R2 بمعنى تاني اللي موجودين على يسار الـ join
Semantics: like outerjoin but retains only dangling tuples of the relation on the left
Semantics: like outerjoin but retains only dangling tuples of the relation on the right
Outer join
بنالحظ لما عملنا الـ leftوأخدنا الـ recordsاللي موجودين على يسار ومش موجودين باليمين بنحط القيم لألعمدة اللي جاية من جدول الـ
rightبنكتبهم nullوالعكس بالحالة التانية
Aggregate Functions & Grouping
Well known Aggregate Functions: SUM, AVERAGE, MAXIMUM, MINIMUM, COUNT
Format: (Script F)
<attribute> is an attribute in R
EX: Retrieve each department number, the number of employees in the department, and their average
salary:
salary تبع الـaverage اللي فيه باإلضافة للـemployees كم عدد الـdepartment بده نطلع لكل
B2 A/B2
بدنا نقسم A / B2باخد القيمة اللي موجودة
sno Pno Pno Sno في pnoمع بعض التنتين وبشوف شو اللي
S1 P1 P2 S1 بقابلها بالـ snoولو كان في تكرار في قيم
S1 P2
P4 S4 الـ snoما باخدها
S1 P3
S1 P4
S2 P1
S2 P2
S3 P2
S4 P2
S4 P4
A/B3 B3
sno Pno بدنا نقسم A / B3باخد القيمة اللي موجودة
Pno Sno
S1 P1 في pnoمع بعض التالت وبشوف شو اللي
S1 P2 P1 S1 بقابلها بالـ snoولو كان في تكرار في قيم
S1 P3 P2 الـ snoما باخدها
S1 P4
P4
S2 P1
S2 P2
S3 P2
S4 P2
S4 P4