انقر هنا لتحميل الملف
Download
Report
Transcript انقر هنا لتحميل الملف
ORACLE
&
SQL
Database
2
EMPNO ENAME
3
JOB
4
MGR
HIREDATE
SAL
COMM DEPTNO
6
------------- ------------ --------------------- -------- ---------------- ----------- --------------
1
7839 ALI
PRESIDENT
7698 AHMAD
MANAGER
7782 OMAR
7566 SALM
-----------
17-NOV-81
5000
10
7839
01-MAY-81
2850
30
MANAGER
7839
09-JUN-81
2450
10
MANAGER
7839
02-APR-81
2975
20
7654 MHAMAD SALESMAN
7698
28-SEP-81
1250
1400
30
7499 ADEL
SALESMAN
7698
20-FEB-81
1600
300
30
7844 JAMAL
SALESMAN
7698
08-SEP-81
1500
0
30
7900 JASIM
CLERK
7698
03-DEC-81
950
7521 WALED
SALESMAN
7698
22-FEB-81
1250
5
30
500
30
Data Storage on Different Media
SALGRADE
GRADE
LOSAL
HISAL
--------- --------- --------DEPT
1
700
1200
DEPTNO DNAME
LOC
2
1201
1400
--------- -------------- ---------3
1401
2000
10 ACCOUNTING
NEW YORK
4
2001
3000
20 RESEARCH
DALLAS
5
3001
9999
30 SALES
CHICAGO
40 OPERATIONS
BOSTON
Database
Electronic
spreadsheet
Filing cabinet
Definition of a Relational
Database
ِ هي عبارة عن مجموعة من العالقا: قاعدة البيانات العالئقية
الجداول
ت أَو
ِ
الثنائية األبعا ِد ترتبط بحقل معين يعرف بالمفتاح األساسي في الجدول األول
. والمفتاح الخارجي في الجدول الثاني
Database
Table Name: EMP
EMPNO
ENAME
7839
7698
7782
ALI
AHMAD
OMAR
7566
SALM
JOB
Table Name: DEPT
DEPTNO
DEPTNO
DNAME
LOC
PRESIDENT
MANAGER
MANAGER
10
30
10
10
20
30
COMPUTER
PROGRAMING
LIPRARY
MOSUL
BAGDAD
BASRA
MANAGER
20
40
ARATHMITIC
ANBAR
Relating Multiple Tables
كل حقل من البيانات في الجدول يكون وحيد وبدون تكرار ممكن
primary key (PK) أن يكون
بإمكانك أن تتعامل مع البيانات منطقيا من خالل استخدامك لعدة جداول
foreign keys (FK) وباستخدام المفتاح الثانوي أو األجنبي
Table Name: EMP
EMPNO
7839
7698
7782
7566
ENAME
KING
BLAKE
CLARK
JONES
Primary key
Table Name: DEPT
JOB
PRESIDENT
MANAGER
MANAGER
MANAGER
DEPTNO
10
30
10
20
Foreign key
DEPTNO
10
20
30
40
DNAME
ACCOUNTING
RESEARCH
SALES
OPERATIONS
Primary key
LOC
NEW YORK
DALLAS
CHICAGO
BOSTON
Communicating with a RDBMS
Using SQL
SQL لالتصال مع قواعد البيانات العالئقية نستخدم
SQL statement
is entered
SQL> SELECT loc
2 FROM
dept;
Statement is sent to
database
Database
Data is displayed
LOC
---------MOSUL
BAGDAD
BASRA
ANBAR
• بداية أوراكل كانت في عام 1977فقد قامت مؤسسة
Relation Software Incorporatedببناء نظام
إلدارة قواعد بيانات )( RDBMSوأسمته Oracleقامت
هذه المؤسسة بتطوير النظام باستخدام واجهة Cو SQL
ثم تم اإلعالن عن اإلصدار األول Version 1عام 1979
وبعد ذلك ظهر اإلصدار الثاني .ثم أعلن عن اإلصدار الثالث
Version 3في عام 1983حيث أجريت عليه الكثير من
التحسينات خاصة تلك المتعلقة بلغة االستفسارات المهيكلة
( )SQLوتعزيز ألداء البرنامج كما احتوى على تحسينات
أخرى كان هذا اإلصدار على عكس اإلصدارات السابقة مكتوبا
بلغة Cبشكل كامل
• ثم ظهر اإلصدار الرابع من Oracleفي عام 1984
وبعدها بحوالي سنة من هذا اإلصدار تم ظهور اإلصدار
الخامس وقد كان هذا اإلصدار أول برنامج يدخل مفهوم
Client/Serverالبرمجي الى اللغات البرمجية باستخدام
SQL . Netثم ظهر اإلصدار الثامن Oracle 8في عام
1997وقد أضاف إمكانيات جديدة إلى إدارة قواعد البيانات.
وخالل فترة ليست بالبعيدة ظهرت نسخة Oracle 8i
المحدثة وتلتها النسختين Oracle 9i , Oracle 9
وأخيرا فقد تم إصدار Oracle 10gليمثل ثورة حقيقية في
أسلوب ربط السيرفرات والعمل في بيئة أكثر سهولة والذي
يتضمن العديد من الميزات والتقنيات وأدوات إدارة قواعد
البيانات والسماح لوجود حقول تتسع إلى حد 4GBللحقل
الواحد كحد أقصى.
ما هى أال وراكل ؟
•
االوراكل :أوراكل ليست لغة برمجية وإنما هي نظام إلدارة قواعد
(Relation Data Base )RDBMS
البيانات العالئقية
Management systemو إدارة معلومات العمل المطلوبة من
خالل تحويلها إلى قاعدة بيانات عملية تفيد في اتخاذ القرارات
ومراقبة أداء العمل وتحسين اإلنتاجية والوصول إلى سرعة قصوى
في إنجاز األعمال .
على ماذا تعتمد أوراكل ؟
• لغة (Structured Query Language )SQL
• لغة PL/SQLفى كتابة البرامج والـ Functions
الخاصة فهي تساعد في استدعاء الروتينيات Procedures
المكتوبة بلغات أخرى مثل Javaو . C-language
• Oracle Developer
)Structured Query Language(SQL
لغة االستعالم المهيكلة
• هي عبارة عن تعليمات برمجية تستخدم للتعامل مع قواعد البيانات
وهذه اللغة تدعم مجموعة من اللغات البرمجية مثل Cأو VBأو
Javaوغيرها ومن خاللها تستطيع الوصول إلى البيانات المخزنة
وإجراء عدة عمليات عليها مثل( إضافة ،تعديل ،حذف ) في جداول تم
تصميمها من خالل احد التطبيقات التي نستخدمها.
)Data Definition language (DDL
• القسم األول:
• لغة تعريف البيانات :و هي التي تتعامل مع الهيكل
األساسي للقاعدة وتستخدم لتثبيت وتغيير تركيبات أوبنية
البيانات في الجدول بشكل عام وهذه االيعازات اليمكن
التراجع بعد تنفيذها.
• ومن أهم ايعازاتها مايلي:
• Createإنشاء جدول
• Drop
إلغاء جدول
• Alterتعديل جدول
)Data manipulation language(DML
• القسم الثاني :
لغة معالجة البيانات :وهي اللغة التي تتعامل مع البيانات
داخل الجدول ويمكن التراجع بعد تنفيذ تعليماتها النها
التتعامل مع الهيكل
أهم ايعازاتها مايلي:
•
Insertإلضافة البيانات
• Update
تحديث بيانات
• Deleteحذف بيانات
• Selectاسترجاع بيانات وعرضها.
)Data Control language (DCL
• القسم الثالث :
لغة التحكم في البيانات وهي التي تمنح االمتيازات والصالحيات
للمستخدمين أو تعمل على سحب الصالحيات وإلغاءها
أهم ايعازاتها :
• Grant
لمنح وإعطاء الصالحيات للمستخدمين
• و Revokeلسحب الصالحيات وإلغاءها.
• Drop
لحذف او اسقاط جدول
Controlling User Access
Database
administrator
Username and password
privileges
Users
Privileges
•Database security
– System security
– Data security
System Privileges
• More than 80 privileges are available.
• The DBA has high-level system
privileges:
– Create new users
– Remove users
– Create new tables
– Remove tables
– Back up tables
Creating Users
The DBA creates users by using the
CREATE USER statement.
CREATE
IDENTIFIED
USER user
BY
password;
SQL> CREATE
2 IDENTIFIED
User created.
USER ALI
BY
AAA;
User System Privileges
• Once a user is created, the DBA can grant
specific system privileges to a user.
GRANT privilege [, privilege...]
TO user [, user...];
• An application developer may have the
following system privileges:
– CREATE TABLE
– CREATE SEQUENCE
– CREATE VIEW
– CREATE PROCEDURE
Granting System Privileges
The DBA can grant a user specific system
privileges.
SQL> GRANT create table, create sequence, create view
2 TO
ALI;
Grant succeeded.
What Is a Role?
Users
Manager
Privileges
Allocating privileges
without a role
Allocating privileges
with a role
Creating and Granting Privileges
to a Role
SQL> CREATE ROLE manager;
Role created.
SQL> GRANT create table, create view
2
to manager;
Grant succeeded.
SQL> GRANT manager to ALI, AHMAD;
Grant succeeded.
Granting Object Privileges
• Grant query privileges on the EMP table.
SQL> GRANT
select
2 ON
emp
3 TO
omar, ahmad;
Grant succeeded.
• Grant privileges to update specific
columns to users and roles.
SQL> GRANT
update (dname, loc)
2 ON
dept
3 TO
ALI, Adel;
Grant succeeded.
Using WITH GRANT OPTION
• Give a user authority to pass along the
privileges.
SQL> GRANT
select, insert
2 ON
dept
3 TO
ALI
4 WITH GRANT OPTION;
Grant succeeded.
Revoking Object Privileges
As user Alice, revoke the SELECT and
INSERT privileges given to user ALI on
the DEPT table.
SQL> REVOKE select, insert
2 ON
dept
3 FROM
ALI;
Revoke succeeded.
عبارة التكوين CREATE TABLE
• بداية يجب أن يكون لديك امتياز إنشاء جدول ومساحة
للتخزين ويجب أن تخصص اسم للجدول وأسماء األعمدة
وأنواع البيانات لكل منها وقياس كل عمود :
الصيغة العامة:
tablename
CREATE TABLE
; ) ]( column datatype [DEFAULT expr
لتكوين جدول الموظفين:مثال
SQL>CREATE TABLE
(
emp
empno
NUMBER(6),
ename
VARCHAR2(14),
Jop
VARCHAR2(14),
Hiredate date,
Sal
NUMBER(10,3),
Comm
NUMBER(10,3),
Deptno
NUMBER(2) NOT NULL );
لتكوين جدول األقسام:مثال
SQL>CREATE TABLE
DEPTNO
dept (
NUMBER(2 ) NOT NULL,
DNAME
VARCHAR2(14),
LOC
VARCHAR2(13) );
SQL> DESCRIBE dept
Name
---------DEPTNO
DNAME
LOC
Null?
-------NOT NULL
Type
--------NUMBER(2)
VARCHAR2(14)
VARCHAR2(14)
INSERT عبارة اإلدخال
• الصيغة العامة
SQL>INSERT INTO table [ (column1,
column)]
VALUES (value,
value…(;
:مثال
SQL> INSERT INTO dept (deptno, dname, Loc)
VALUES ( 10, ‘Computer' , ‘Mosul' ( ;
SQL>COMMIT ;
مالحظة:
يمكن تخصيص قيمة افتراضية للعمود أثناء عملية اإلدخال كما
في المثال التالي :
Hiredate DATE DEFAULT SYSDATE ,
……..
إدخال قيم خاصة باستخدام التوابع
Special Value Inserting
: مثال
SQL> INSERT INTO emp (empno, ename, job,
hiredate, Sal, comm, deptno)
VALUES ( 15, 'Ali' , 'programmer ' ,
SYSDATE, 2000, NULL, 10 ) ;
في المثال السابق بإدراج قيمةSYSDATE يقوم التابع
hiredate التاريخ الحالي ضمن الحقل
: للتحقق نضع
SQL> SELECT * FROM
emp
WHERE empno = 15 ;
EMPNO
-----15
ENAME
---------ali
JOB
HIREDATE
SAL
---------
--------------
----------
17/04/2013
2000
programmer
COMM
--------
DEPTNO
---------10
EMP
EMPNO ENAME
JOB
HIREDATE
SAL
COMM
DEPTNO
--------- ---------- --------- --------- --------- --------- --------15
ALI
PRESIDENT 17-NOV-81
2000
10
7698 AHMAD
MANAGER
01-MAY-81
7782 OMAR
MANAGER
09-JUN-81
7566 SALM
MANAGER
02-APR-81
7654 MOHAMAD
SALESMAN
28-SEP-81
7499 ADEL
SALESMAN
20-FEB-81
7844 JAMAL
SALESMAN
08-SEP-81
7900 JASIM
CLERK
03-DEC-81
DEPTNO DNAME
LOC
WALED
SALESMAN
---------7521
-----------------------22-FEB-81
10 COMPUTER
MOSUL
20 PROGRAMMER
BAGDAD
30 LIPRARY
BASRA
40 ANLYSES
ANBAR
DEPT
2850
2450
2975
1250
1600
1500
950
1250
1400
300
0
500
30
10
20
30
30
30
30
30
SQL> UPDATE emp
SET
deptno = 15
WHERE deptno = 16 ;
SQL> COMMIT ;
SQL>DELETE FROM emp ;
SQL>ROLLBACK ;
:الصيغة العامة
DROP TABLE
table_name;
DROP TABLE employee;
لو كان الجدول مرتبط بعالقات مع جدول آخر فقط نضيف
CASCADE CONSTRAINTS
DROP TABLE stud CASCADE
CONSTRAINTS;
عبارة
• SELECT
ename, sal
FROM
emp
ORDER BY
sal ASC ;
• SELECT ename, sal
FROM
emp
ORDER BY
sal
DESC;
Group Byعبارة
SQL> SELECT
From
deptno , AVG ( sal )
emp
GROUP BY deptno ;
DEPTNO
AVG(SAL)
----------
--------------
10
2916.66667
20
2175
30
1566.66667
Aggregating Data
Using Group Functions
What Are Group Functions?
Group functions operate on sets of rows to give
one result per group.
EMP
DEPTNO
SAL
--------- --------10
2450
10
5000
10
1300
20
800
20
1100
20
3000
20
3000
20
2975
30
1600
30
2850
30
1250
30
950
30
1500
30
1250
“maximum
salary in
the EMP table”
MAX(SAL)
--------5000
Types of Group Functions
• AVG
• COUNT
• MAX
• MIN
• SUM
Using Group Functions
SELECT
FROM
[WHERE
[GROUP BY
[ORDER BY
[column,] group_function(column)
table
condition]
column]
column];
Using AVG and SUM Functions
You can use AVG and SUM for numeric data.
SQL> SELECT
2
3 FROM
4 WHERE
AVG(sal), MAX(sal),
MIN(sal), SUM(sal)
emp
job LIKE ‘manager%';
AVG(SAL) MAX(SAL) MIN(SAL) SUM(SAL)
-------- --------- --------- --------1400
1600
1250
5600
SQL> SELECT
2 FROM
MIN(hiredate), MAX(hiredate)
emp;
MIN(HIRED MAX(HIRED
--------- --------17/3/2010 12/1/2013
Using the COUNT Function
COUNT(*) returns the number of rows in a
table.
SQL> SELECT
2 FROM
3 WHERE
COUNT(*)
--------6
COUNT(*)
emp
deptno = 30;
Using the COUNT Function
COUNT(expr) returns the number of
nonnull rows.
SQL> SELECT
2 FROM
3 WHERE
COUNT(COMM)
----------4
COUNT(comm)
emp
deptno = 30;
Group Functions and Null Values
Group functions ignore null values in the
column.
SQL> SELECT AVG(comm)
2 FROM
emp;
AVG(COMM)
--------550
Creating Groups of Data
EMP
DEPTNO
SAL
--------- --------10
2450
10
5000
10
1300
20
800
20
1100
20
3000
20
3000
20
2975
30
1600
30
2850
30
1250
30
950
30
1500
30
1250
2916.6667
“average
DEPTNO AVG(SAL)
salary
------- --------in
EMP
2175
10 2916.6667
table
20
2175
for each
department”
30 1566.6667
1566.6667
معدل الراتب لكل قسم
Using the GROUP BY Clause
All columns in the SELECT list that are not
in group functions must be in the GROUP
BY clause.
SQL> SELECT
deptno, AVG(sal)
2 FROM
emp
3 GROUP BY deptno;
DEPTNO AVG(SAL)
--------- --------10 2916.6667
20
2175
30 1566.6667
Using the GROUP BY Clause
The GROUP BY column does not have to
be in the SELECT list.
SQL> SELECT
AVG(sal)
2 FROM
emp
3 GROUP BY deptno;
AVG(SAL)
--------2916.6667
2175
1566.6667
Grouping by More
Than One Column
EMP
DEPTNO
--------10
10
10
20
20
20
20
20
30
30
30
30
30
30
JOB
SAL
--------- --------MANAGER
2450
PRESIDENT
5000
CLERK
1300
CLERK
800
CLERK
1100
ANALYST
3000
ANALYST
3000
MANAGER
2975
SALESMAN
1600
MANAGER
2850
SALESMAN
1250
CLERK
950
SALESMAN
1500
SALESMAN
1250
“sum salaries in
the EMP table
for each job,
grouped by
department”
DEPTNO
-------10
10
10
20
20
20
30
30
30
JOB
SUM(SAL)
--------- --------CLERK
1300
MANAGER
2450
PRESIDENT
5000
ANALYST
6000
CLERK
1900
MANAGER
2975
CLERK
950
MANAGER
2850
SALESMAN
5600
معدل الراتب لكل وظيفة
:مثال
كون استعالم لعرض رقم المشروع و اسم المشروع و عدد العاملين في
هذه المشاريع مرتبة على شكل مجاميع؟
SELECT PNUMBER , PNAME , COUNT
FROM
PROJECT
GROUP BY
; PNUMBER , PNAME
COUNT
--------
PNAME
-----------------
PNOUMBER
--------------
120
M11
12
150
k22
22
110
P88
23
PL/SQLلغة اإلجراءات
• لغة PL/SQLهي امتداد للغة SQLوبمميزات لغات
البرمجة .تعمل على معالجة البيانات وعبارات االستعالم
وتتضمن وحدات برمجية وهي البروسيجر .وتعتبر اللغة
البرمجية الخاصة بنظام أوراكل وهي أداة برمجية قوية جدا
(Procedure
وكلمة PL/SQLاختصارا لـ
) Language/ Structure Query Language
وتستخدم هذه اللغة لتجهيز نظام Oracleفي أدوات
التطوير المنتجة من قبل شركة Oracleوهي تعتبر أساس
برنامج بناء النماذج Oracle Formsو Oracle
Reportsوتستخدم هذه اللغة أيضا لتعريف نموذج ما
والقيام ببعض الحسابات الخاصة في التقرير .
PL/SQL Environment
PL/SQL engine
PL/SQL
block
PL/SQL
block
PL/SQL
SQL
Procedural
Statement
Executor
SQL Statement Executor
Oracle Server
ORACLE DEVELOPER
وهو برنامج تطبيقي منفصل عن أوراكل نستطيع أن نقول وجد
لخدمة أوراكل ومهمته تطوير التطبيقات التي تتصل بقواعد
بيانات أوراكل ومن أهم استخداماته هي مايلي:
• يستخدم في عمل الواجهات والنماذج الـ Forms
• يستخدم في تطوير التطبيقات الكبيرة الجيدة والقابلة للصيانة
ويوفر تطبيقات كفوءة وقياسية.
• يعرض التطبيقات على الشبكة العنكبوتية WWW
واالنترنت.
Developer Component
مكونات ديفيلوبر
يتكون الـ Developer 6iمن البرامج التالية:
• برنامج لتصميم النماذج Form Builder
• برنامج لبناء التقارير Report Builder
• برنامج لبناء الرسومات Graphics Builder
-1برنامج تصميم النماذج Form Builder
يستخدم هذا البرنامج في بناء النماذج والواجهات ألي نظام بعد أن نكون
قد كونا قاعدة بيانات وباستخدام لغة SQLوالمعلومات المخزونة في
قاعدة البيانات ويستخدم في إدارة عمليات اإلضافة ،االسترجاع عن
طريق النماذج والتحكم بالخصائص المختلفة للعناصر Itemsوبناء
القادحة Triggerالخاصة بكل وحدة من هذه العناصر في مصمم
النماذج .يقوم هذا البرنامج بإضافة الصور في النماذج واستدعاء
التقارير أو بناء الواجهة المستقلة ويكون بثالثة أنواع :
• Form Module
• Menu Module
• Library Module
• Form Module
نموذج الواجهة :هو النموذج الرئيسي ويتكون من مجموعة
العناصر Itemsيتمكن المستخدم من خاللها االتصال والتعامل مع
قاعدة البيانات والتي سبق وان كونها باستخدام الـ . SQL
• :Menu Module
نموذج القوائم :يحتوي على القائمة ورمز القائمة التي تتصل مع
الواجهة .Form
• :Library Module
نموذج المكتبات Pl/SQL :وهو مجموعة من اإلجراءات
والدوال ،الحزم التي يتم استدعائها من قبل نموذج في التطبيق.
-2برنامج بناء التقارير Report Balder
يكون بناء التقارير بعدة صيغ واشكال فقد يكون
بصيغة جدولية او بشكل صفة رئيسية او فرعية
او بشكل مصفوفة وغير ذلك.
-3برنامج بناء الرسومات Graphic
:Builder
يعمل على عرض البيانات وتطوير التطبيقات
الرسومية مثل المخططات الرسومية والتحليلية.