الانتقال إلى المحتوى

ماهو الفرق بين الثلاثة؟؟create view-create index-create synonym


hrs

Recommended Posts

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

CREATE OR REPLACE VIEW empvu10
(employee_number, employee_name, job_title)
AS SELECT employee_id, last_name, job_id
FROM employees WHERE department_id = 10


index: يستخدم ضمن شروط محددة بهدف تسريع الأداء لكافة العمليات على الجداول وهو يعرّف ضمنياً عند أي تعريف للمفتاح (PK or Unique)..

CREATE INDEX emp_last_name_idx ON employees(last_name);


synonym: وهو عبارة عن اسم يستخدم كبديل عن اسم معقد أو طويل لتسهيل الاستخدام..ويستخدم عادة عند الحصول على سماحيات على عنصر محدد من مستخدم آخر و كما نعلم أنه عند استخدام هذا العنصر يجب وضع اسم السكيما قبل اسم العنصر(SCOTT.emp) لذلك استطيع عمل synonym لهذا الاسم كما أريد كالتالي:

CREATE SYNONYM emp FOR SCOTT.emp;



أنا شرحت بشكل عام .. لأي توضيح أو استفسار أنا جاهز...

تم تعديل بواسطة TROYMAN
رابط هذا التعليق
شارك

السلام عليكم...
هذه بعض الأمثلة للتوضيح

هذا مثال عن إنشاء فيو بسيطة جدا

SQL> create or replace view v_emp_dept30 as 2  select empno,ename,sal,deptno from emp 3  where deptno=30;

View created.

SQL> select * from v_emp_dept30; EMPNO ENAME             SAL     DEPTNO
---------- ---------- ---------- ----------
     7499 ALLEN            1600         30
     7521 WARD             1250         30
     7654 MARTIN 1250         30
     7698 BLAKE            2850         30
     7844 TURNER           1500         30
     7900 JAMES             950         30
     1001 hassan                        30

7 rows selected.



إقحام سجل جديد في الجدول عن طريق الفيو وهنا استطيع إدخال سجل جديد على القسم 20(خارج الشرط) ولكن لا أستطيع رؤيته عن طريق الفيو

SQL> insert into v_emp_dept30(empno,ename,deptno) values(1002,'fouad',30);

1 row created.

SQL> select * from v_emp_dept30; EMPNO ENAME             SAL     DEPTNO
---------- ---------- ---------- ----------
     1002 fouad                         30
     7499 ALLEN            1600         30
     7521 WARD             1250         30
     7654 MARTIN 1250         30
     7698 BLAKE            2850         30
     7844 TURNER           1500         30
     7900 JAMES             950         30
     1001 hassan                        30

8 rows selected.



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

SQL> update v_emp_dept30 set deptno=20 where empno=1002;

1 row updated.

SQL> select * from v_emp_dept30; EMPNO ENAME             SAL     DEPTNO
---------- ---------- ---------- ----------
     7499 ALLEN            1600         30
     7521 WARD             1250         30
     7654 MARTIN 1250         30
     7698 BLAKE            2850         30
     7844 TURNER           1500         30
     7900 JAMES             950         30
     1001 hassan                        30

7 rows selected.
------------------------------------------
SQL> delete from v_emp_dept30 where empno=1002;

0 rows deleted.



هذه أمثلة عن استخدام المرادف(Synonym)

SQL> connect scott/tiger;
Connected.
SQL> grant select on emp to user1;

Grant succeeded.

SQL> connect user1/user1;
Connected.



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

SQL> select * from emp; select * from emp
             *
ERROR at line 1:
ORA-00942: table or view does not exist


SQL> select * from scott.emp; EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
     7369 SMITH      CLERK           7902 17-DEC-80        800                    20
     7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
     .
     .
     .
     7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30

16 rows selected.



يجب أن امتلك سماحية إنشاء المرداف

SQL> create synonym s_emp for scott.emp;

Synonym created.

SQL> select * from s_emp; EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
     7369 SMITH      CLERK           7902 17-DEC-80        800                    20
     7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
     .
     .
     .
     7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30

16 rows selected.



طريقة ثانية لإنشاء مرادف عام لاسم محدد يستطيع كافة المستخدمون الذين يمتلكون صلاحيات على الجدول الأصلي استخدامه

SQL> connect scott/tiger;
Connected.



يجب أن امتلك سماحية إنشاء مرادف عام

SQL> create public synonym emp for scott.emp;

Synonym created.

SQL> grant select on emp to user2;

Grant succeeded.



SQL> connect user2/user2;
Connected.



نلاحظ إنه تم استعمال اسم المرادف هنا

SQL> select * from emp; EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
     7369 SMITH      CLERK           7902 17-DEC-80        800                    20
     7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
     .
     .
     .
     7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30

16 rows selected.



الأماكن المثلى لاستخدام الفهارس(لتسريع الأداء)


Create an index when:
• A column contains a wide range of values.
• A column contains a large number of null values.
• One or more columns are frequently used together in a WHERE clause or a join condition.
• The table is large and most queries are expected to retrieve less than 2% to 4% of the rows in the table.
Do not create an index when:
• The columns are not often used as a condition in the query.
• The table is small or most queries are expected to retrieve more than 2% to 4% of the rows in the table.
• The table is updated frequently.
• The indexed columns are referenced as part of an expression.



CREATE INDEX emp_last_name_idx ON employees(last_name);



فإنه يتم إنشاء فهرس خاص به تلقائياً باسم محدد , من أجل التحكم بالاسم و الخيارات الأخرى يمكن استعمال الكود التالي (PK or Unique )كما نعلم أنه عند عند إنشاء أي حقل

CREATE TABLE NEW_EMP
(employee_id NUMBER(6)
PRIMARY KEY USING INDEX
(CREATE INDEX emp_id_idx ON NEW_EMP(employee_id)),
first_name VARCHAR2(20),
last_name VARCHAR2(25));
Table created.

رابط هذا التعليق
شارك

مسامحة .. ادري اني عذبتكم بس فيه شي ..
وانا احاول اجرب اعمل create view يقولي انه مافي صلاحيات

عاد انا عطيته كل الصلاحيات
grant all on emp to scott
بس مافاد وماسمحلي اعمل فيو ويقول ايضا ماعندي صلاحيات


ارجو الرد بأسرع وقت

رابط هذا التعليق
شارك

  • بعد 4 شهور...

الحمد لله والصلاه والسلام علي رسول الله صلي الله عليه وسلم
اللهم ربنا يا اله كل شئ وخالق كل شئ لا تسالنا عن شئ واغفر لنا كل شئ
انا واخي الكريم واخواننا وجميع المسلمين والمسلمات والمؤمنين والمؤمنات من اول الخلق الي يوم الدين وكل من له علينا حق واغتبناه او بهتناه او نلنا منه بما لا يرضيك واجعله له نورا يوم القيامه
اللهم ربنا ما بيينا وبين جلالتك فاغفره لنا فانت الغفور الرحيم لا غفور غيرك وما بيننا وبين عبادك فتحمله عنا فانت الله الواحد القهار الديان الله امين وصلي اللهم علي سيدنا محمد وعلي اله وصحبه اجميعن ومن بتعه باحسان الي يوم الدين
امين امين امين امين امين

رابط هذا التعليق
شارك

الحمد لله والصلاه والسلام علي رسول الله صلي الله عليه وسلم
اللهم ربنا يا اله كل شئ وخالق كل شئ لا تسالنا عن شئ واغفر لنا كل شئ
انا واخي الكريم واخواننا وجميع المسلمين والمسلمات والمؤمنين والمؤمنات من اول الخلق الي يوم الدين وكل من له علينا حق واغتبناه او بهتناه او نلنا منه بما لا يرضيك واجعله له نورا يوم القيامه
اللهم ربنا ما بيينا وبين جلالتك فاغفره لنا فانت الغفور الرحيم لا غفور غيرك وما بيننا وبين عبادك فتحمله عنا فانت الله الواحد القهار الديان الله امين وصلي اللهم علي سيدنا محمد وعلي اله وصحبه اجميعن ومن بتعه باحسان الي يوم الدين
امين امين امين امين امين




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

  • بعد 2 أسابيع...
الحمد لله والصلاه والسلام علي رسول الله صلي الله عليه وسلم
اللهم ربنا يا اله كل شئ وخالق كل شئ لا تسالنا عن شئ واغفر لنا كل شئ
انا واخي الكريم واخواننا وجميع المسلمين والمسلمات والمؤمنين والمؤمنات من اول الخلق الي يوم الدين وكل من له علينا حق واغتبناه او بهتناه او نلنا منه بما لا يرضيك واجعله له نورا يوم القيامه
اللهم ربنا ما بيينا وبين جلالتك فاغفره لنا فانت الغفور الرحيم لا غفور غيرك وما بيننا وبين عبادك فتحمله عنا فانت الله الواحد القهار الديان الله امين وصلي اللهم علي سيدنا محمد وعلي اله وصحبه اجميعن ومن بتعه باحسان الي يوم الدين
امين امين امين امين امين




أخي الكريم شعارك جميل وهو شعار أعتز به ولكن يا ريت بلاش أساليب الدعاية المباشرة هذه فهذا منتدي تعليمي لا مجال تسويق أرقام هواتف و بريد إليكتروني



(( إن بعض الظن إثم))
الاخ اشرف انا أعرفه...وليس هدفه هو الدعاية سواء كانت بطرق مباشرة أو غير مباشرة...
أسأل الله لك الشفا العاجل أخي أشرف...
رابط هذا التعليق
شارك

سأشرح لك أخي العزيز الموضوع باختصار:
view: وهو عبارة عن استعلام يتيح لك ادخال وتعديل وحذف البيانات من جدول معين او جزء منه اعتمادا على كود معين
مثال :create or replace view emp1 as select ename,sal,comm from emp
فهنا نستطيع مشاهدة وتعديل وحذف فقط الاسماء والرواتب والعمولات فقط

index: وهو عبارة عن فهرسة لحقل معين وذلك من أجل تسهيل عمليات البحث ضمن الجدول وله نوعان bit map and tree map

synonym: وهو عبارة عن اسم مختصر للتعامل مع الجداول ويمن تشبيهه بال alias ولكنه خاص بالجدول

أرجو أن أكون قد وفقت بالإجابة على اسألتك وإذا عندك أي استفسار تاني أنا جاهز

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية