oracle by zhangyun

VIEWS: 38 PAGES: 30

									                               Oracle
                              Alexandre Facchin
                               Ingénieurs2000
                                         10/11/2000




Oracle le 15/11/2000 Alexandre Facchin
                                         Oracle
    1.     Présentation & Principe
    2.     Administration et Outils
    3.     Oracle et le langage C/C++
    4.     Oracle et Java
    5.     Oracle vs MySql/Postgres



Oracle le 15/11/2000 Alexandre Facchin
               1. Présentation d’Oracle




Oracle le 15/11/2000 Alexandre Facchin
                                  Historique
      1970
              Début de l'ère des bases de données par un article rédigé par B. Codd, "A
              Relational Model of Data for Large Shared Data Banks". Cet article
              fournit une base mathématique et théorique solide (ce qui est toujours une
              bonne chose) au concept de bases de données relationnelles. Les concepts
              de Codd ne seront implémentés que progressivement.
      1977
              Lawrence Ellison, Bob Miner et Ed Oates fondent la société "Relational
              Software Incorporated (RSI)". Ils conçoivent un RDBMS appelé Oracle,
              le premier système commercial relationnel disponible sur le marché.
       1979
              Commercialisation du premier prototype (RDBMS - RSI 1). Séparation
              des espaces d'adressage entre les programmes utilisateurs et le noyau
              Oracle. Cette version a été entièrement développée en assembleur !


Oracle le 15/11/2000 Alexandre Facchin
                              Historique(2)
    1988
       Sortie de Oracle 6. Beaucoup d'améliorations : performances accrues,
       davantage de fonctionnalités, une gestion du verrouillage bas-niveau et de
       mise-à-jour en différé. Le système peut également être utilisé sur un plus
       grand nombre de plate formes.
    1992
       Sortie de Oracle 7 pour UNIX. Beaucoup de changements dans
       l'architecture au niveau de la gestion de la mémoire, du CPU et des E/S.
       Oracle7 est la version actuellement la plus répandue. Son exploitation est
       facilitée par les outils SQL*DBA (Data base Administration).
    1996
       Oracle 8 est la première version orientée objet du système (bêta test).


Oracle le 15/11/2000 Alexandre Facchin
Principe :




 Oracle le 15/11/2000 Alexandre Facchin
                  Les Processus Système
        4 Processus par Base
             Data base WRiter (DBWR)
             LoG Writer (LGWR)
             System MONitor (SMON)
             Process MONitor (PMON)
        1 Processus pour les accès réseau
             Listener

Oracle le 15/11/2000 Alexandre Facchin
               Fichiers d'Oracle

                   fichiers de données
                   fichiers de contrôle
                   journaux
                   Autres fichiers (options)
Oracle le 15/11/2000 Alexandre Facchin
                     Caractéristiques (++)
        Performance
        Fiabilité
        Disponibilité sur toute les plate forme
        Capacités d’extension (cluster,…)
        Connexion et Sécurité
        Portabilité
        Fonctionnalité étendu
Oracle le 15/11/2000 Alexandre Facchin
                      Caractéristiques (--)
        Prix
        Complexité de mise en œuvre
        Gourmandise système




Oracle le 15/11/2000 Alexandre Facchin
                                 Installation
        Acheter les CD « 8.1.5.x »
        Télécharger & Installer le jre 1.1.6
        Lancer l’installeur (java)
        Sélectionner l’installation par défaut
        Créer une base de démonstration
        Configurer les fichiers (voir site web)
                     Plutôt Facile!!!
Oracle le 15/11/2000 Alexandre Facchin
                     Démarrage d’Oracle
       Pour un démarrage automatique :
            Dans /etc/rc.d/init.d/ créer un lien symbolique oracle
            vers oracle_start ou oracle_stop:
                 su – oracle –c svrmgrl <<EOF
                 connect internal
                 « startup ou shutdown »
                 EOF
            Dans /etc/rc.d/rc3.d et rc0.d (rc6.d) créer un lien
            symbolique S90oracle vers /etc/rc.d/init.d/oracle_start et
            K90oracle vers oracle_stop.
       Pour un démarrage manuel lancer le script!

Oracle le 15/11/2000 Alexandre Facchin
       Démarrage du Listener (SQL+)
        Pour un démarrage automatique :
             Dans /etc/rc.d/init.d/ créer un lien symbolique oracle
             vers oracle_lstart ou oracle_lstop:
                  su – oracle –c lsncrtl <<EOF
                  « start ou stop »
                  EOF
             Dans /etc/rc.d/rc3.d et rc0.d (rc6.d) créer un lien
             symbolique S90oraclel vers /etc/rc.d/init.d/oracle_lstart
             et K90oraclel vers oraclel_stop.
        Pour un démarrage manuel lancer le script!

Oracle le 15/11/2000 Alexandre Facchin
            2. Administration et Outils




Oracle le 15/11/2000 Alexandre Facchin
          Outils d’installation (Wizard)




Oracle le 15/11/2000 Alexandre Facchin
              Administration Data-Base




Oracle le 15/11/2000 Alexandre Facchin
                  Administration Réseau




Oracle le 15/11/2000 Alexandre Facchin
        3. Oracle et le langage C/C++




Oracle le 15/11/2000 Alexandre Facchin
                             Le Pro*C/C++
        Les Différents PRO*…
        Comment ça marche?
        L’Interface Réseau
        Le But
             Boucle
             Test Conditionnel


Oracle le 15/11/2000 Alexandre Facchin
                                    Exemple
   EXEC SQL INCLUDE sqlca ;
   EXEC SQL INCLUDE oraca ;

   int dbConnect(void){
            EXEC SQL BEGIN DECLARE SECTION ;
            EXEC SQL END DECLARE SECTION ;
            strcpy( (char*) &sqlLogin.arr[0],"scott") ;
            sqlLogin.len = strlen("scott") ;
            strcpy( (char*) &sqlPassword.arr[0],"tiger") ;
            sqlPassword.len = strlen("tiger") ;
            strcpy( (char*) &db_string.arr[0],"myDB") ;
            db_string.len = strlen("myDB") ;
            EXEC SQL WHENEVER SQLERROR GOTO dbconnect_error ;
            exec sql connect :sqlLogin identified by :sqlPassword
            USING :db_string;
      return 1;
      dbconnect_error:
           printf("dbconnect error\n");
      return -1 ;
   }

Oracle le 15/11/2000 Alexandre Facchin
   int dbDisconnect(void){
      EXEC SQL WHENEVER SQLERROR GOTO dbconnect_error ;
      EXEC SQL COMMIT WORK RELEASE;
           return 1;

   dbconnect_error:
           printf("dbdisconnect error\n");
           return -1 ;
   }

   int dbSelect(void){
            EXEC SQL BEGIN DECLARE SECTION ;
              varchar prenom[32]     ;
            EXEC SQL END DECLARE SECTION   ;
            EXEC SQL WHENEVER SQLERROR GOTO dbtest_error ;
            EXEC SQL
                     SELECT prenom
                     into :prenom
            FROM    EMP
            WHERE   nom='ADMIN';
            prenom.arr[ prenom.len ] = '\0' ;
            printf("%s",prenom.arr);
            return 0;
   dbtest_error:
           printf("dbselect error\n");
            return -1 ;
   }
Oracle le 15/11/2000 Alexandre Facchin
                                Compilation
        Pré compilation:
             proc $(PROC_FLAGS)
              INAME=dbtools.pc ONAME=dbtools.c

        Compilation
             $(CC) $(CC_FLAGS) -c dbtools.c
             $(CC) $(CC_FLAGS) myClient.c -o
             myClient $(ORACLE_LIBS) dbtools.o

Oracle le 15/11/2000 Alexandre Facchin
                         4. Oracle et Java




Oracle le 15/11/2000 Alexandre Facchin
                                    API Java
        package oracle.jdbc.driver
             OracleConnection
             OracleDriver
        package oracle.sql
             …




Oracle le 15/11/2000 Alexandre Facchin
                                    Exemple
        Chargement du driver
         DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
        Connexion à notre base
         Connection conn = DriverManager.getConnection
           ("jdbc:oracle:thin:@localhost:1521:test", "scott", "tiger");
        Création de objet Statement qui permet l’exécution d’une requête
         Statement stmt = conn.createStatement ();
        Récupération du résultat
         ResultSet rset = stmt.executeQuery ("select * from cat");
        Exploitation du résultat
         while (rset.next ())
           System.out.println (rset.getString (1));
        Fermeture du Résultat, du Statement et de la Connexion
         rset.close(); stmt.close();     conn.close();

Oracle le 15/11/2000 Alexandre Facchin
               Compilation et Exécution
        Compilation
        Javac LeTest.java
        –classpath=$ORA_HOME/lib/classes.jar
        Exécution
        java LeTest



Oracle le 15/11/2000 Alexandre Facchin
         5. Oracle vs MySql/Postgres




Oracle le 15/11/2000 Alexandre Facchin
                        Comment Choisir?
                        Comparaison Oracle, MySql, PostgreSql
                                     rapidité petites Bases
                                        100%

                                            80%

                                            60%
                 Sandard                                        rapidité grandes Bases
                                            40%

                                            20%
                                                                               Oracle
                                              0%                               MySql
                                                                               Postgresql



          fonctionnalitées                                      facilité de mise en œuvre




                                         sécurité des données
Oracle le 15/11/2000 Alexandre Facchin
                                        Les Chiffres
                                               comparaison en chiffre




       2500




        2000




        1500
                                                                                                 mysql
                                                                                                 pg
                                                                                                 oracle
        1000




          500




               0                                                                                     oracle

                   ATIS                                                                        pg
                          alter-table
                                        big-tables
                                                     connect                                 mysql
                                                               create
                                                                        select
                                                                                 wisconsin




Oracle le 15/11/2000 Alexandre Facchin
                                   Questions




                                         www.alexandre.facchin.tm.fm
Oracle le 15/11/2000 Alexandre Facchin

								
To top