الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ماذا تعني Unique Index و Simple Index في الsql ؟

مغلق
بدأه MS_SQL في 24 يناير 2008 · 6 رد · 1,167 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

اخواني اريد التعرف على هذه الاوامر Unique Index و Simple Index

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#2

الـ Unique Index هو فهرس ، و الـ Simple Index أيضاً فهرس !!!

ووظيفة الفهرس بوجة عام هو تسريع العمليات علي حقل أو مجموعة من الحقول !!!

ولكن الفرق بينهما أن Unique Index هو حقل مفهرس بدون تكرار ، علي سبيل المثال الرقم الكودي للموظف يجب إضافة Unique Index علية بحيث أن الحقل لا يجوز له عملية التكرار ( 1، 2، 3، 4، ... الي آخرة دون التكرار ) . أما الـ Simple Index يؤدي نفس وظيفة الـ Unique ولكن يمكننا إجراء تكرار علي الحقل كما نشاء ، مثل حقل ( النوع/الراتب/تاريخ الميلاد/تاريخ التعيين/ .... الي آخرة )

شكراً

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#3

اخي معنى كلامك ان Unique Index = Primary Key .... مضبوط ؟!! ممكن مثال بالكود فقط

واريد ان أعرف ما معنى Alter و Drop ؟

وجزاك الله ألف خير

تم تعديل هذه المشاركة بواسطة medo_Programming في 26 يناير 2008 في 02:58

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#4

:( :cry:

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#5
اقتباس
:( :cry:

أخي الكريم ، لا داعي لكل هذا ، فالجميع فخدمة أنفسهم ،

--------------------------------------------------------------------------------------------------------

اقتباس
اخي معنى كلامك ان Unique Index = Primary Key .... مضبوط

أخي الكريم ، المفتاح الرئيسي ليس له علاقة بهذا الكلام ، صحيح أن الـ Primary Key يحتوي علي فهرس غير متكرر Unique ، ودائماً يحتاج لقيمة Not Null ، وفي نفس الوقت مفتاح رئيسي PK ، حيث أن أي جدول لا يجوز له إنشاء أكثر من مفتاح رئيسي ، لكن يمكنك تقسيم المفتاح الرئيسي علي أكثر من عمود أو حقل .

أما الـ Unique Index يمكنك إنشاء أكثر من UI علي الجدول ، حيث مطابق تماماً للمفتاح الرئيسي عدا أنه غير PK ، ولكن الـ Index بصفة عامة وظيفتها الرئيسية هي زيادة سرعة العمليات علي الحقل ، وذلك لأنا تحول عملية البحث الي مجموعات ، ولكن متي تستخدم الفهارس ، ومتي لا تستخدم الفهارس !!!

تستخدم الفهارس في حالة أنه يحتوي علي بيانات وسجلات بالآف والملايين ، ويحتوي علي العديد من العمليات مثل الحقول المحسوبة ( النوع/الديانة/الجنسية/الراتب/ ..... الي آخرة ) ومثل المفاتيح الخاريجة FK ، و .... الي آخرة . والعكس صحيح .

اقتباس
ممكن مثال بالكود فقط

أعتقد إنك تتعامل مع أوراكل ، وإذا كان هذا صحيح فإليك مثال علي الفهارس :

نفرض أننا لدينا جدول يدعي Emp ، وهذا الجدول يحتوي علي ثلاثة حقول الأول ( Emp_ID ) مفتاح رئيسي ، أما الثاني ( Emp_Code ) مفهرس وغير متكرر ، أما الثالث ( Emp_Name ) مفهرس وغير متكرر ، ولدينا أيضاً حقل آخر خاص بجنس الموظف أو النوع ( Emp_Sex ) ، وهذا الحقل مفهرس ولكنه من الطبيعي متكرر لأننا لدينا في الشركة أكثر من موظف مذكر ومؤنث ،وهناك حقول أخري مثل الراتب ( Emp_Salary و تاريخ الميلاد Emp_Bdate وتاريخى التعيين Emp_Jdate ، وكل هذا متكرر . فكيف يتم صناعة هذا الجدول كلياً بكل هذه الشروط ، أنظر الكود التالي :

1- إنشاء الجدول :

Create Table Emp
(
   Emp_ID				  Number(10),
   Emp_Code			VarChar2(20),
   Emp_Name			VarChar2(50),
   Emp_Sex				Number(1),
   Emp_Salary			Number(10,3),
   Emp_Bdate		   Date,
   Emp_Jdate			Date,
   Constraint PK_EMP Primary Key(Emp_ID),		-- إنشاء المفتاح الرئيسي للجدول --
)
/

2- إنشاء فهرس غير متكرر علي حقلي الرقم الكودي و إسم الموظف :

Create Unique Index IN_EMP_CODE On Emp(Emp_Code)
/
Create Unique Index IN_EMP_NAME On Emp(Emp_Name)
/

3- إنشاء فهرسة علي باقي الحقول :

Create Index IN_EMP_OTHERS On Emp(Emp_Sex,Emp_Salary,Emp_Bdate,Emp_Jdate)

لاحظ أخي ، أنني قمت بإنشاء فهرسين لكل حقل من حقول رقم وإسم الموظف ، فلا يجوز لي أن أقوم بإنشاء فهرس غير متكرر علي حقلين إلا بشروط معينة ، كما يلي :

Create Unique Index IN_EMP_Code_Name On Emp(Emp_Code,Emp_Name)

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

اقتباس
رقم الموظف - إسم الموظف

1 - مصطفي

1 - يوسف

2 - مريم

4 - مريم

3 - فكري

3 - أحمد

وهذا تجد أن رقم الموظف تكرر وإسم الموظف تكرر ، ولكن لا يجوز تكرارهما بعضاً لبعض !!!!

ولكن أخي أنتبه ، يمكنك إنشاء فهرس مباشرتاً أثناء إنشاء الجدول مثل المفتاح الرئيسي كما يلي :

Create Table Emp
(
   Emp_ID				  Number(10),
   Emp_Code			VarChar2(20),
   Emp_Name			VarChar2(50),
   Emp_Sex				Number(1),
   Emp_Salary			Number(10,3),
   Emp_Bdate		   Date,
   Emp_Jdate			Date,
   Constraint PK_EMP Primary Key(Emp_ID),		-- إنشاء المفتاح الرئيسي للجدول --
   Constraint UQ_EMP_CODE Unique(Emp_Code),
   Constraint UQ_EMP_Name Unique(Emp_Name)
)
/

------------------------------------------------------------------------------------------------------

واريد ان أعرف ما معنى Alter و Drop ؟

أخي الكريم ، أنصحك بالتوجة الي قسم قواعد البيانات الذي ترغب في تعليمة كما تشاء ،

أخي ، الأمر Alter هو أمر يساعد علي التعديل بجدول معيتن أو مستخدم معين أو ... الي آخرة .

أما الأمر Drop هو مسؤول عن عملية الحذف مثل حذف جدول أو عارض أو فهرس أو مستخدم أو إجراء أو غرض أو حزمة أو زناد أو ....... الي آخرة

وإليك مثال علي كيفية حذف جدول الموظف :

1- في حالة عدم إرتباط الـ PK بإي مفاتيح خارجية :

Drop Table Emp

2- في حالة إرتباط الـ PK بمفاتيح خارجية :

Drop Table Emp Cascade Constraints

شكراً

تم تعديل هذه المشاركة بواسطة MMA_EG_Cairo في 26 يناير 2008 في 05:40

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#6

ما شاء الله مشكور اخي على تعاونك معي

الحمد لله انا عرفت معني Drop وهي تستخدم لحذف الجداول والصيغة :

Drop table Name_OF_Table

اما بالنسبة لAlter فهي تستخدم لحذف واضافة الحقول والصيغة :

Alter table  Name_OF_Table ADD [Name_Of_Column] Type

ولالغاء حقل :

Alter table  Name_OF_table Drop Column Name_OF_Column

لكن أخي مع كل شرحك انا لسه مش فاهم الUniqe index أعذرني فهمي ثقيل شوي

تم تعديل هذه المشاركة بواسطة medo_Programming في 28 يناير 2008 في 17:20

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

#7

:unsure:

فلسطين .. سوريا ..بورما ......وماذا بعد ؟!

سابقا

medo_programming

موقعي : www.alkhayat-it.com

مواضيع مهمه

-----------------------------------------------:

تعلم كل شىء عن الTriggers

هذا الموضوع مغلق.

مواضيع مشابهة