SlideShare uma empresa Scribd logo
1 de 66
Baixar para ler offline
SQL vs NoSQL Databases
Algiers Tech Meetup #11
<Insert Picture Here>
Presentation of Oracle database
products for Beginners
AGUEDAL Yazid
Senior Database administration consultant
IT Synergy General Manager
aguedal@itsynergy-dz.com
Agenda
• History and evolution of Oracle Database
products
• Fundamental concepts of Oracle Database
• Some Advanced features
• The Cloud and Oracle 12c
• Q&A
The History of Oracle
• Founded in August 1977 by Larry Ellison, Bob Miner,
Ed Oates and Bruce Scott, Oracle was initially named
after "Project Oracle" a project for one of their clients,
the C.I.A, and the company that developed Oracle
was dubbed "Systems Development Labs", or SDL.
Although they may not have realized it at the time,
these four men would change the history of database
management forever.
• In 1978 SDL was renamed Relational Software Inc
(RSI) to market their new database.
• 1977: Larry Ellison and friends founded Software Development
Laboratories (SDL).
• 1978: Oracle Version 1, written in assembly language, runs on
PDP-11 under RSX, in 128K of memory. Implementation
separates Oracle code and user code. Oracle V1 is never
officially released.
• 1979: SDL changed its company-name to "Relational Software,
Inc." (RSI) and introduced its product Oracle V2 as an early
relational database system - often cited[
as the first commercially
sold RDBMS.The version did not support transactions, but
implemented the basic SQL functionality of queries and joins.
(RSI never released a version 1 - instead calling the first
version version 2 as a marketing gimmick.)
• 1982: RSI in its turn changed its name, becoming known as "
Oracle Corporation",[
to align itself more closely with its flagship
product.
• 1983: The company released Oracle version 3, which it had re-
written using the C programming language, and which
supported COMMIT and ROLLBACK functionality for
transactions. Version 3 extended platform support from the
existing Digital VAX/VMS systems to include Unix environments.
• 1984: Oracle Corporation released Oracle version 4, which
supported read-consistency. In October it also released the first
Oracle for the IBM PC.
• 1985: Oracle Corporation released Oracle version 5, which
supported the client–server model—a sign of networks
becoming more widely available in the mid-1980s.
• 1986: Oracle version 5.1 started supporting distributed queries.
• 1988: Oracle RDBMS version 6 came out with support for
PL/SQL embedded within Oracle Forms v3 (version 6 could not
store PL/SQL in the database proper), row-levellocking and hot
backups.
• 1989: Oracle Corporation entered the application-products
market and developed its ERP product, (later to become part of
the Oracle E-Business Suite), based on the Oracle relational
database.
• 1990: the release of Oracle Applications release 8
• 1992: Oracle version 7 appeared with support for
referential integrity, stored procedures and triggers.
• 1997: Oracle Corporation released version 8, which
supported object-oriented development
and multimedia applications.
• 1999: The release of Oracle8i aimed to provide a database inter-
operating better with the Internet (the i in the name stands for
"Internet"). The Oracle8i database incorporated a native Java
virtual machine (Oracle JVM, also known as "Aurora").
• 2000: Oracle E-Business Suite 11i pioneers integrated
enterprise application software
• 2001: Oracle9i went into release with 400 new features,
including the ability to read and write XML documents. 9i also
provided an option for Oracle RAC, or "Real Application
Clusters", a computer-cluster database, as a replacement for the
Oracle Parallel Server (OPS) option.
• 2002: the release of Oracle 9i Database Release 2 (9.2.0)
• 2003: Oracle Corporation released Oracle Database 10g, which
supported regular expressions. (The g stands for "grid";
emphasizing a marketing thrust of presenting 10g as "grid
computing ready".)
• 2005: Oracle Database 10.2.0.1—also known as Oracle
Database 10g Release 2 (10gR2)—appeared.
• 2006: Oracle Corporation announces Unbreakable Linux and
acquires i-flex
• 2007: Oracle Database 10g release 2 sets a new world
record TPC-H 3000 GB benchmark result
• 2007: Oracle Corporation released Oracle Database
11g for Linux and for Microsoft Windows.
• 2008: Oracle Corporation acquires BEA Systems.
• 2010: Oracle Corporation acquires Sun Microsystems.
• 2011: Oracle Corporation acquires web content management
system FatWire Software.
• 2011: On 18 October, Oracle Corporation acquires Endeca
Technologies Inc. faceted search engine software vendor.
• 2013: Oracle Corporation released Oracle Database 12c
for Linux, Solaris and Windows. (The c stands for "cloud")
• 2016: Oracle Corporation released Oracle Database 12
c Release 2
Database
Data files
Online redo
log files
Control
files
Oracle Database Architecture: Overview
Database
buffer
cache
Shared pool
Data dictionary
cache
Library
cache
PMONSMON Others
Server
process
PGA
Archived
log files
User
process
Instance
RECO
ARCn
SGA
DBWn
Redo log
buffer
LGWRCKPT
Database
Oracle Database Server Structures
PMONSMON Others
Data files
Online redo
log files
Control
files
Instance
RECOARCnDBWn LGWRCKPT
Storage structures
User
process
Server
process
Memory structures
Processes
Database
buffer
cache
Shared pool
Data dictionary
cache
Library
cache
SGA
Redo log
buffer
Oracle Database
Memory Structures
DB structures
Memory
- Process
- Storage
SGA
Database buffer
cache
Redo log
buffer
Java
pool
Streams
pool
Shared pool
Large pool
PGA PGA PGA
Background
process
Server
process 1
Server
process 2
Shared
SQL area
Library
cache
Data dictionary
cache
Other
I/O buffer
Response
queue
Request
queue
Free
memory
Process Architecture
• User process
• Is started when a database user or a batch process
connects to Oracle Database
• Database processes
• Server process: Connects to the Oracle instance and is
started when a user establishes a session
• Background processes: Are started when an Oracle
instance is started
DB structures
- Memory
 Process
- Storage
PMONSMON Others
Instance
RECOARCnDBWn LGWRCKPT
PGA
User
process
Server
process Background processes
Database
buffer
cache
Shared pool
Data dictionary
cache
Library
cache
SGA
Redo log
buffer
Database Storage Architecture
Online redo log files
Password file
Parameter file Archived redo log
files
Control files Data files
Alert log and trace files
Backup files
DB structures
- Memory
- Process
 Storage
D E M O
Utiliser le langage SQL pour interroger
une base de données
• Le langage SQL (Structured Query Language) est :
• le langage normalisé par l'ANSI pour la gestion
des bases de données relationnelles
• efficace, facile à apprendre et simple d'utilisation
• complet sur le plan fonctionnel (il permet de définir, d'extraire et
de manipuler des données dans les tables)
SELECT department_name
FROM departments;
Serveur
Oracle
Instructions SQL
•
• SELECT
• INSERT
• UPDATE
• DELETE
• MERGE•
•
• CREATE
• ALTER
• DROP
• RENAME
• TRUNCATE
• COMMENT
•
• GRANT
• REVOKE
•
•
• COMMIT
• ROLLBACK
• SAVEPOINT•
•
Langage de manipulation
de données (LMD)
Langage de définition
de données (LDD)
Contrôle des transactions
Langage de contrôle
de données (LCD)
Environnements de développement
pour le langage SQL
• Dans le cadre de ce cours :
• Utilisez en priorité Oracle SQL Developer version 1.2
• Utilisez SQL*Plus :
• si vous n'avez pas accès à Oracle SQL Developer
• ou si une commande ne fonctionne pas dans Oracle SQL
Developer
SQL Developer SQL *Plus
Oracle SQL Developer : Présentation
• Oracle SQL Developer est un outil graphique améliorant
la productivité et simplifiant les tâches de développement liées
aux bases de données.
• Vous pouvez vous connecter à n'importe quel schéma
de base de données Oracle cible à l'aide de l'authentification de
base de données Oracle standard.
SQL Developer
Oracle SQL Developer : Caractéristiques
• Développé en langage Java
• Prend en charge les plates-formes Windows,
Linux et Mac OS X
• Connectivité par défaut à l'aide du pilote JDBC thin
• Ne requiert aucun installeur
• Décompressez le kit Oracle SQL Developer téléchargé
et cliquez deux fois sur sqldeveloper.exe pour lancer
Oracle SQL Developer.
• Se connecte à n'importe quelle base de données Oracle
de version 9.2.0.1 ou ultérieure
• Téléchargement gratuit à partir du lien suivant :
• http://www.oracle.com/technology/products/database/
sql_developer/index.html
• Nécessite l'installation sur votre système du kit JDK 1.5,
qui peut être téléchargé à partir du lien suivant :
• http://java.sun.com/javase/downloads/index_jdk5.jsp
Interface d'Oracle SQL Developer
Pour pouvoir utiliser
SQL Developer afin
d'exécuter des
interrogations SQL sur
un schéma de base de
données, vous devez
d'abord définir une
connexion.
Créer une connexion de base de
données
• Pour utiliser Oracle SQL Developer, vous devez disposer d'au
moins une connexion de base de données.
• Vous pouvez créer et tester des connexions pour :
• plusieurs bases de données
• plusieurs schémas
• Oracle SQL Developer importe automatiquement toutes les
connexions définies dans le fichier tnsnames.ora
de votre système.
• Vous pouvez exporter des connexions vers un fichier XML.
• Chaque nouvelle connexion de base de données créée est
répertoriée dans la hiérarchie du navigateur de connexions.
Créer une connexion de base de
données 1
2
3
Consulter les objets de base de
données
• Utilisez le navigateur de connexions pour :
• naviguer dans la liste des objets d'un schéma
de base de données
• consulter d'un coup d'oeil les définitions des objets
Utiliser SQL Worksheet
• Utilisez SQL Worksheet pour entrer et exécuter
des instructions SQL, PL/SQL et SQL*Plus.
• Indiquez les actions qui peuvent être traitées par la connexion de
base de données associée à SQL Worksheet.
Entrez des
instructions SQL.
Les résultats
sont affichés ici.
Utiliser SQL Worksheet
1 2
3
4
5
6
7
8 9
Exécuter des instructions SQL
• Entrez une ou plusieurs instructions SQL dans la zone
Enter SQL Statement.
F9 F5
F9
F5
Formater le code SQL
Avant
formatage
Après
formatage
Enregistrer des instructions SQL
1
2
3
Exécuter des fichiers script
1
2
3
Instructions SQL dans SQL*Plus
• Dans Oracle Database 11g, SQL*Plus est une interface
de ligne de commande.
I - 35
Coder PL/SQL dans Oracle SQL
Developer
• Oracle SQL Developer est un outil graphique gratuit qui
augmente la productivité et simplifie les tâches de
développement de base de données.
• Vous pouvez vous connecter à n'importe quel schéma de base
de données Oracle cible en utilisant l'authentification de base de
données Oracle standard.
• Dans ce cours, vous allez utiliser SQL Developer.
SQL Developer
I - 36
Exécuter du code PL/SQL dans
SQL*Plus
I - 37
Générer du code PL/SQL dans Oracle
JDeveloper
Editer
Exécuter
I - 38
Démarrer SQL Developer et
créer une connexion de base de données
1 - 39
A propos du langage PL/SQL
• Le langage PL/SQL :
• signifie "Procedural Language extension to SQL"
(extension procédurale du langage SQL)
• est le langage standard d'accès aux données d'Oracle
Corporation pour les bases de données relationnelles
• intègre de manière transparente les structures procédurales au
langage SQL
1 - 40
A propos du langage PL/SQL
• Caractéristiques du langage PL/SQL :
• Il offre une structure de bloc pour les unités de code
exécutables. Cette structure bien définie facilite la maintenance
du code.
• Il fournit des structures procédurales :
• Variables, constantes et types de données
• Structures de contrôle, telles que les instructions
conditionnelles et les boucles
• Programmes réutilisables qui peuvent être exécutés
plusieurs fois
1 - 41
Environnement PL/SQL
Moteur PL/SQL
Serveur de base de données Oracle
Programme d'exécution
des instructions SQL
Programme
d'exécution
des instructions
procédurales
instruction
procédurale
SQL
Bloc
PL/SQL
1 - 42
Avantages liés à l'utilisation du
langage PL/SQL
• Intégration de structures procédurales au langage SQL
• Amélioration des performances
SQL
IF...THEN
SQL
ELSE
SQL
END IF;
SQL
SQL 1
SQL 2
…
1 - 43
Avantages liés à l'utilisation du
langage PL/SQL
• Développement de programme modulaire
• Intégration aux outils Oracle
• Portabilité
• Traitement des exceptions
1 - 44
Structure d'un bloc PL/SQL
• DECLARE (facultatif)
• Variables, curseurs, exceptions définies par l'utilisateur
• BEGIN (obligatoire)
• Instructions SQL
• Instructions PL/SQL
• EXCEPTION (facultatif)
• Actions à effectuer lorsque
des erreurs se produisent
• END; (obligatoire)
1 - 45
Types de bloc
• Bloc anonyme
Procédure Fonction
[DECLARE]
BEGIN
--statements
[EXCEPTION]
END;
PROCEDURE name
IS
BEGIN
--statements
[EXCEPTION]
END;
FUNCTION name
RETURN datatype
IS
BEGIN
--statements
RETURN value;
[EXCEPTION]
END;
1 - 46
Créer un bloc anonyme
• Entrez le bloc anonyme dans l'espace de travail SQL Developer :
1 - 47
Exécuter un bloc anonyme
• Cliquez sur le bouton Run Script pour exécuter le bloc anonyme :
Run Script
VLDB Manageability and
Performance Constraints
• Table availability:
• It is too costly to have a large table inaccessible for hours
because of recovery.
• Large tables can be more vulnerable to disk failure.
• Large-table manageability:
• They take too long to be loaded.
• Indexes take too long to be built.
• Partial deletes take hours, and even days.
• Performance considerations:
• Large-table and large-index scans are costly.
• Scanning a subset improves performance.
Manual Partitions Versus Partitioning
SALES_10 SALES_1
1
SALES_12
SALES (view)
P11P10 P12
Manual
partitions
(tables)
UNION ALL
SALES (partitioned table)
Partitioned Tables and Indexes
• Large tables and indexes can be partitioned into smaller,
more manageable pieces. Each piece is a segment.
Table T1 Index I1
Table T1 Index I1
Table Versus Index Partitioning
A nonpartitioned table can
have partitioned or
nonpartitioned indexes.
•A partitioned table can
have partitioned or
nonpartitioned indexes.
Table T1
Index I1 Index I2
Table T2
Index I3 Index I4
Partitioning Strategies:
Single-Level Partitioning
• Range partitioning: Maps data to partitions based on ranges
of partition key values for each partition
• Hash partitioning: Maps data to partitions by using a
hashing algorithm applied to a partitioning key
• List partitioning: Maps data to partitions by using a list of
discrete values for the partitioning column
• Interval partitioning: Maps data to partitions of ranges that
are automatically created by the database following a
specified interval
• System partitioning: Enables the application to explicitly
map rows to arbitrary partitions
Partitioning Strategies:
Composite Partitioning
• Top-level strategies: RANGE, INTERVAL, HASH, LIST
• Bottom-level strategies: RANGE, HASH, LIST
• All combinations are
supported, such as the
following examples:
• RANGE-LIST
• HASH-HASH
SP1a
SP2a
SP3a
SP4a
…
…
…
…
RANGE, HASH, LIST
SP1b SP1c SP1y SP1z
SP2b SP2c SP2y SP2z
SP3b SP3c SP3y SP3z
SP4b SP4c SP4y SP4z
RANGE, INTERVAL, HASH, LIST,
…
Oracle Partitioning History
Core Functionality Performance Manageability
Oracle 8.0 Range partitioning
Global range indexes
Static partition pruning Basic maintenance:
ADD,DROP,EXCHANGE
Oracle 8i Hash partitioning
Range-hash partitioning
Partition-wise joins
Dynamic pruning
Expanded maintenance:
MERGE
Oracle 9i List partitioning Global index maintenance
Oracle 9i R2 Range-list partitioning Fast partition SPLIT
Oracle 10g Global hash indexes Local index maintenance
Oracle 10g R2 1M partitions per table Multidimensional pruning Fast DROP TABLE
Oracle 11g Virtual column based partitioning
More composite choices
REF partitioning
Interval partitioning
Partition Advisor
Incremental stats
management
Oracle 11g R2 Hash-hash partitioning “AND” pruning Multibranch execution
Segment creation on demand*
Oracle et la haute disponibilité
• Real Application Cluster RAC
• Data Guard
ORACLE RAC
Le Cloud: L’avenir pour Oracle
Le cloud: l’avenir pour Oracle
• Oracle Database 12c / Amazon Redshift
• MYSQL / Aurora
SQL Server on Linux
•https://www.microsoft.com/en
-us/cloud-platform/sql-server-
on-linux
Microsoft défie Oracle avec SQL
Server 2016 for Linux
• Redmond contre Redwood
• Cette décision reste logique. Les serveurs Linux gagnent en
effet du terrain en entreprise. En particulier dans les
infrastructures Cloud.
• De plus, si SQL Server reste devant la plupart de ses
concurrents, ses parts de marché en entreprise sont moitiés
moindres que celles d’Oracle Database, le leader du
secteur.
•
Source: http://www.techrepublic.com/article/nosql-databases-eat-into-
the-relational-database-market/
Oracle aussi ….. offre du NoSQL 
• Oracle NoSQL Database
• Horizontally Scaled, Key-Value Database for Web
Services and Cloud
• Oracle NoSQL Database provides a powerful and
flexible transaction model that greatly simplifies the
process of developing a NoSQL-based application. It
scales horizontally with high availability and
transparent load balancing even when dynamically
adding new capacity.
http://www.oracle.com/database/nosql/index.html
A
Q&

Mais conteúdo relacionado

Semelhante a Presentation of Oracle database products for Beginners

SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE
 
Certification oracle base de données oracle 11 g
Certification oracle base de données   oracle 11 gCertification oracle base de données   oracle 11 g
Certification oracle base de données oracle 11 gEGILIA Learning
 
Les plateformes de développement des web services
Les plateformes de développement des web servicesLes plateformes de développement des web services
Les plateformes de développement des web servicesoussemos
 
2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédible2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédiblePatrick Guimonet
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteMicrosoft
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière Cellenza
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdfmed_univ78
 
"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...
"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi..."J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...
"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...Microsoft
 
Arte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes webArte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes webAcquia
 
Dba oracle-v1
Dba oracle-v1Dba oracle-v1
Dba oracle-v1infcom
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaMicrosoft
 
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...Frederic Descamps
 
Plugiciel Oracle pour Open ModelSphere
Plugiciel Oracle pour Open ModelSpherePlugiciel Oracle pour Open ModelSphere
Plugiciel Oracle pour Open ModelSpheremodelspherepro
 
Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Cyril Reinhard
 
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...CERTyou Formation
 
Alphorm.com Formation Informatica PowerCenter : Installer et Configurer
Alphorm.com Formation Informatica PowerCenter : Installer et ConfigurerAlphorm.com Formation Informatica PowerCenter : Installer et Configurer
Alphorm.com Formation Informatica PowerCenter : Installer et ConfigurerAlphorm
 

Semelhante a Presentation of Oracle database products for Beginners (20)

SUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSPSUSE Expert Days Paris 2018 – CaaSP
SUSE Expert Days Paris 2018 – CaaSP
 
Certification oracle base de données oracle 11 g
Certification oracle base de données   oracle 11 gCertification oracle base de données   oracle 11 g
Certification oracle base de données oracle 11 g
 
Les plateformes de développement des web services
Les plateformes de développement des web servicesLes plateformes de développement des web services
Les plateformes de développement des web services
 
2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédible2009-03-13 SQL Server une plateforme crédible
2009-03-13 SQL Server une plateforme crédible
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
 
01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière 01 - [ASP.NET Core] Plénière
01 - [ASP.NET Core] Plénière
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdf
 
"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...
"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi..."J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...
"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...
 
Arte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes webArte utilise Acquia Cloud pour héberger ses plateformes web
Arte utilise Acquia Cloud pour héberger ses plateformes web
 
Infrastructure as code drupal
Infrastructure as code drupalInfrastructure as code drupal
Infrastructure as code drupal
 
Dba oracle-v1
Dba oracle-v1Dba oracle-v1
Dba oracle-v1
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Big sql4meetup
Big sql4meetupBig sql4meetup
Big sql4meetup
 
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...
 
Plugiciel Oracle pour Open ModelSphere
Plugiciel Oracle pour Open ModelSpherePlugiciel Oracle pour Open ModelSphere
Plugiciel Oracle pour Open ModelSphere
 
Base donnes my_sql
Base donnes my_sqlBase donnes my_sql
Base donnes my_sql
 
Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013
 
Javaoop
JavaoopJavaoop
Javaoop
 
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...
Cl484 g formation-ibm-db2-10-1-for-linux-unix-and-windows-quickstart-for-expe...
 
Alphorm.com Formation Informatica PowerCenter : Installer et Configurer
Alphorm.com Formation Informatica PowerCenter : Installer et ConfigurerAlphorm.com Formation Informatica PowerCenter : Installer et Configurer
Alphorm.com Formation Informatica PowerCenter : Installer et Configurer
 

Presentation of Oracle database products for Beginners

  • 1. SQL vs NoSQL Databases Algiers Tech Meetup #11
  • 2. <Insert Picture Here> Presentation of Oracle database products for Beginners AGUEDAL Yazid Senior Database administration consultant IT Synergy General Manager aguedal@itsynergy-dz.com
  • 3. Agenda • History and evolution of Oracle Database products • Fundamental concepts of Oracle Database • Some Advanced features • The Cloud and Oracle 12c • Q&A
  • 4. The History of Oracle • Founded in August 1977 by Larry Ellison, Bob Miner, Ed Oates and Bruce Scott, Oracle was initially named after "Project Oracle" a project for one of their clients, the C.I.A, and the company that developed Oracle was dubbed "Systems Development Labs", or SDL. Although they may not have realized it at the time, these four men would change the history of database management forever. • In 1978 SDL was renamed Relational Software Inc (RSI) to market their new database.
  • 5. • 1977: Larry Ellison and friends founded Software Development Laboratories (SDL). • 1978: Oracle Version 1, written in assembly language, runs on PDP-11 under RSX, in 128K of memory. Implementation separates Oracle code and user code. Oracle V1 is never officially released. • 1979: SDL changed its company-name to "Relational Software, Inc." (RSI) and introduced its product Oracle V2 as an early relational database system - often cited[ as the first commercially sold RDBMS.The version did not support transactions, but implemented the basic SQL functionality of queries and joins. (RSI never released a version 1 - instead calling the first version version 2 as a marketing gimmick.)
  • 6. • 1982: RSI in its turn changed its name, becoming known as " Oracle Corporation",[ to align itself more closely with its flagship product. • 1983: The company released Oracle version 3, which it had re- written using the C programming language, and which supported COMMIT and ROLLBACK functionality for transactions. Version 3 extended platform support from the existing Digital VAX/VMS systems to include Unix environments. • 1984: Oracle Corporation released Oracle version 4, which supported read-consistency. In October it also released the first Oracle for the IBM PC. • 1985: Oracle Corporation released Oracle version 5, which supported the client–server model—a sign of networks becoming more widely available in the mid-1980s.
  • 7. • 1986: Oracle version 5.1 started supporting distributed queries. • 1988: Oracle RDBMS version 6 came out with support for PL/SQL embedded within Oracle Forms v3 (version 6 could not store PL/SQL in the database proper), row-levellocking and hot backups. • 1989: Oracle Corporation entered the application-products market and developed its ERP product, (later to become part of the Oracle E-Business Suite), based on the Oracle relational database. • 1990: the release of Oracle Applications release 8
  • 8. • 1992: Oracle version 7 appeared with support for referential integrity, stored procedures and triggers. • 1997: Oracle Corporation released version 8, which supported object-oriented development and multimedia applications. • 1999: The release of Oracle8i aimed to provide a database inter- operating better with the Internet (the i in the name stands for "Internet"). The Oracle8i database incorporated a native Java virtual machine (Oracle JVM, also known as "Aurora"). • 2000: Oracle E-Business Suite 11i pioneers integrated enterprise application software
  • 9. • 2001: Oracle9i went into release with 400 new features, including the ability to read and write XML documents. 9i also provided an option for Oracle RAC, or "Real Application Clusters", a computer-cluster database, as a replacement for the Oracle Parallel Server (OPS) option. • 2002: the release of Oracle 9i Database Release 2 (9.2.0) • 2003: Oracle Corporation released Oracle Database 10g, which supported regular expressions. (The g stands for "grid"; emphasizing a marketing thrust of presenting 10g as "grid computing ready".) • 2005: Oracle Database 10.2.0.1—also known as Oracle Database 10g Release 2 (10gR2)—appeared.
  • 10. • 2006: Oracle Corporation announces Unbreakable Linux and acquires i-flex • 2007: Oracle Database 10g release 2 sets a new world record TPC-H 3000 GB benchmark result • 2007: Oracle Corporation released Oracle Database 11g for Linux and for Microsoft Windows. • 2008: Oracle Corporation acquires BEA Systems. • 2010: Oracle Corporation acquires Sun Microsystems.
  • 11. • 2011: Oracle Corporation acquires web content management system FatWire Software. • 2011: On 18 October, Oracle Corporation acquires Endeca Technologies Inc. faceted search engine software vendor. • 2013: Oracle Corporation released Oracle Database 12c for Linux, Solaris and Windows. (The c stands for "cloud") • 2016: Oracle Corporation released Oracle Database 12 c Release 2
  • 12. Database Data files Online redo log files Control files Oracle Database Architecture: Overview Database buffer cache Shared pool Data dictionary cache Library cache PMONSMON Others Server process PGA Archived log files User process Instance RECO ARCn SGA DBWn Redo log buffer LGWRCKPT
  • 13. Database Oracle Database Server Structures PMONSMON Others Data files Online redo log files Control files Instance RECOARCnDBWn LGWRCKPT Storage structures User process Server process Memory structures Processes Database buffer cache Shared pool Data dictionary cache Library cache SGA Redo log buffer
  • 14. Oracle Database Memory Structures DB structures Memory - Process - Storage SGA Database buffer cache Redo log buffer Java pool Streams pool Shared pool Large pool PGA PGA PGA Background process Server process 1 Server process 2 Shared SQL area Library cache Data dictionary cache Other I/O buffer Response queue Request queue Free memory
  • 15. Process Architecture • User process • Is started when a database user or a batch process connects to Oracle Database • Database processes • Server process: Connects to the Oracle instance and is started when a user establishes a session • Background processes: Are started when an Oracle instance is started DB structures - Memory  Process - Storage PMONSMON Others Instance RECOARCnDBWn LGWRCKPT PGA User process Server process Background processes Database buffer cache Shared pool Data dictionary cache Library cache SGA Redo log buffer
  • 16. Database Storage Architecture Online redo log files Password file Parameter file Archived redo log files Control files Data files Alert log and trace files Backup files DB structures - Memory - Process  Storage
  • 17. D E M O
  • 18.
  • 19. Utiliser le langage SQL pour interroger une base de données • Le langage SQL (Structured Query Language) est : • le langage normalisé par l'ANSI pour la gestion des bases de données relationnelles • efficace, facile à apprendre et simple d'utilisation • complet sur le plan fonctionnel (il permet de définir, d'extraire et de manipuler des données dans les tables) SELECT department_name FROM departments; Serveur Oracle
  • 20. Instructions SQL • • SELECT • INSERT • UPDATE • DELETE • MERGE• • • CREATE • ALTER • DROP • RENAME • TRUNCATE • COMMENT • • GRANT • REVOKE • • • COMMIT • ROLLBACK • SAVEPOINT• • Langage de manipulation de données (LMD) Langage de définition de données (LDD) Contrôle des transactions Langage de contrôle de données (LCD)
  • 21. Environnements de développement pour le langage SQL • Dans le cadre de ce cours : • Utilisez en priorité Oracle SQL Developer version 1.2 • Utilisez SQL*Plus : • si vous n'avez pas accès à Oracle SQL Developer • ou si une commande ne fonctionne pas dans Oracle SQL Developer SQL Developer SQL *Plus
  • 22. Oracle SQL Developer : Présentation • Oracle SQL Developer est un outil graphique améliorant la productivité et simplifiant les tâches de développement liées aux bases de données. • Vous pouvez vous connecter à n'importe quel schéma de base de données Oracle cible à l'aide de l'authentification de base de données Oracle standard. SQL Developer
  • 23. Oracle SQL Developer : Caractéristiques • Développé en langage Java • Prend en charge les plates-formes Windows, Linux et Mac OS X • Connectivité par défaut à l'aide du pilote JDBC thin • Ne requiert aucun installeur • Décompressez le kit Oracle SQL Developer téléchargé et cliquez deux fois sur sqldeveloper.exe pour lancer Oracle SQL Developer. • Se connecte à n'importe quelle base de données Oracle de version 9.2.0.1 ou ultérieure • Téléchargement gratuit à partir du lien suivant : • http://www.oracle.com/technology/products/database/ sql_developer/index.html • Nécessite l'installation sur votre système du kit JDK 1.5, qui peut être téléchargé à partir du lien suivant : • http://java.sun.com/javase/downloads/index_jdk5.jsp
  • 24. Interface d'Oracle SQL Developer Pour pouvoir utiliser SQL Developer afin d'exécuter des interrogations SQL sur un schéma de base de données, vous devez d'abord définir une connexion.
  • 25. Créer une connexion de base de données • Pour utiliser Oracle SQL Developer, vous devez disposer d'au moins une connexion de base de données. • Vous pouvez créer et tester des connexions pour : • plusieurs bases de données • plusieurs schémas • Oracle SQL Developer importe automatiquement toutes les connexions définies dans le fichier tnsnames.ora de votre système. • Vous pouvez exporter des connexions vers un fichier XML. • Chaque nouvelle connexion de base de données créée est répertoriée dans la hiérarchie du navigateur de connexions.
  • 26. Créer une connexion de base de données 1 2 3
  • 27. Consulter les objets de base de données • Utilisez le navigateur de connexions pour : • naviguer dans la liste des objets d'un schéma de base de données • consulter d'un coup d'oeil les définitions des objets
  • 28. Utiliser SQL Worksheet • Utilisez SQL Worksheet pour entrer et exécuter des instructions SQL, PL/SQL et SQL*Plus. • Indiquez les actions qui peuvent être traitées par la connexion de base de données associée à SQL Worksheet. Entrez des instructions SQL. Les résultats sont affichés ici.
  • 29. Utiliser SQL Worksheet 1 2 3 4 5 6 7 8 9
  • 30. Exécuter des instructions SQL • Entrez une ou plusieurs instructions SQL dans la zone Enter SQL Statement. F9 F5 F9 F5
  • 31. Formater le code SQL Avant formatage Après formatage
  • 33. Exécuter des fichiers script 1 2 3
  • 34. Instructions SQL dans SQL*Plus • Dans Oracle Database 11g, SQL*Plus est une interface de ligne de commande.
  • 35. I - 35 Coder PL/SQL dans Oracle SQL Developer • Oracle SQL Developer est un outil graphique gratuit qui augmente la productivité et simplifie les tâches de développement de base de données. • Vous pouvez vous connecter à n'importe quel schéma de base de données Oracle cible en utilisant l'authentification de base de données Oracle standard. • Dans ce cours, vous allez utiliser SQL Developer. SQL Developer
  • 36. I - 36 Exécuter du code PL/SQL dans SQL*Plus
  • 37. I - 37 Générer du code PL/SQL dans Oracle JDeveloper Editer Exécuter
  • 38. I - 38 Démarrer SQL Developer et créer une connexion de base de données
  • 39. 1 - 39 A propos du langage PL/SQL • Le langage PL/SQL : • signifie "Procedural Language extension to SQL" (extension procédurale du langage SQL) • est le langage standard d'accès aux données d'Oracle Corporation pour les bases de données relationnelles • intègre de manière transparente les structures procédurales au langage SQL
  • 40. 1 - 40 A propos du langage PL/SQL • Caractéristiques du langage PL/SQL : • Il offre une structure de bloc pour les unités de code exécutables. Cette structure bien définie facilite la maintenance du code. • Il fournit des structures procédurales : • Variables, constantes et types de données • Structures de contrôle, telles que les instructions conditionnelles et les boucles • Programmes réutilisables qui peuvent être exécutés plusieurs fois
  • 41. 1 - 41 Environnement PL/SQL Moteur PL/SQL Serveur de base de données Oracle Programme d'exécution des instructions SQL Programme d'exécution des instructions procédurales instruction procédurale SQL Bloc PL/SQL
  • 42. 1 - 42 Avantages liés à l'utilisation du langage PL/SQL • Intégration de structures procédurales au langage SQL • Amélioration des performances SQL IF...THEN SQL ELSE SQL END IF; SQL SQL 1 SQL 2 …
  • 43. 1 - 43 Avantages liés à l'utilisation du langage PL/SQL • Développement de programme modulaire • Intégration aux outils Oracle • Portabilité • Traitement des exceptions
  • 44. 1 - 44 Structure d'un bloc PL/SQL • DECLARE (facultatif) • Variables, curseurs, exceptions définies par l'utilisateur • BEGIN (obligatoire) • Instructions SQL • Instructions PL/SQL • EXCEPTION (facultatif) • Actions à effectuer lorsque des erreurs se produisent • END; (obligatoire)
  • 45. 1 - 45 Types de bloc • Bloc anonyme Procédure Fonction [DECLARE] BEGIN --statements [EXCEPTION] END; PROCEDURE name IS BEGIN --statements [EXCEPTION] END; FUNCTION name RETURN datatype IS BEGIN --statements RETURN value; [EXCEPTION] END;
  • 46. 1 - 46 Créer un bloc anonyme • Entrez le bloc anonyme dans l'espace de travail SQL Developer :
  • 47. 1 - 47 Exécuter un bloc anonyme • Cliquez sur le bouton Run Script pour exécuter le bloc anonyme : Run Script
  • 48. VLDB Manageability and Performance Constraints • Table availability: • It is too costly to have a large table inaccessible for hours because of recovery. • Large tables can be more vulnerable to disk failure. • Large-table manageability: • They take too long to be loaded. • Indexes take too long to be built. • Partial deletes take hours, and even days. • Performance considerations: • Large-table and large-index scans are costly. • Scanning a subset improves performance.
  • 49. Manual Partitions Versus Partitioning SALES_10 SALES_1 1 SALES_12 SALES (view) P11P10 P12 Manual partitions (tables) UNION ALL SALES (partitioned table)
  • 50. Partitioned Tables and Indexes • Large tables and indexes can be partitioned into smaller, more manageable pieces. Each piece is a segment. Table T1 Index I1 Table T1 Index I1
  • 51. Table Versus Index Partitioning A nonpartitioned table can have partitioned or nonpartitioned indexes. •A partitioned table can have partitioned or nonpartitioned indexes. Table T1 Index I1 Index I2 Table T2 Index I3 Index I4
  • 52. Partitioning Strategies: Single-Level Partitioning • Range partitioning: Maps data to partitions based on ranges of partition key values for each partition • Hash partitioning: Maps data to partitions by using a hashing algorithm applied to a partitioning key • List partitioning: Maps data to partitions by using a list of discrete values for the partitioning column • Interval partitioning: Maps data to partitions of ranges that are automatically created by the database following a specified interval • System partitioning: Enables the application to explicitly map rows to arbitrary partitions
  • 53. Partitioning Strategies: Composite Partitioning • Top-level strategies: RANGE, INTERVAL, HASH, LIST • Bottom-level strategies: RANGE, HASH, LIST • All combinations are supported, such as the following examples: • RANGE-LIST • HASH-HASH SP1a SP2a SP3a SP4a … … … … RANGE, HASH, LIST SP1b SP1c SP1y SP1z SP2b SP2c SP2y SP2z SP3b SP3c SP3y SP3z SP4b SP4c SP4y SP4z RANGE, INTERVAL, HASH, LIST, …
  • 54. Oracle Partitioning History Core Functionality Performance Manageability Oracle 8.0 Range partitioning Global range indexes Static partition pruning Basic maintenance: ADD,DROP,EXCHANGE Oracle 8i Hash partitioning Range-hash partitioning Partition-wise joins Dynamic pruning Expanded maintenance: MERGE Oracle 9i List partitioning Global index maintenance Oracle 9i R2 Range-list partitioning Fast partition SPLIT Oracle 10g Global hash indexes Local index maintenance Oracle 10g R2 1M partitions per table Multidimensional pruning Fast DROP TABLE Oracle 11g Virtual column based partitioning More composite choices REF partitioning Interval partitioning Partition Advisor Incremental stats management Oracle 11g R2 Hash-hash partitioning “AND” pruning Multibranch execution Segment creation on demand*
  • 55. Oracle et la haute disponibilité • Real Application Cluster RAC • Data Guard
  • 57.
  • 58.
  • 59. Le Cloud: L’avenir pour Oracle
  • 60. Le cloud: l’avenir pour Oracle • Oracle Database 12c / Amazon Redshift • MYSQL / Aurora
  • 61. SQL Server on Linux •https://www.microsoft.com/en -us/cloud-platform/sql-server- on-linux
  • 62. Microsoft défie Oracle avec SQL Server 2016 for Linux • Redmond contre Redwood • Cette décision reste logique. Les serveurs Linux gagnent en effet du terrain en entreprise. En particulier dans les infrastructures Cloud. • De plus, si SQL Server reste devant la plupart de ses concurrents, ses parts de marché en entreprise sont moitiés moindres que celles d’Oracle Database, le leader du secteur. •
  • 63.
  • 65. Oracle aussi ….. offre du NoSQL  • Oracle NoSQL Database • Horizontally Scaled, Key-Value Database for Web Services and Cloud • Oracle NoSQL Database provides a powerful and flexible transaction model that greatly simplifies the process of developing a NoSQL-based application. It scales horizontally with high availability and transparent load balancing even when dynamically adding new capacity. http://www.oracle.com/database/nosql/index.html
  • 66. A Q&

Notas do Editor

  1. Oracle Database Architecture An Oracle database consists of an instance and its associated databases. The instance consists of memory structures and background processes. Every time an instance is started, a shared memory area called the System Global Area (SGA) is allocated and the background processes are started. The database consists of both physical structures and logical structures. Because the physical and logical structures are separate, the physical storage of data can be managed without affecting access to logical storage structures.
  2. Oracle Database Server Structures After starting an instance, the Oracle software associates the instance with a specific database. This is called mounting the database. The database is then ready to be opened, which makes it accessible to authorized users. Multiple instances can execute concurrently on the same computer, each accessing its own physical database. You can look at the Oracle Database architecture as various interrelated structural components. An Oracle instance uses memory structures and processes to manage and access the database. All memory structures exist in the main memory of the computers that constitute the database server. Processes are jobs that work in the memory of these computers. A process is defined as a “thread of control” or a mechanism in an operating system that can run a series of steps.
  3. Oracle Database Memory Structures Oracle Database creates and uses memory structures for various purposes. For example, memory stores program code being run, data that is shared among users, and private data areas for each connected user. Two basic memory structures are associated with an instance: System Global Area (SGA): Group of shared memory structures, known as SGA components, that contain data and control information for one Oracle Database instance. The SGA is shared by all server and background processes. Examples of data stored in the SGA include cached data blocks and shared SQL areas. Program Global Areas (PGA): Memory regions that contain data and control information for a server or background process. A PGA is nonshared memory created by Oracle Database when a server or background process is started. Access to the PGA is exclusive to the server process. Each server process and background process has its own PGA.
  4. Process Architecture The processes in an Oracle Database system can be divided into two major groups: User processes that run the application or Oracle tool code Oracle Database processes that run the Oracle database server code (including server processes and background processes) When a user runs an application program or an Oracle tool such as SQL*Plus, Oracle Database creates a user process to run the user’s application. Oracle Database also creates a server process to execute the commands issued by the user process. In addition, the Oracle server also has a set of background processes for an instance that interact with each other and with the operating system to manage the memory structures, asynchronously perform I/O to write data to disk, and perform other required tasks. The process structure varies for different Oracle Database configurations, depending on the operating system and the choice of Oracle Database options. The code for connected users can be configured as a dedicated server or a shared server. Dedicated server: For each user, the database application is run by a user process that is served by a dedicated server process that executes Oracle database server code. Shared server: Eliminates the need for a dedicated server process for each connection. A dispatcher directs multiple incoming network session requests to a pool of shared server processes. A shared server process serves any client request.
  5. Database Storage Architecture The files that constitute an Oracle database are organized into the following: Control files: Contain data about the database itself (that is, physical database structure information). These files are critical to the database. Without them, you cannot open data files to access the data in the database. Data files: Contain the user or application data of the database, as well as metadata and the data dictionary Online redo log files: Allow for instance recovery of the database. If the database server crashes and does not lose any data files, the instance can recover the database with the information in these files. The following additional files are important to the successful running of the database: Parameter file: Is used to define how the instance is configured when it starts up Password file: Allows sysdba, sysoper, and sysasm to connect remotely to the database and perform administrative tasks Backup files: Are used for database recovery. You typically restore a backup file when a media failure or user error has damaged or deleted the original file. Archived redo log files: Contain an ongoing history of the data changes (redo) that are generated by the instance. Using these files and a backup of the database, you can recover a lost data file. That is, archive logs enable the recovery of restored data files.
  6. Utiliser le langage SQL pour interroger une base de données Dans une base de données relationnelle, vous n&amp;apos;indiquez pas le chemin d&amp;apos;accès aux tables et vous n&amp;apos;avez pas besoin de connaître l&amp;apos;organisation physique des données. Pour accéder à la base de données, vous exécutez une instruction SQL (Structured Query Language), le langage normalisé par l&amp;apos;ANSI (American National Standards Institute) pour la gestion des bases relationnelles. Le langage SQL est un ensemble d&amp;apos;instructions qui permet aux programmes et aux utilisateurs d&amp;apos;accéder aux données d&amp;apos;une base Oracle. Les programmes applicatifs et les outils Oracle permettent souvent aux utilisateurs d&amp;apos;accéder à la base de données sans utiliser directement d&amp;apos;instructions SQL, mas ils doivent utiliser SQL lors de l&amp;apos;exécution des demandes utilisateur. Le langage SQL fournit des instructions pour différentes tâches : Interrogation de données Insertion, mise à jour et suppression de lignes dans une table Création, remplacement, modification et suppression d&amp;apos;objets Contrôle de l&amp;apos;accès à la base de données et à ses objets Garantie de la cohérence et de l&amp;apos;intégrité de la base de données SQL unifie ces tâches en un langage cohérent et vous permet d&amp;apos;utiliser les données à un niveau logique.
  7. Instructions SQL Les instructions SQL prises en charge par Oracle sont conformes aux normes de l&amp;apos;industrie informatique. Pour garantir la conformité aux normes à mesure de leur évolution, Oracle Corporation fait participer activement certains de ses collaborateurs aux comités de normalisation du langage SQL. Les comités reconnus dans le secteur informatique sont l&amp;apos;ANSI (American National Standards Institute) et l&amp;apos;ISO (International Standards Organization). Tous deux reconnaissent SQL comme le langage standard pour les bases de données relationnelles.
  8. Environnements de développement pour le langage SQL Pour le développement de ce cours, Oracle SQL Developer a été choisi comme outil d&amp;apos;exécution des instructions SQL présentées dans les exemples des diapositives et dans les exercices. Pour les commandes non prises en charge par Oracle SQL Developer, utilisez l&amp;apos;environnement SQL*Plus.
  9. Oracle SQL Developer : Présentation Oracle SQL Developer est un outil graphique gratuit conçu pour améliorer votre productivité et simplifier les tâches quotidiennes de gestion de bases de données. En seulement quelques clics, vous pouvez facilement créer et déboguer des procédures stockées, tester des instructions SQL et visualiser les plans de l&amp;apos;optimiseur. Oracle SQL Developer simplifie les tâches suivantes : Consultation et gestion des objets de base de données Exécution d&amp;apos;instructions et de scripts SQL Modification et débogage d&amp;apos;instructions PL/SQL Création d&amp;apos;états Vous pouvez vous connecter à n&amp;apos;importe quel schéma de base de données Oracle cible à l&amp;apos;aide de l&amp;apos;authentification de base de données Oracle standard. Une fois connecté, vous pouvez effectuer des opérations sur les objets de la base de données. Remarque : La version 1.2 d&amp;apos;Oracle SQL Developer est appelée la version Migration car elle s&amp;apos;intègre étroitement à Developer Migration Workbench. Elle fournit aux utilisateurs un point unique pour rechercher des objets et des données dans des bases tierces, et pour effectuer des migrations entre ces bases et Oracle. Vous pouvez également vous connecter à des schémas correspondant à des bases tierces (non Oracle) telles que MySQL, Microsoft SQL Server et Microsoft Access, et visualiser les métadonnées et les données de ces bases. Par ailleurs, Oracle SQL Developer version 1.2 prend en charge Oracle Application Express version 3.0.1 (Oracle APEX).
  10. Oracle SQL Developer : Caractéristiques Oracle SQL Developer est développé en langage Java et s&amp;apos;appuie sur l&amp;apos;environnement IDE (Integrated Development Environment) d&amp;apos;Oracle JDeveloper. Il s&amp;apos;agit d&amp;apos;un outil multiplateforme qui s&amp;apos;exécute sous Windows, Linux et Mac OS X. Vous pouvez installer Oracle SQL Developer sur le serveur de base de données et vous connecter à distance depuis votre bureau, afin d&amp;apos;éviter le trafic réseau client-serveur. La connexion à la base de données étant établie par défaut via le pilote JDBC (Java Database Connectivity) thin, il n&amp;apos;y a pas besoin de répertoire d&amp;apos;origine Oracle Home. Oracle SQL Developer ne requiert aucun installeur. Il vous suffit de décompresser le fichier téléchargé. Avec Oracle SQL Developer, les utilisateurs peuvent se connecter à Oracle Database versions 9.2.0.1 et ultérieures, et à toutes les éditions, y compris Express Edition. Il est possible de télécharger Oracle SQL Developer sous l&amp;apos;une des formes suivantes : Oracle SQL Developer for Windows (à télécharger avec ou sans le kit JDK (Java Development Kit) 1.5) Oracle SQL Developer for Multiple Platforms (le kit JDK 1.5 doit déjà être installé) Oracle SQL Developer for Mac OS X platforms (le kit JDK 1.5 doit déjà être installé) Oracle SQL Developer RPM for Linux (le kit JDK 1.5 doit déjà être installé) Notez que la version 1.2 d&amp;apos;Oracle SQL Developer est certifiée pour le kit JDK 6.0.
  11. Interface d&amp;apos;Oracle SQL Developer Oracle SQL Developer comporte deux onglets de navigation principaux : Onglet Connections : Cet onglet vous permet de naviguer dans la liste des utilisateurs et des objets de base de données auxquels vous avez accès. Onglet Reports : Dans cet onglet, vous pouvez exécuter des états prédéfinis, ou créeret ajouter vos propres états. Le volet de gauche permet de rechercher et de sélectionner des objets (navigation), tandis que celui de droite affiche des informations sur les objets sélectionnés. Vous pouvez personnaliser de nombreux aspects de la présentation et du comportement d&amp;apos;Oracle SQL Developer en définissant des préférences. Les menus figurant dans la partie supérieure de la fenêtre contiennent des entrées standard, ainsi que des entrées correspondant à des fonctions spécifiques d&amp;apos;Oracle SQL Developer. 1.View : Contient des options ayant un impact sur ce qui apparaît dans l&amp;apos;interface d&amp;apos;Oracle SQL Developer. 2.Navigate : Contient des options permettant d&amp;apos;accéder à différents volets et d&amp;apos;exécuter des sous-programmes. 3.Run : Contient les options Run File et Execution Profile qui peuvent être utilisées lorsqu&amp;apos;une fonction ou une procédure est sélectionnée. 4.Debug : Contient des options qui peuvent être utilisées lorsqu&amp;apos;une fonction ou une procédure est sélectionnée pour débogage. 5.Source : Contient des options permettant de modifier des fonctions et des procédures. 6.Migration : Contient des options liées à la migration de bases de données tierces vers Oracle. 7.Tools : Permet d&amp;apos;appeler des outils tels que SQL*Plus, Preferences et SQL Worksheet. Remarque : Vous devez définir au moins une connexion pour pouvoir vous connecter à un schéma de base de données, et émettre des interrogations SQL ou exécuter des procédures/fonctions.
  12. Créer une connexion de base de données Une connexion est un objet Oracle SQL Developer qui indique les informations nécessaires pour la connexion à une base de données spécifique avec un nom utilisateur particulier. Pour utiliser Oracle SQL Developer, vous devez disposer d&amp;apos;au moins une connexion de base de données (existante, créée ou importée). Vous pouvez créer et tester des connexions pour plusieurs bases de données et pour plusieurs schémas. Par défaut, le fichier tnsnames.ora est situé dans le répertoire $ORACLE_HOME/network/admin. Mais il peut également figurer dans le répertoire indiqué par la variable d&amp;apos;environnement TNS_ADMIN ou la valeur de registre. Lorsque vous lancez Oracle SQL Developer et affichez la boîte de dialogue Database Connections, Oracle SQL Developer importe automatiquement toutes les connexions définies dans le fichier tnsnames.ora de votre système. Remarque : Sous Windows, si le fichier tnsnames.ora existe mais qu&amp;apos;Oracle SQL Developer n&amp;apos;utilise pas ses connexions, définissez TNS_ADMIN en tant que variable d&amp;apos;environnement système. Vous pouvez exporter des connexions vers un fichier XML afin de pouvoir les réutiliser ultérieurement. Vous pouvez créer des connexions supplémentaires avec des noms utilisateur différents, pour la même base de données ou pour d&amp;apos;autres bases.
  13. Créer une connexion de base de données (suite) Pour créer une connexion de base de données, procédez comme suit : 1.Dans l&amp;apos;onglet Connections, cliquez avec le bouton droit de la souris sur Connections et sélectionnez New Connection. 2.Dans la fenêtre New/Select Database Connection, entrez le nom de la connexion. Entrez le nom utilisateur et le mot de passe du schéma auquel vous souhaitez vous connecter. 1.Dans la liste déroulante Role, vous pouvez sélectionner default ou SYSDBA. (Sélectionnez SYSDBA pour l&amp;apos;utilisateur sys ou pour tout utilisateur doté de privilèges de DBA.) 2.Vous pouvez sélectionner l&amp;apos;un des types de connexion suivants :-Basic : Avec ce type, vous entrez le nom d&amp;apos;hôte et l&amp;apos;identificateur système (SID) de la base de données à laquelle vous voulez vous connecter. Le port est déjà défini avec la valeur 1521. Vous pouvez aussi indiquer le nom de service directement si vous utilisez une connexion à une base de données distante.-TNS : Vous sélectionnez l&amp;apos;un des alias de base de données importés à partir du fichier tnsnames.ora.-Advanced : Vous définissez une URL JDBC personnalisée pour la connexion à la base de données. 3.Cliquez sur Test pour vérifier que la connexion a été correctement configurée. 4.Cliquez sur Connect. Lorsque vous cochez la case Save Password, le mot de passe est enregistré dans un fichier XML. De la sorte, vous n&amp;apos;avez pas besoin de l&amp;apos;indiquer à nouveau si vous fermez puis rouvrez la connexion Oracle SQL Developer.
  14. Consulter les objets de base de données Après avoir créé une connexion de base de données, vous pouvez utiliser le navigateur de connexions (Connections Navigator) pour parcourir la liste des objets d&amp;apos;un schéma de la base (tables, vues, index, packages, procédures, déclencheurs, types, etc.). Le volet de gauche permet de rechercher et de sélectionner des objets (navigation), tandis que celui de droite affiche des informations sur les objets sélectionnés. Vous pouvez personnaliser de nombreux aspects de la présentation d&amp;apos;Oracle SQL Developer en définissant des préférences. Vous pouvez afficher la définition des objets dans plusieurs onglets présentant les informations extraites du dictionnaire de données. Par exemple, si vous sélectionnez une table dans le navigateur, les différentes informations telles que les colonnes, les contraintes, les privilèges, les statistiques et les déclencheurs sont présentées dans des onglets distincts, ce qui facilite leur lecture. Pour afficher la définition de la table EMPLOYEES comme illustré dans la diapositive ci­dessus, procédez comme suit : 1.Développez le noeud Connections dans le navigateur de connexions. 2.Développez Tables. 3.Cliquez sur EMPLOYEES. L&amp;apos;onglet Columns est sélectionné par défaut. Il contient la description des colonnes de la table. Dans l&amp;apos;onglet Data, vous pouvez visualiser les données de la table, ajouter de nouvelles lignes, mettre à jour les données et valider (commit) ces modifications dans la base.
  15. Utiliser SQL Worksheet Lorsque vous vous connectez à une base de données, une fenêtre SQL Worksheet apparaît automatiquement pour cette connexion. Vous pouvez utiliser SQL Worksheet pour entrer et exécuter des instructions SQL, PL/SQL et SQL*Plus. Toutes les commandes SQL et PL/SQL sont prises en charge puisqu&amp;apos;elles sont directement transmises de SQL Worksheet vers la base de données Oracle. Toutefois, les commandes SQL*Plus utilisées dans Oracle SQL Developer doivent être interprétées par SQL Worksheet avant d&amp;apos;être transmises à la base de données. SQL Worksheet prend actuellement en charge de nombreuses commandes SQL*Plus. Les commandes qui ne sont pas prises en charge par SQL Worksheet sont ignorées et ne sont pas envoyées à la base Oracle. Grâce à SQL Worksheet, vous pouvez exécuter des instructions SQL et certaines des commandes SQL*Plus. Vous pouvez afficher SQL Worksheet à l&amp;apos;aide de l&amp;apos;une des deux options suivantes : Sélectionnez Tools &amp;gt; SQL Worksheet. Cliquez sur l&amp;apos;icône Open SQL Worksheet disponible dans la barre d&amp;apos;outils principale.
  16. Utiliser SQL Worksheet (suite) Vous pouvez utiliser des touches de raccourci ou des icônes pour effectuer certaines tâches telles que l&amp;apos;exécution d&amp;apos;une instruction SQL, l&amp;apos;exécution d&amp;apos;un script ou la visualisation de l&amp;apos;historique des instructions SQL que vous avez exécutées. Vous pouvez utiliser la barre d&amp;apos;outils SQL Worksheet, qui contient des icônes permettant d&amp;apos;effectuer les tâches suivantes : 1.Execute Statement : Exécute l&amp;apos;instruction désignée par le curseur dans la zone Enter SQL Statement. Vous pouvez également appuyer sur [F9]. Le résultat est généralement présenté de façon formatée dans l&amp;apos;onglet Results. 2.Run Script : Exécute toutes les instructions de la zone Enter SQL Statement à l&amp;apos;aide du fichier d&amp;apos;exécution de script (Script Runner). Le résultat est généralement affiché au format de script conventionnel dans l&amp;apos;onglet Scripts. 3.Commit : Ecrit toutes les modifications dans la base de données et met fin à la transaction. 4.Rollback : Annule toutes les modifications apportées à la base de données, sans les écrire dans la base, et met fin à la transaction. 5.Cancel : Arrête l&amp;apos;exécution de toute instruction en cours d&amp;apos;exécution.
  17. Exécuter des instructions SQL Dans SQL Worksheet, vous pouvez entrer une ou plusieurs instructions dans la zone Enter SQL Statement. Dans le cas d&amp;apos;une instruction unique, le point virgule de fin est facultatif. Lorsque vous entrez une instruction, les mots-clés SQL sont automatiquement mis en évidence. Pour exécuter une instruction SQL, désignez-la avec le curseur et cliquez sur l&amp;apos;icône Execute Statement. Vous pouvez également appuyer sur [F9]. Pour exécuter plusieurs instructions SQL et voir les résultats, cliquez sur l&amp;apos;icône Run Script. Vous pouvez également appuyer sur [F5]. L&amp;apos;exemple de la diapositive ci-dessus illustre les différents résultats obtenus pour la même interrogation selon que la touche F9/l&amp;apos;option Execute Statement ou la touche F5/l&amp;apos;option Run Script est utilisée.
  18. Formater le code SQL Pour améliorer la lisibilité du code SQL, vous pouvez jouer sur les retraits, les espacements, la casse des caractères et la séparation des lignes. Oracle SQL Developer comporte des fonctionnalités de formatage du code SQL. Pour formater le code SQL, cliquez avec le bouton droit de la souris dans la zone d&amp;apos;instruction, puis sélectionnez Format SQL. Dans l&amp;apos;exemple de la diapositive ci-dessus, avant formatage, les mots-clés ne sont pas en majuscules et le retrait de l&amp;apos;instruction n&amp;apos;est pas correct. Après formatage, la présentation du code SQL est plus claire : les mots-clés sont en majuscules et le retrait de l&amp;apos;instruction est correct.
  19. Enregistrer des instructions SQL Dans la plupart des exercices que vous allez effectuer, vous devrez enregistrer une interrogation particulière dans SQL Worksheet sous la forme d&amp;apos;un fichier .sql. Pour ce faire, procédez comme suit : 1.Dans le menu File, sélectionnez Save ou Save As (si vous renommez un script .sql existant), ou cliquez avec le bouton droit de la souris sur SQL Worksheet et sélectionnez Save File. Vous pouvez également maintenir les touches [CTRL] + [S] enfoncées. 2.Dans la boîte de dialogue Save, entrez le nom de fichier approprié. Vérifiez que l&amp;apos;extension est .sql ou que le type de fichier sélectionné est SQL Script (*.sql). Cliquez sur Save.Remarque : Pour ce cours, vous devez enregistrer vos scripts sql dans le dossier D:\labs\sql1\labs. 3.Le document SQL Worksheet se voit attribuer le nom de fichier sous lequel vous avez enregistré le script. Veillez à ne pas entrer d&amp;apos;autres instructions SQL dans la même feuille de calcul. Pour continuer avec d&amp;apos;autres interrogations SQL, ouvrez une nouvelle feuille de calcul.
  20. Exécuter des fichiers script Pour exécuter les fichiers script .sql enregistrés, procédez comme suit : 1.Cliquez avec le bouton droit de la souris sur SQL Worksheet et sélectionnez Open File, ou sélectionnez Open dans le menu File. Vous pouvez également maintenir les touches [CTRL] + [O] enfoncées. 2.Dans la boîte de dialogue Open, accédez au dossier D:\labs\sql\labs ou à l&amp;apos;emplacement auquel vous avez enregistré le fichier script, sélectionnez le fichier et cliquez sur Open. Le fichier script apparaît dans une nouvelle feuille de calcul. Vous pouvez alors exécuter le script en cliquant sur l&amp;apos;icône Execute Statement ou Run Script. Là encore, veillez à ne pas entrer d&amp;apos;autres instructions SQL dans la même feuille de calcul. Pour continuer avec d&amp;apos;autres interrogations SQL, ouvrez une nouvelle feuille de calcul.Remarque : Vous pouvez configurer le dossier D:\labs\sql1 comme répertoire par défaut. De la sorte, chaque fois que vous tentez d&amp;apos;ouvrir ou d&amp;apos;enregistrer un script, SQL Developer choisit le même chemin pour rechercher les scripts. Dans le menu Tools, sélectionnez Preferences. Dans la boîte de dialogue Preferences, développez Database et sélectionnez Worksheet Parameters. Dans le volet de droite, cliquez sur Browse pour définir le chemin par défaut de recherche des scripts et cliquez sur OK. Remarque : Pour plus de détails sur l&amp;apos;utilisation de l&amp;apos;interface graphique d&amp;apos;Oracle SQL Developer pour d&amp;apos;autres tâches de création d&amp;apos;objets de données et d&amp;apos;extraction de données, reportez-vous à l&amp;apos;annexe G &amp;quot;Effectuer des opérations LMD et LDD à l&amp;apos;aide de l&amp;apos;interface graphique d&amp;apos;Oracle SQL Developer&amp;quot;.
  21. Instructions SQL dans SQL*Plus Oracle SQL*Plus est une interface de ligne de commande à partir de laquelle vous pouvez lancer l&amp;apos;exécution d&amp;apos;instructions SQL et de blocs PL/SQL. Vous recevez les résultats dans une application ou dans une fenêtre de commande. SQL*Plus est : fourni avec la base de données, installé sur un client et sur le système du serveur de base de données, accessible à partir d&amp;apos;une icône ou de la ligne de commande. Remarque : Si vous n&amp;apos;avez pas accès à Oracle SQL Developer et que vous préférez utiliser SQL* Plus, vous disposez d&amp;apos;une icône SQL*Plus sur votre bureau dans le cadre de ce cours. Cela peut également s&amp;apos;avérer utile lorsqu&amp;apos;une commande SQL* Plus n&amp;apos;est pas prise en charge par Oracle SQL Developer.
  22. Oracle SQL Developer : Présentation Oracle SQL Developer est un outil graphique gratuit, conçu pour augmenter votre productivité et simplifier les tâches quotidiennes de gestion de base de données. En quelques clics, vous pouvez facilement créer et déboguer des procédures stockées, tester des instructions SQL et afficher les plans de l&amp;apos;optimiseur. Cet outil de développement simplifie les tâches suivantes : Consultation et gestion des objets de base de données Exécution d&amp;apos;instructions et de scripts SQL Modification et débogage d&amp;apos;instructions PL/SQL Création d&amp;apos;états Vous pouvez vous connecter à n&amp;apos;importe quel schéma de base de données Oracle cible en utilisant l&amp;apos;authentification de base de données Oracle standard. Une fois connecté, vous effectuez les opérations de votre choix sur les objets de la base.
  23. Exécuter du code PL/SQL dans SQL*Plus Oracle SQL*Plus est une application de ligne de commande qui vous permet d&amp;apos;exécuter des instructions SQL et des blocs PL/SQL et de recevoir les résultats dans une application ou dans une fenêtre de commande. SQL*Plus est : livré avec la base de données, installé sur un client et sur le système du serveur de base de données, accessible à partir d&amp;apos;une icône ou de la ligne de commande.
  24. Générer du code PL/SQL dans Oracle JDeveloper Oracle JDeveloper permet aux développeurs de créer, d&amp;apos;éditer, de tester et de déboguer du code PL/SQL dans une interface graphique sophistiquée. Oracle JDeveloper fait partie d&amp;apos;Oracle Developer Suite, mais est également disponible en tant que produit individuel. Lorsque vous créez du code PL/SQL dans JDeveloper, tenez compte des considérations suivantes : Vous devez d&amp;apos;abord créer une connexion de base de données afin de permettre à JDeveloper d&amp;apos;accéder à un propriétaire de schéma de base de données pour les sous-programmes. Vous pouvez ensuite utiliser les menus contextuels JDeveloper sur la connexion de base de données afin de créer une structure de sous-programme à l&amp;apos;aide de l&amp;apos;éditeur de code JDeveloper intégré. L&amp;apos;éditeur de code JDeveloper fournit un excellent environnement pour le développement de code PL/SQL, avec des fonctionnalités telles que les suivantes : Couleurs différentes pour les composants syntaxiques du langage PL/SQL. Fonction Code Insight permettant de localiser rapidement des procédures et des fonctions dans les packages fournis. Vous appelez un sous-programme à l&amp;apos;aide de la commande Run du menu contextuel correspondant au sous-programme indiqué. La sortie apparaît dans la fenêtre JDeveloper Log Message, comme indiqué dans la partie inférieure de la capture d&amp;apos;écran. Remarque : JDeveloper fournit une syntaxe utilisant des codes de couleur dans l&amp;apos;éditeur de code JDeveloper. Il reconnaît les structures et les instructions en langage PL/SQL.
  25. Créer une connexion de base de données Pour créer une connexion de base de données, procédez de la manière suivante : 1.Cliquez deux fois sur &amp;lt;votre_chemin&amp;gt;\sqldeveloper\sqldeveloper.exe. 2.Dans l&amp;apos;onglet Connections, cliquez avec le bouton droit de la souris sur Connections et sélectionnez New Connection. 3.Entrez le nom de la connexion, le nom utilisateur, le mot de passe, le nom d&amp;apos;hôte et l&amp;apos;identificateur système (SID) de la base à laquelle vous souhaitez vous connecter. 4.Cliquez sur Test pour vous assurer que la connexion est correctement définie. 5.Cliquez sur Connect. Dans l&amp;apos;onglet qui apparaît au bas de la page, renseignez les champs suivants : Hostname : Système hôte de la base de données Oracle. Port : Port d&amp;apos;écoute (listener). SID : Nom de la base de données. Service Name : Nom de service réseau pour une connexion à une base de données distante. Si vous cochez la case Save Password, le mot de passe est enregistré dans un fichier XML. La prochaine fois que vous utiliserez cette connexion SQL Developer, vous ne serez pas invité à entrer le mot de passe.
  26. A propos du langage PL/SQL Le langage SQL (Structured Query Language) est le principal langage d&amp;apos;accès aux données et de modification des données dans les bases relationnelles. Les commandes SQL sont en nombre restreint, de sorte que vous pouvez les apprendre et les utiliser facilement. Prenons l&amp;apos;exemple suivant : SELECT first_name, department_id, salary FROM employees; L&amp;apos;instruction SQL ci-dessus est simple et directe. Cependant, si vous souhaitez modifier des données extraites de manière conditionnelle, vous vous heurtez rapidement aux limitations du langage SQL. Considérons un exemple légèrement différent. Pour chaque employé extrait, vous voulez vérifier l&amp;apos;ID de département et le salaire. Vous voulez accorder des primes différentes aux employés en fonction de leur salaire et des performances de leur département. Vous savez que vous devez exécuter l&amp;apos;instruction SQL ci-dessus, collecter les données, puis appliquer une logique aux données. Une solution consiste à écrire pour chaque département une instruction SQL définissant la prime à accorder aux employés. Rappelez-vous que vous devez également vérifier le salaire avant de fixer le montant de la prime. Le problème devient alors plus complexe. Vous vous rendez compte que le problème serait beaucoup plus simple à résoudre si vous disposiez d&amp;apos;instructions conditionnelles. Le langage PL/SQL est conçu pour faire face à ces besoins. Il offre des extensions de programmation pour le langage SQL existant.
  27. A propos du langage PL/SQL (suite) Le langage PL/SQL définit une structure de bloc pour l&amp;apos;écriture de code. Cette structure facilite la maintenance et le débogage du code. Il devient facile de comprendre le flux et l&amp;apos;exécution du programme. Le langage PL/SQL offre des fonctionnalités d&amp;apos;ingénierie logicielle modernes telles que l&amp;apos;encapsulation de données, le traitement des exceptions, le masquage de données et l&amp;apos;orientation objet. Il apporte en outre au serveur et aux outils Oracle les dernières évolutions en matière de programmation. Il fournit toutes les structures procédurales disponibles dans les différents langages de programmation de troisième génération (3GL).
  28. Environnement PL/SQL La diapositive ci-dessus illustre l&amp;apos;environnement d&amp;apos;exécution PL/SQL du serveur de base de données Oracle. Un bloc PL/SQL contient des instructions procédurales et des instructions SQL. Lorsque vous soumettez un bloc au serveur, le moteur PL/SQL commence par l&amp;apos;analyser (parse). Il identifie les instructions procédurales et les instructions SQL. Il transmet les instructions procédurales au programme d&amp;apos;exécution des instructions procédurales et les instructions SQL au programme d&amp;apos;exécution des instructions SQL. Le schéma de la diapositive ci-dessus illustre le moteur PL/SQL dans le serveur de base de données. Les outils de développement d&amp;apos;applications Oracle peuvent également contenir un moteur PL/SQL. L&amp;apos;outil transmet les blocs au moteur PL/SQL local. Par conséquent, toutes les instructions procédurales sont exécutées localement et seules les instructions SQL sont exécutées dans la base de données. Le moteur utilisé dépend de l&amp;apos;emplacement à partir duquel le bloc PL/SQL est appelé.
  29. Avantages liés à l&amp;apos;utilisation du langage PL/SQL Intégration de structures procédurales au langage SQL : Le principal avantage du langage PL/SQL est l&amp;apos;intégration de structures procédurales au langage SQL. Ce dernier est un langage non procédural. Lorsqu&amp;apos;une commande SQL est exécutée, elle indique quoi faire au serveur de base de données. En revanche, elle ne peut pas indiquer comment le faire. Le langage PL/SQL intègre des instructions de contrôle et des instructions conditionnelles au langage SQL ce qui vous permet de mieux contrôler les instructions SQL et leur exécution. Nous avons vu précédemment dans ce chapitre un exemple qui illustre la nécessité d&amp;apos;une telle intégration. Amélioration des performances : Sans le langage PL/SQL, vous ne pourriez pas combiner logiquement des instructions SQL dans une même unité. Si vous avez conçu une application contenant des panneaux, il est possible que vous disposiez de plusieurs panneaux contenant différents champs. Lorsqu&amp;apos;un panneau soumet des données, vous pouvez être amené à exécuter un certain nombre d&amp;apos;instructions SQL. Ces instructions sont envoyées une par une à la base de données. Il en résulte de nombreux allers-retours réseau et un appel de la base de données pour chaque instruction SQL. Cela entraîne une augmentation du trafic réseau et une dégradation des performances, en particulier dans un modèle client-serveur. Le langage PL/SQL vous permet de combiner toutes ces instructions SQL dans un même programme. L&amp;apos;application peut alors envoyer le bloc entier à la base au lieu d&amp;apos;envoyer les instructions SQL une par une. Il en résulte une réduction significative du nombre d&amp;apos;appels de la base de données. Comme le montre la diapositive ci-dessus, si une application a recours de manière intensive à des instructions SQL, vous pouvez regrouper celles-ci dans des blocs PL/SQL avant de les envoyer au serveur de base de données Oracle en vue de leur exécution.
  30. Avantages liés à l&amp;apos;utilisation du langage PL/SQL (suite) Développement de programme modulaire : L&amp;apos;unité de base de tous les programmes PL/SQL est le bloc. Les blocs peuvent être séquentiels ou être imbriqués dans d&amp;apos;autres blocs. Le développement modulaire de programme présente les avantages suivants : Vous pouvez regrouper dans des blocs les instructions liées logiquement. Vous pouvez imbriquer des blocs dans d&amp;apos;autres blocs afin de créer des programmes puissants. Vous pouvez fractionner une application en modules plus petits. Lorsque vous concevez une application complexe, le langage PL/SQL vous permet de la fractionner en modules plus petits, plus faciles à gérer et logiquement liés. Vous pouvez facilement effectuer la maintenance et le débogage du code. Dans PL/SQL, la modularisation est mise en oeuvre à l&amp;apos;aide de procédures, de fonctions et de packages. Ces éléments sont traités dans le chapitre intitulé &amp;quot;Créer des procédures et des fonctions stockées&amp;quot;. Intégration aux outils : Le moteur PL/SQL est intégré aux outils Oracle tels qu&amp;apos;Oracle Forms, Oracle Reports, etc. Lorsque vous utilisez ces outils, le moteur PL/SQL disponible localement assure le traitement des instructions procédurales. Seules les instructions SQL sont transmises à la base de données.
  31. Structure d&amp;apos;un bloc PL/SQL La diapositive ci-dessus illustre un bloc PL/SQL de base. Un bloc PL/SQL est constitué de trois sections : Section déclarative (facultative) : Cette section commence par le mot-clé DECLARE et se termine là où commence la section exécutable. Section exécutable (obligatoire) : Cette section commence par le mot-clé BEGIN et se termine par END. Elle doit comporter au moins une instruction. Remarquez que l&amp;apos;instruction END se termine par un point-virgule. La section exécutable d&amp;apos;un bloc PL/SQL peut, à son tour, inclure un nombre quelconque de blocs PL/SQL. Section de traitement des exceptions (facultative) : Cette section est imbriquée dans la section exécutable. Elle commence par le mot-clé EXCEPTION.
  32. Types de bloc Un programme PL/SQL comporte un ou plusieurs blocs. Ces blocs peuvent être entièrement distincts ou être imbriqués. Il existe trois types de bloc qui constituent un programme PL/SQL. Il s&amp;apos;agit des types suivants : Blocs anonymes Procédures Fonctions Blocs anonymes : Les blocs anonymes sont des blocs non nommés. Ils sont déclarés en ligne (inline) dans une application, à l&amp;apos;endroit où ils doivent être exécutés, et sont compilés chaque fois que l&amp;apos;application est exécutée. Ces blocs ne sont pas stockés dans la base de données. Ils sont transmis au moteur PL/SQL en vue de leur exécution. Les déclencheurs (triggers) d&amp;apos;Oracle Developer sont constitués de tels blocs. Ces blocs anonymes sont pris en compte lors de l&amp;apos;exécution parce qu&amp;apos;ils sont en ligne. Si vous souhaitez exécuter de nouveau le même bloc, vous devez réécrire le bloc. Vous ne pouvez pas appeler le bloc que vous avez écrit précédemment, car les blocs sont anonymes et n&amp;apos;existent plus après leur exécution.
  33. Créer un bloc anonyme Pour créer un bloc anonyme avec SQL Developer, saisissez-le dans l&amp;apos;espace de travail (comme illustré dans la diapositive ci-dessus). Le bloc comporte une section déclarative et une section exécutable. Pour le moment, ne tenez pas compte de la syntaxe des instructions du bloc. Celle-ci sera abordée ultérieurement dans le cours. Le bloc anonyme obtient la valeur first_name de l&amp;apos;employé pour lequel le paramètre employee_id a la valeur 100 et stocke cette valeur dans une variable nommée v_fname.
  34. Exécuter un bloc anonyme Cliquez sur le bouton Run Script pour exécuter le bloc anonyme dans l&amp;apos;espace de travail. Notez que le message &amp;quot;anonymous block completed&amp;quot; s&amp;apos;affiche dans la fenêtre Script Output après l&amp;apos;exécution du bloc.
  35. A very large database (VLDB) has no minimum absolute size. It may contains hundreds of gigabytes or even terabytes of data. VLDBs typically owe their size to a few very large tables and indexes rather than a very large number of objects. Here are some typical situations that make it hard to work with VLDBs: Reloading or rebuilding large tables and indexes can greatly exceed any of the company’s downtime allowances. A disk failure may render a big table inaccessible. The table may be striped over many disks. The more disks involved, the greater the exposure to disk-related problems. Users may still need to access the subset of rows unaffected by disk failure. In a data warehouse environment, users might query the most recent data more intensely than older data. It would be advantageous to tune the database to meet this pattern of behavior. Note: The benefits of partitioning are not just for very large databases; every database, even small databases, can benefit from partitioning. Even a database whose size is measured in megabytes can gain the same type of performance and manageability benefits from partitioning as the largest multiterabyte systems.
  36. Prior to the introduction of Oracle Partitioning (or in cases where Oracle Partitioning is not licensed), manageability constraints can be addressed by manually splitting up tables into subsets. Union views are used to mimic the overall table. This has some disadvantages: Query optimization and tuning are complex. Every manual partition (table) has its own metadata definition, making administration cumbersome. Overall primary key and unique constraints are hard or impossible to implement. One advantage might be that it is possible to have a plan that accesses some tables via index and other tables via a full-table scan. Example: CREATE VIEW accounts AS SELECT * FROM accounts_jan11 UNION ALL SELECT * FROM accounts_feb11 UNION ALL ... SELECT * FROM accounts_dec11; Partitioning provides a far better way of breaking down tables into manageable pieces and is a critical feature for managing very large databases. Growth is the basic challenge that partitioning addresses for VLDB systems, and partitioning enables a divide and conquer technique.
  37. Partitioned tables allow your data to be broken down into smaller, more manageable pieces called partitions (or even subpartitions). Indexes can be partitioned in a similar fashion. Each partition can be managed individually and can function independently of other partitions, thus providing a finer granularity for availability and performance. Partitioning is transparent to existing applications, as are standard data manipulation language (DML) statements run against partitioned tables. Even though it is not necessary to modify SQL statements to use partitioning, it is possible to target individual partitions by using a partition-extended table or index names in special cases. Each partition or subpartition is a segment and inherits many of the properties that segments have. Different partitions that belong to the same table or index can reside in different tablespaces, have distinct storage clauses, and be maintained by granular commands.
  38. In general, you can mix partitioned and nonpartitioned indexes with partitioned and nonpartitioned tables. A partitioned table can have partitioned and nonpartitioned indexes. A nonpartitioned table can have partitioned and nonpartitioned indexes. Bitmap indexes on nonpartitioned tables cannot be partitioned. Index-organized tables and any corresponding secondary indexes can be partitioned. However, there are design considerations that should be made based on performance, availability, and manageability.
  39. Range Partitioning Range partitioning uses ranges of column values to map rows to partitions. Range partitions are ordered and this ordering is used to define the lower and upper boundaries of a specific partition. It is the most common type of partitioning and is often used with dates. Hash Partitioning This method uses a hash function on the partitioning columns to stripe data into partitions. The hashing algorithm evenly distributes rows among partitions (if the number of partitions is a power of two). Hash partitioning is the ideal method for distributing data evenly across devices. It is also useful when the data values may be skewed by range analysis. List Partitioning The list method allows explicit control over how rows map to partitions. This is done by specifying a list of discrete values for the partitioning column in the description for each partition. This partition method allows the modeling of data distributions that follow discrete values that are unordered and unrelated sets of data.
  40. Composite partitioning is a combination of the basic data partitioning strategies. A table is partitioned by one data distribution strategy, and then each partition is further subdivided into subpartitions by using a second data distribution strategy. All subpartitions for a given partition together represent a logical subset of the data. The top-level partitioning strategy can be of the range, interval, list, or hash method. The subpartition strategy can be of the range, hash, or list method. The top-level partitioning strategy is a logical construct and does not support a storage clause. All partitions in a composite strategy are of the subpartition type, and a storage clause can be specified for each subpartition. Composite partitioning is useful for SQL statements that involve multiple conditions in the WHERE clause, providing a more granular selection of records. Consider the following query: SELECT count(*) FROM customers WHERE cust_city = &amp;apos;ORLANDO&amp;apos; AND cust_year_of_birth &amp;gt; 1991 and cust_year_of_birth &amp;lt; 1999; If the current year is 2011, the above query would count how many teenagers live in the city of Orlando. One possible composite strategy designed for this query would be to list partition on the cust_city column and range partition on the cust_year_of_birth column. Composite partitioning is also very useful for joins in data warehouse applications.
  41. The slide summarizes the ten years of partitioning development at Oracle. Note: Reference partitioning enables pruning and partition-wise joins against child tables. While performance seems to be the most visible improvement, do not forget about other benefits. Partitioning must address all business-relevant areas of performance, manageability, and availability.