LP Informatique(DA2I), F7 : Administration Système, Réseaux et Base de données 15/11/2007, Enseignant : M. Nakechbnadi, mail : nakech@free.fr Première parie : Administration d une BD Chapitre 1 : Architecture des SGBD, Le produit ORACLE, Le role de DBA 1.1/Architecture des SGBD Les architectures physiques de SGBD sont très liées au mode de répartition. BD centralisée BD client/serveur BD client/multi-serveurs BD répartie BD hétérogène BD mobile BD parallèle
Architecture centralisée Terminaux passifs réseau Appli 1 Appli 2 Appli n Mainframe SGBD données 2.2
Architecture client-serveur Clients intelligents Appli 1 Appli 2 Appli n réseau serveur SGBD code données 2.3
Architecture Client-Multiserveurs SQL Appli 1 SQL ODBC ODBC SQL SQL SGBD 1 SGBD 2 code données code données 2.4
Architecture répartie Appli 1 Appli 2 Appli n SGBD 1 SGBD 2 code données code données 2.5
Architecture mobile Clients intelligents mobiles Données répliquées et/ou personnelles Réseau sans fil serveur SGBD code données 2.6
BD parallèle BD parallèle = Techniques des bases de données + Parallélisme et architecture parallèle Il faut bien entendu avoir une machine multiprocesseur pour en tirer avantage. 2.7
1.2/ Le D.B.A. D.B.A. = Data Base Administrator = Administrateur de bases de données. Il est responsable du bon fonctionnement des bases de données de l entreprise. Son travail peut être assimilé à celui d'un responsable système, Oracle pouvant être perçu comme un 'sous' système exploitation. Ses taches : - - - - - - - - 2.8
Les taches de DBA : o o o o o o o Installer le logiciel, faire les mises à jour (patchs, changement de version du noyau mais aussi des autres produits), Créer les bases de données physiques et gérer l espace physique, Gérer les utilisateurs et leurs droits d accès, Valider les schémas de données (cohérence, non redondance, optimisation) Assurer la sécurité de la base (sauvegarde, restauration, confidentialité d accès), Gérer les ressources systèmes et optimiser les performances, Faire les transferts de données de et vers d autres systèmes 2.9
Le 'profil' DBA Un DBA pour pouvoir travailler doit posséder un profil privilégié : au niveau OS au niveau de la base de données Sur Unix le DBA doit avoir un compte Unix particulier, généralement baptisé Oracle, qui appartient à un groupe prédéfini Unix baptisé DBA. Les fichiers composant le logiciel et les process d'oracle, appartiendront à cet utilisateur. Pour certaine étapes de l'installation (notamment création du user, et mise à jour des fichiers de démarrage, et des paramètres système) le DBA devra les privilèges 'root'. Sur NT le DBA devra appartenir au groupe administrateur, notamment pour démarrer les services Oracle sur le serveur. 'Sur' Oracle le DBA devra avoir reçu l'ensemble de droit (prédéfini) Oracle baptisé 'DBA'. Ceci lui permettra notamment d'avoir une vision complète du référentiel de la base de données et d'accéder sans restrictions à toutes les données utilisateurs. Remarque : les utilisateurs standards SYS et SYSTEM de la base de données ont les droits DBA. 2.10
1.3/ les produits Oracle Oracle est historiquement connu comme fournisseur de SGBDR (le 1er au monde en 2001) mais se positionne maintenant comme fournisseur de solutions informatique pour l'entreprise. Le coeur de son offre est toujours le serveur de données relationnel mais avec un peu de recul on peut distinguer cinq grandes familles de produits: Les serveurs et les utilitaires : SQLPLUS, Oracle Forms, Les environnements de développement : Les logiciels d aide à la décision : Les progiciels client serveurs et Internet : (Oracle Application & Oracle e-business suite) Oracle Internet Application Server : 2.11
Annexe 1.Rappel Oracle/SQL 2.Utilitaire SQL*PLUS
1. Rappel Oracle/SQL Connexion Pour utilisez SQL*Plus on tape (sous l invite du système) : sqlplus Nom d utilisateur : <votre nom> Mot de passe : <votre nom> Chaîne hôte : DPTINFO Changer votre mot de passe : alter user <nom utilisateur> identified by <nouveau password> 2.13
Les Types de données CHAR(l) : Champ de longueur fixe l pour stocker des caractères VARCHAR2(l) : Champ de longueur variable pour stocker des caractères NUMBER(l,d) : Champ de longueur variable pour stocker des nombres l : représente la longueur d : le nombre de décimales DATE Champ de longueur fixe pour stocker des dates current_date : date actuelle 2.14
Les LDD (définitions de données) (1) CREATE, DROP, GRANT ou REVOKE CREATE TABLE nom_table ( col1 type_col1 [ [NOT] NULL], col2 type_col2 [ [NOT] NULL], ); CREATE TABLE nom_table AS <requête SELECT>; CREATE VIEW nom_vue AS <requête SELECT>; 2.15
Les LDD (2) DROP TABLE nom_table; GRANT (ou REVOKE) privilège TO user Exemple : GRANT connect, resource to toto; 2.16
Les LMD (Modification de données) SELECT attributs FROM nom_table WHERE critères; INSERT INTO nom_table [(col1,col2, )] VALUES (valeur1, valeur2,...); ALTER TABLE nom_table ADD ( attribut1 type_attribut1 [ [NOT] NULL] ); ALTER TABLE nom_table MODIFY ( attribut type_attribut [ [NOT] NULL] ); ALTER TABLE nom_table DROP COLUMN ou CONSTRAINT 2.17
Les contraintes Clé primaire unique : CONSTRAINT nom_contrainte PRIMARY KEY (col_clé); Clé étrangère unique : CONSTRAINT nom_contrainte FOREIGN KEY (col_clé) REFERENCES table_liée (clé_liée) [ ON DELETE [CASCADE] ] [SET DEFAULT] [SET NULL] ] [ ON UPDATE ]; 2.18
Les contraintes (2) Clé primaire multiples : CONSTRAINT nom_contrainte PRIMARY KEY (col_clé1, col_clé2, ); Clé étrangère multiples : CONSTRAINT nom_contrainte FOREIGN KEY (col_clé1, col_clé2, ) REFERENCES table_liée (clé_liée1, clé_liée2, ) Contrainte d unicité : CONSTRAINT nom_contrainte UNIQUE (Col_clé1, Col_clé2, ); 2.19
Les contraintes (3) CONSTRAINT nom_contrainte CHECK (condition) Exemple : CREATE TABLE etudiant ( numen nom prenom sexe NUMBER(6) NOT NULL, VARCHAR2(20), VARCHAR2(20), CHAR(1) CHECK (sexe IN ( M, F ), CONSTRAINT cp_numen PRIMARY KEY (numen)); 2.20
Autres commandes CREATE VIEW nom_vue AS requête UPDATE nom_table SET attribut=expression WHERE condition DELETE FROM nom_table WHERE condition COUNT pour compter SELECT Nom, COUNT(note) FROM notation 2.21
Grant et Revoke GRANT <privilèges> ON <objet> TO <liste_utilisateurs> Privilèges : update, update(x), select, insert, all, delete, GRANT select,update(nom) on toto TO Martin,Durand REVOKE <privilèges> ON <objet > FROM <liste_utilisateurs > 2.22
Références G. Gardarin, O. Gardarin, Le Client-Serveur, Eyrolles, 2e édition, 1996 S. Miranda, A. Ruols, Client-Serveur, Moteurs SQL, middleware, et architectures parallèles Eyrolles, 2e édition, 1996 Bases de données : Introduction et Objectifs, G. Gardarin et L. Bouganim, support de cours, http://georges.gardarin.free.fr/ 2.23