Base de Données
Base de Données
Base de Données
è
È
j,,1,'";1,;;'
BASE DE DONNEES II
SMI - 56 -
PLAN
I -
:
Tableaux et Structures
-
l
Sous programmes : Procédures et Fonctions
:
l
Problématique
i
: :
JDBC : Fonctionnement
ExemPles
.
, vl- TD &TP
,, - TD t,fD2
i
r-TP
ANNEXE
BIBLIOGRAPHIE
Bases de Données: Collection de données stockées dans des fichiers accessibles pour plusieurs
utilisateurs. C'est une collection d'informations organisées afin d'être facilement consultables,
gérables et mises à jour.
Ces données représentent des informations servant aux activités et au management d'une entreprise.
Elles contiennent généralemerrt des agrégats d'enregistrernents ou de fichiers de données, contenant
des informations sur les transactions de vente ou les interactions avec des clients spécifiques.
L'histoire des bases de données remonte aux années 1960, avec l'apparition des bases de données
réseau et des bases de données hiérarchiques :
Modèles de Bases de Données : Absfractiorr mathématique selon laquelle l'utilisateur voit les
données. Exemples :
':. Modèlehiérarchique
* Modèle réseau
'l Modèle relationnel
* Modèle Objet
lVlodèle hiérarchique:Une base de données hiérarchique est une forme qui lie des
enregistrements dans une structure arborescente de façon à ce que chaque enregistrement n'ait
qu'un seul possesseur. Cependant, à cause de leurs limitations internes, elles ne peuvent pas
souvent être utilisées pour décrire des structures existantes dans le monde réel.
) Si le principe de relation < l vers N > n'est pas respecté (par ex., un malade peut avoir plusieurs
médecins et un médecin a, a priori, plusieurs patients): la hiérarchie se transforme en un réseau.
o. Modèle réseau: Le modèle réseau est en nresure de lever de nombreuses difficultés du modèle
hiérarchique grâce à la possibilité d'établir des liaisons de type n-n. Les liens entre objets pouvant
exister sans restriction. Pour retrouver une donnée dans une telle modélisation. il faut connaître
le chemin d'accès
Modèle relationnel : Une base de données relationnelle est une base de données structurée
suivant les principes de I algèbre relationnelle.
Edear Frank Codd (Fondateur) : Mathématicien de formation, Chercheur chez IBM à la fin des
années 1960, il était persuadé qu'il pourrait utiliser la théorie des ensembles et la logique des
prédicats du premier ordre pour résoudre des difficultés telles que la redondance des données,
I'intégrité des données,ou I'indépendance de la structure de la base de données avec sa mise en
æuvre physique. Un premier prototype de Système de gestion de bases de données relationnelles
(SGBDR) a été construit dans les laboratoires d'lBM. Depuis les années 80, cette technologie a mûri
et a été adoptée par I'industrie.
d. Modèf e Obiet : La notion de boses de données oblef est plus récente et encore en phase de
recherche et de développement. Elle sera très probablement ajoutée au modèle relationnel.
a. Définition d'un SGBD : Ensemble de programmes qui permettent à des utilisateurs de créer et
maintenir une base de données
c. Niveaux d'un SGBD: La plupart des SGBD suivent l'architecture starrdard ANSI/Sparc qui permet
d,isoler les différents niveaux d'abstraction nécessaires pour un SGBD.
Le SGBD doit être capable de faire des transformations entre chaque niveau, de manière à transformer
une requête exprimée en terme du niveau externe en requête du niveau conceptuel puis du niveau
physique.
Les couches Oracle : Par définition, un système de gestion des bases de données est un ensemble de
programmes destinés à gérer les fichiers. Oracle est constitué essentiellement des couches :
.l Le noyau
n Le dictionnaire de données
.l La couche SQL
* La couche PL|SQL
Le noyau dont le rôle est l'optimisation dans l'exécution des requêtes, la gestion des accélérateurs
(index et Clusters), le stockage des données, la gestion de l'intégrité des données la gestion des
connexions à la base de données et l'exécution des requêtes.
Le dictionnaire de données est une métabase qui décrit d'une façon dynamique la base de données.
llpermet de décrire les objets suivants : Les objets de la base de données (Tables, SYNONYMES, VUES,
COLONNES,...), les utilisateurs accédant à la base de données avec leurs privilèges (CONNFCT,
RESOURCE et DBA). Ainsi toute opération qui affecte la structure de la base de données provoque
automatiquement une mise à jour du dictionnaire.
La couche SQt. Ellejoue le rôle d'interface entre le noyau et les outils d'oracle. Ainsi, tout accès à la
base de donnees est exprime en langage SQL. Le rôle de cette couche est d'interpréter les commandes
SQL de faire la vérification syntaxique et sémantique et de les soumettre au noyau pour exécution.
La couche PL/SQL: Cette couche est une extension de la couche SQL puisque le PL/SQL est une
extension procédurale du SQL.
DROP, MoDIFY
modifier un objet de |a base de données. Exemp|es : CREATE, ALTER,
(LMD) commandes permettent de faire la mise à
È Langage de manipulation des données : Ces
:SELECT'
jour ou la consultation des données dans une table de la base de données Exemples
UPDATE, INSERT, DELETE
'/ Langage de transaction (TCL) : Ces commandes permettent de gérer les modifications
apportéesauxdonnéesde|abasededonnées.Exemp|es:CoMM|T,etRoLLBACK
quclques-uns
oracle. oraclc supporte plusieurs types d'obiets, voici
:
f. Les obiets manipulés par
lignes (enregistrements ou
table est composée de colonnes (champs ou attributs) et de
occu rrences).
Les vues : Une vue est une table virtuelle issue du modèle
externe contenant une partie d'une
ou plusieurs tables.
par un nom d'usager et un
User: Utilisateurs du systèrrre oracle. Chaque usager est identifié
mot de oasse.
', Synonymes : Autre nom donné aux objets Table, vue' séquence
et schéma'
Svntaxesimplifiée:CREATETABLE<nom-de-tab!e>(<nom-de-colonne><type-de-données>);
SvntaxegénéraIeI,CREATETAELE<nom-de_tgble>(<nom_de_colonne><type_de-données>
TDEFAULT <valeur>l
[ ICA N ST RAt NT <no m-d e-co ntro i nte >]
NULL Ou
NOT NULL OU
UNIQUE OU
PRIMARY KEY OU
FOREIGN KEY OU
R EF ERE N CES < No m-d e-Tqbl e><no m-de-colon n e> O U
Nom VARCHAR2(20),
Prenom VARCHAR2(20)'
codePrg VARC|IAR2(3),
programme (codePrg) );
coNSIRArN T fkl FoREtcN KEY(codePrg) REFERENCES
PourobIigerparexemple|esprixdesproduitsàêtrepositifs,onpeututiIiser:
CREATE TABLE Produits (
no-Produit integer,
nom text,
prix numeric CHECK (Prix > 0) );
Unecontraintedevérificatior-rpeutaussifaireréférenceàp|usieursco|onnes'
le prix normal et un prix réduit en s'assurant
Exemple: Dans le cas d'un produit, orr peut vouloir stocker
que le prix réduit soit bien inférieur arr prix normal :
CREATE TABLE Produits (
no-Produit integer'
nom text,
prix numeric CHECK (Prix > 0),
prix-promo numeric CHECK (prix-promo > 0)'
Les contraintes d'unicité garantissent l'unicité des données contenues dans une colonne ou un
groupe
de colonnes par rapport à toutes les lignes de la table. La syntaxe est :
Contrainte colonne : CREATE TABLE produits (
no_produ it i nteg e r UN IQU E,
nom text,
prix numeric);
Les relations (Jointures) permettent d'exploiter pleinement le modèle relationnel des tables d'une base
de données. Elles sont faites pour mettre en relation deux (ou plus) tables concourant à rechercher la
réponse à des interrogations. Une jointure permet donc de combiner les colonnes de plusieurs tables.
Les jointures normalisées s'expriment à l'aide du mot clef JOIN dans la clause FROM. Suivant la
nature
de la jointure, on devra préciser sur quels critères se base la jointure :
ll s'agit de la plus commune des lointures. C'est celle qui s.'exerce par défaut si on ne précise pas le type
de jointure. Après le mot clé ON, nous devons préciser le critère de jointure, Exemple ;
SELECT CLI-NOM, T E L_N U M ERO
FROM T_CLIENT INNER JOIN T_TÊLEPHONE
ON T-CLI ENT.CLI D = T-TELEPHON E' CLI D
-l -l
c.2. Jointures externes
Les jointures externes sont extrêmement pratiques pour rapatrier le maximum d'informations
disponibles, même si des lignes de table ne sont pas renseignées entre les différentes tables jointes'
La syntaxe de la jointure externe est la suivante :
SELECT ... FROM <toble gauche>
LEFT I RTGHT I f:ULL OUTER JOIN <table droite 1">
ON <condition de jointure>
ILEFT I RtGtlT I FULL OUTER JOIN <table droite 2>
ON <condition de iointure 2>l ...
Les mots clefs LEFT, RlGHTet FULL indiquent la manière dont le moteur de requête doit effectuer la
jointure externe. lls font réfirence à la table située à gauche (LEFT) du mot clef JOIN ou à la table située
à droite'(RIGHI) de ce même mot clef , Le mot FULL indique que la jointure externe est bilatérale.
La jointure croisée CROSS JOIN n'est autre que le produit cartésien de deux tables. Rappelons que le
oroduit cartésien de deux ensembles n'est autre que la multiplication généralisée. Dans le cas des
tables, c'est le fait d'associer à chacune des lignes de la première table, toutes les lignes de la seconde.
La syntaxe de la jointure croisée est la suivante :
SELECTcolonnes
FROM T_1 CROSS totN T._2
I?RDER 8Y]
privilèges
5. Création et gestion des vues' synonymes,
}REATEoRREPLA1EVtEWma-yueASSELECTcolonnesFRoMT>1'
Where condition
de l'évaluation de la requête
c,est la définition de la vue qu,on stocke dans le SGBD, pas le résultat
à DROP VIEW ma-vue : ne supprime que la définition'
Exemple:
. CREATE OR REPLACE V|EW V-EMP-DEP AS
SELECT * FROM EMP WHERE
deP = 1'
V I EW,.,
CREAT E M AT ERI ALIZED
des vues matérialisees (en présence de iointure)
Attention à Ia taille volumineuse
Lesprivilèges:LacommandeGRANTpermetd'attribuerdesdroitsàdesutilisaleurssurvosobjetsLa
commandeREVOKEpermetdesupprimerdesprivilèges'SYNTAxE:
<no-obiet>
6RANf <privitege>[ou ALL] ON
'To .no^-rsoger> [ou PU BLIC]
[wtTH GRANT OPTtoN]
-LesprivilègesSont:SEL|-CT,INStRT,UPDATE,DEIETE,AITER,INDEX,REFERENCESou(ALL).
_onpeutattribuerplusiei-rrsprivi|èges,maisiIfautIesséparerparunevirguIe.
séparees par une virgule
- On peut préciser plusieurs colonnes'
Un rôle représente un ou plusieurs privilèges. On crée des rôles lorsqu'un ensemble de privilègesvont
être attribués à plusieurs usagers.