Lesson2 Manage relationships and keys

14
Abdullatif Tarakji [email protected] Create and manage databases رة قاعدة بياناتء و إدا إنشاManage relationships and keys قات و إدارة العلمفاتيح اSpecifying primary keys تحديدتيح الرئيسيةلمفا احقولل لSetting and viewing relationships أعدادقاترض الع و ع

Transcript of Lesson2 Manage relationships and keys

Abdullatif [email protected] Create and manage databases

إنشاء و إدارة قاعدة بيانات

Manage relationships and keys

المفاتيحإدارة العالقات و

Specifying primary keys

للحقولالمفاتيح الرئيسية تحديد

Setting and viewing relationships

و عرض العالقاتأعداد

Abdullatif [email protected] Manage relationships and keys

إدارة العالقات و المفاتيحSpecifying primary keys تحديد المفتاح الرئيسي

A table’s primary key uniquely identifies each record in the table. You can use a single field(for example, a unique product or customer code, or an ID field that is set to the AutoNumber data type that Access provides) or a combination of fields as a table’s primary key. Amultifield primary key is called a composite key. For an AutoNumber field, Access assigns a unique number to each record in a table, so you don’t need to keep track of values that might be duplicates. If you don’t use the AutoNumber data type but instead use a field whose value you enter, be sure that you set the field’s Required property to Yes and that you use a field or a combination of fields whose values change infrequently or not at all.

Abdullatif [email protected]

:وهي Microsoft Accessهناك ثالثة أنواع من المفاتيح األساسية التي يمكن تعريفها في •

Autoالمفاتيح األساسية من نوع الترقيم التلقائي Numberتعد أبسط طريقة إلنشاء. يمكن إعداد حقل الترقيم التلقائي إلدخال رقم تسلسلي تلقائياً عند إضافة أي سجل جديد إلى الجدول

. مفتاح أساسي هي تعيين مثل هذا الحقل كمفتاح أساسي

المفاتيح األساسية من نوع الحقل المفرداح أساسي لحقل و يمكن تحديد مفت. إذا كان لديك حقالً يتضمن قيم فريدة مثل أرقام التعريف أو أرقام األجزاء، يمكن تعيين هذا الحقل على أنه المفتاح األساسي

.Nullيحتوي بالفعل على بيانات طالما ال يحتوي هذا الحقل على قيم مكررة أو قيم خالية

المفاتيح األساسية من نوع الحقل المتعدد ً وعاً التي يحدث فيها والحالة األكثر شي. في الحاالت التي ال يمكن فيها ضمان وجود حقل فردي، قد يكون بإمكانك تعيين حقلين أو أكثر باعتبارهما مفتاحاً أساسيا

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

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

لكي . االستعالماتبسرعة وتجميعها معاً باستخداممنفصلةتأتي فاعلية نظام قاعدة البيانات العالئقية من القدرة على العثور على المعلومات المخزنة في جداول

احالمفتو تسمى هذه المعلومة . فريديتم ذلك، يجب أن يحتوي كل جدول على حقل أو مجموعة حقول تقوم بتعريف كل سجل مخزن في الجدول بشكل Primaryاألساسي Key متى قمت بتعيين مفتاحاً أساسياً لحقل في الجدول، يمنع . للجدولAccess خالية أو قيم مكررة إدخال أي قيمNull في

.الحقول التي يعين لها مفتاح األساسي

Abdullatif [email protected] To set a primary key

لتعيين المفتاح األساسي1. In the Navigation pane, right-click the table, and then click Design View.

ميممن نافذة التنقل نضغط كليك يمين على الجدول المطلوب تعيين مفتاح أساسي له و نختار عرض التص

2. Select the field or fields you want to designate as the table’s primary key.

نختار الحقل المطلوب تعيين مفتاح أساسي له

3. On the Table Tools Design tool tab, click Primary Key.

من عالمة تبويب أدوات تصميم الجدول نضغط على المفتاح األساسي

Abdullatif [email protected]

To remove the primary keydesignation from a field

لحذف المفتاح األساسي المصمم من الحقل

1. In the Navigation pane, right-click the table, and then click Design View.

نافذة التنقل نضغط كليك يمين على الجدول المطلوب تعيين مفتاح أساسي له و نختار عرض التصميممن

2. Select the field or fields from which you want to remove the primary key designation.

الحقل المطلوب تعيين مفتاح أساسي لهنختار

3. On the Design tool tab, click Primary Key.

نضغط على المفتاح األساسيالجدول عالمة تبويب أدوات تصميم من

Abdullatif [email protected] Setting and viewing relationships

إعداد و عرض العالقات

• Access is known as a relational database management system, or RDBMS.

• Rrelationships between tables are used to maintain the integrity of the data and to reduce the need to store redundant data.

• For example, customer names are stored in one table, and orders are stored in another. By creating a relationship between these tables, you don’t need to repeat the customer’s name in the record for new orders.

• Table relationships are also used to join tables in queries and to define the record sources for forms and reports.

(.باطيةاالرت)برنامج األكسيس هو نظام إدارة قواعد البيانات العالئقية •

كاملية في العالقات بين الجداول تستخدم في هذا النظام للحفاظ على الت•

.البيانات و لتقليل الحاجة لتخزين بيانات مكررة

قوم بذكر عندما يطلب الزبون أكثر من فاتورة هنا سن: على سبيل المثال•

جدولين اسم الزبون في كل فاتورة يطلبها بوجود العالقات نقوم بعمل

نقوم الجدول األول خاص بالزبائن و الجدول الثاني خاص بالفواتير و

ر اسم الزبون في بالربط بين الجدولين بعالقة نستفيد هنا باننا منعنا تكرا

كل فاتورة يطلبها يسجل اسمه و رقمه فقط لمرة واحدة في جدول

فاتورة سيكن اسمه مكتب 1000الزبائن أما فواتيره حتى لو أصبحت

.فقط لمرة واحدة

مصادر أيضاً نستخدم العالقات بربط الجداول و االستعالمات لتحديد•

:أنواع العالقات.السجل و استخدامها في النماذج و التقارير.One to Oneعالقة رأس برأس

.One to Manyعالقة رأس بأطراف

.Many to Manyعالقة أطراف بأطراف

Abdullatif [email protected] One-to-many relationship

عالقة رأس بأطراف

• In this relationship, any one record in the first table can be related to many records in the second table

• (for example, one supplier can place many Products), but any record in the second table is related to only one record in the first table (for example, each product is placed by a single supplier).

في عالقة رأس بأطراف،. تعد عالقة رأس بأطراف هي النوع األكثر شيوعاً من العالقات

.Bمع مجموعة سجالت في الجدول Aيكون لدينا سجل واحد في الجدول قد

Aمورد واحد في الجدول Bفي الجدول يمكن توفير أكثر من منتج واحد

.و لكن يحتوي كل منتج على مزود واحد فقط

:بتوضيح أكثر

قل عالقة رأس بأطراف هي عالقة ربط بين حقلين كل ح

في جدول ينصح بأن يكون الحقلين بنفس االسم

:ينتج عن العالقة

مع ( الموردين)ربط سجل واحد فقط من الجدول األول

(المنتجات)مجموعة سجالت من الجدول الثاني

:شرط بناء العالقة

( الموردين)يجب أن يكون للحقل في الجدول األول

معين له مفتاح أساسي و الحقل في الجدول الثاني

مفتاح فرعي( المنتجات)

رعي أيضاً يجب أن يكون نوع بيانات حقل المفتاح الف

هو نفس نوع حقل المفتاح ( المنتجات)من جدول

(.الموردين)األساسي في جدول

Abdullatif [email protected] One-to-one relationship

عالقة رأس برأس• In a one-to-one relationship, each record in the first table is

related to only one record in the second table.

• You can use this type of relationship when you want to use a separate table to define and store fields for data that you don’t refer to regularly or that you want to keep more confidential.

• For example, in an Employees table, you can store general employee information such as first and last name, department, job title, and building and office location. In a separate Employees Rating or Employee Compensation table, you can store performance ratings and compensation data—information that you want only certain people or groups to use. Each record in the Employees table has a single matching record in the table for ratings or compensation.

Bسجل مطابق واحد فقط في جدول Aفي عالقة رأس برأس، يمكن أن يكون لسجل في جدول

.Aيمكن أن يحتوي على سجل مطابق واحد فقط في جدول Bوكل سجل في جدول

. ل واحدال يعد هذا النوع من العالقة شائعاً، ألن معظم المعلومات المرتبطة بهذه الطريقة تكون في جدو

باب تستخدم عالقة رأس برأس لتقسيم جدول يحتوي على حقول كثيرة أو لعزل جزء من جدول ألس

. أمنية أو لتخزين معلومات يتم تطبيقها على مجموعة فرعية من الجدول األساسي

على سبيل المثال،

عامة في جدول الموظفين يمكن تقسيم هذا الجدول الى جدولين الجدول األول تخزن فيه المعلومات ال

ض الخ و الجدول الثاني مثال تقييم الموظفين أو تعوي..... للموظف مثل االسم و الكنية و القسم

قييم الموظفين هنا يمكنك تخزين هذه المعلومات بجدول مستقل لتحدد من الذي يحق له االطالع على ت

هنا يكون سجل واحد من جدول معلومات. الموظفين أو من يحق له االطالع على تعويض الموظفين

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

:بتوضيح أكثر

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

:ينتج عن العالقة

(تقييم الموظفين)مع سجل واحد فقط من الجدول الثاني ( الموظفين)ربط سجل واحد فقط من الجدول األول

:شرط بناء العالقة

اح أساسيمعين له أيضاً مفت( تقييم الموظفين)معين له مفتاح أساسي و الحقل في الجدول الثاني ( الموظفين)يجب أن يكون الحقل في الجدول األول

(.يم الموظفينتقي)هو نفس نوع البيانات لحقل المفتاح األساسي في جدول ( الموظفين)أيضاً يجب أن يكون نوع بيانات حقل المفتاح األساسي من جدول

Abdullatif [email protected] Many-to-many relationship

أطرافبعالقة أطراف • Some tables have a many-to-many relationship.

For example, an orders table and a products table have a many-to-many relationship.

• Each record in the orders table can have many matching records in the products table, and each record in the products table can have many matching order records.

• You can’t define this type of relationship directly. Instead, you need to create a linking table (also known as a junction table) to create two one-to-many relationships. The linking table includes the primary key fields from both the other tables.

في عالقة أطراف بأطراف،

Bو يمكن أن يكون لسجل في جدول ،Bعدة سجالت مطابقة في جدول Aيوجد لسجل في جدول

.Aعدة سجالت مطابقة في جدول

ي الذ( يدعى جدول الربط)يكون هذا النوع من العالقة ممكناً فقط بواسطة تعريف جدول ثالث

.Bو Aالمفاتيح الخارجية من كال الجدولين —يتكون مفتاحه األساسي من حقلين

، على سبيل المثال. وعالقة أطراف بأطراف هي في الواقع عالقتي رأس بأطراف مع جدول ثالث

قتي يحتوي جدول الطلبات وجدول المنتجات على عالقة أطراف بأطراف معرفة بواسطة إنشاء عال

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

.منتج في عدة طلبيات

Abdullatif [email protected]

To create a table relationship إلنشاء عالقات الجدول

1. On the Database Tools tab, click

Relationships.

من صفحة تبويب أدوات قاعدة البيانات اضغط على عالقات

تفتح نافذة خاصة هي نافذة العالقات

2. If the tables you need aren’t displayed, click Show Table in the

Relationships group (on the Relationship Tools Design tool tab),

select the tables in the Show Table dialog box, and then click Add.

اذا الجداول التي تحتاجها في انشاء العالقة غير موجودة اضغط على إظهار جدول من

مجموعة العالقات من تبويب أدوات تصميم العالقات اختر الجول المطلوب من

صندوق حوار اظهار جدول و اضغط على اضافة

3. Drag the linking field in the first table

(the “one” table in a one-to-many

relationship) to the second table (the

“many” table). Access displays the Edit

Relationships dialog box.

اسحب حقل الربط في الجدول األول الى الجدول

الثاني و ألقه فوق الحقل المطلوب ربطه مع حقل

الجدول األول يظهر صندوق حوار تحرير العالقات

Abdullatif [email protected]

6. Click Create to establish the relationship and close the dialog box.

اضغط على زر إنشاء من صندوق حوار تحرير العالقات

4. In the dialog box, be sure the linking fields are selected in

the Table/Query and Related Table/Query lists.

في هذا الصندوق تأكد من نوع العالقة المطلوبة و الحقول المرتبطة المختارة

5. In the Edit Relationships dialog box, select Enforce Referential Integrity if you

want to enable this feature for this relationship. If you enable referential integrity,

select one or both of the Cascade options.

في صندوق حوار تحرير العالقات يمكنك فرض التكاملية المرجعية حدد الخيار المطلوب اذا أردت ذلك

Abdullatif [email protected] One To Many Relationship

∞مجموعة سجالت

1

سجل واحد

Abdullatif [email protected] To modify a relationship

لتعديل العالقة

• On the Database Tools tab, click Relationships.

• In the Relationships window, right-click the relationship line between two tables, and then click Edit Relationship.

• In the Edit Relationships dialog box, make changes to the relationship (for example, select Enforce Referential Integrity if that option is not yet selected), and then click OK.

من تبويب أدوات قاعدة البيانات اضغط عالقات•

عالقة من نافذة العالقات اضغط كليك يمين على خط ال•بين الجدولين ثم اضغط تحرير عالقات

ي من صندوق حوار تحرير عالقات حدد التغيير الذ•مرجعي تريد على سبيل المثال اختر فرض التكامل ال

.اذا كان الخيار غير محدد ثم اضغط اوك

Abdullatif [email protected] Enforce Referential Integrity

فرض التكامل المرجعي• Referential integrity is used to prevent orphan records (records in one table with no matching

record in a related table) and to maintain references between related tables. By using

referential integrity, you ensure that no record in one table refers to a record in another table

that doesn’t exist—for example, a record for a book cannot refer to an author if a record for

that author does not exist. If you enforce referential integrity, Access does not allow

operations that violate referential integrity rules for that relationship. For example, you can’t

enter a customer ID in the Orders table if that customer ID does not exist in the Customers

table. Also, you can’t delete records that remove a target. For example, you can’t delete a

customer record if order records for that customer exist.

• Cascade options If you select Enforce Referential Integrity, you can choose one or both of the

Cascade options:

• Select Cascade Update Related Fields to have Access update the foreign key for all related

fields when you make a change to the primary record.

• Select Cascade Delete Related Records to have Access delete all related records when you

delete a primary record. (If you delete a customer, Access would also delete all order records

for that customer.)

ابق سجالت في جدول واحد مع عدم وجود سجل مط)يستخدم التكامل المرجعي لمنع سجالت اليتيمة •

ي، يمكنك باستخدام التكامل المرجع. والحفاظ على التكامل بين الجداول ذات الصلة( في جدول مرتبط

ثال، التأكد من أن أي سجل في جدول واحد يشير الى سجل في جدول آخر ال وجود له، على سبيل الم

مل إذا فرضت التكا. سجل لكتاب ال يمكن أن يشير إلى مؤلف اذا لم يكن هناك سجل لهذا المؤلف

على . العالقةالمرجعي، برنامج األكسيس ال يسمح للعمليات التي تنتهك قواعد التكامل المرجعي لتلك

العميل في سبيل المثال، ال يمكنك إدخال معرف العميل في الجدول الطلبيات عند عدم وجود معرف

ى سبيل عل. أيضا، ال يمكنك حذف السجالت الرئيسية اذا كان هناك سجالت مرتبطة بها. جدول العمالء

.المثال، ال يمكنك حذف سجل العميل إذا كان هناك طلبيات لهذا العميل موجودة أصالً

:ي أو كليهماخيارات التتالي إذا قمت بتحديد فرض التكامل المرجعي، يمكنك اختيار أحد خيارات التتال•

جميع الحقول ذات حدد تتالي تحديث الحقول المرتبطة يقوم برنامج األكسيس بتحديث المفاتيح الفرعية ل•

.الصلة عند إجراء تغيير في سجل المفتاح األساسي

عند حذف حدد تتالي حذف السجالت المرتبطة يقوم برنامج األكسيس بحذف كافة السجالت المرتبطة•

طلبيات إذا قمت بحذف أحد العمالء، برنامج األكسيس يقوم بحذف جميع سجالت ال. )السجل الرئيسي

.(لهذا العميل