Oracle
Oracle est un système de gestion de base de données relationnel (SGBDR) fourni par Oracle Corporation. Il a été développé par Larry Ellison, accompagné d’autres personnes telles que Bob Miner et Ed Oates.
Software Development Laboratories a été créé en 1977. En 1979, SDL change de nom en devenant Relational Software, Inc. (RSI) et introduit son produit Oracle V2 comme base de données relationnelle. La version 2 ne supportait pas les transactions mais implémentait les fonctionnalités SQL basiques de requête et jointure. Il n’y a jamais eu de version 1, pour des raisons de marketing, la première version a été la version 2. Celle-ci fonctionnait uniquement sur les systèmes Digital VAX/VMS.
En 1983, RSI devient Oracle Corporation pour être plus représentative de son produit phare. La version 3 d’Oracle, entièrement ré-écrite en langage de programmation C, est publiée. Celle-ci supportait les transactions grâce aux fonctionnalités de commit et rollback. C’est aussi à partir de cette version que la plate-forme Unix est supportée.
En 1984, la version 4 d’Oracle apparaît, supportant la cohérence en lecture (read consistency).
Début 1985, Oracle commence à intégrer le modèle client-serveur, avec l’arrivée des réseaux au milieu des années 1980. La version 5 d’Oracle supporte donc les requêtes distribuées.
En 1988, Oracle met sur le marché son ERP - Oracle Financials basé sur la base de données relationnelle Oracle. Oracle version 6 supporte le PL/SQL, le verrouillage de lignes (row-level locking) et les sauvegardes à chaud (hot backups, lorsque la base de données est ouverte).
En 1992, la version 7 d’Oracle supporte les contraintes d’intégrité, les procédures stockées et les déclencheurs (triggers).
En 1995, acquisition d’un puissant moteur multidimensionnel, commercialisé sous le nom d’Oracle Express.
En 1997, la version 8 introduit le développement orienté objet et les applications multimédia.
En 1999, la version 8i est publiée dans le but d’affiner ses applications avec Internet. La base de données comporte nativement une machine virtuelle Java.
En 2001, Oracle 9i ajoute 400 nouvelles fonctionnalités et permet de lire et d’écrire des documents XML.
À partir de la version 9i, intégration du moteur OLAP au sein de Oracle : le moteur Oracle express est dorénavant référencé au sein de l’option Oracle OLAP. Les données multidimensionnelles sont accessibles à partir du langage SQL.
En 2003, la version 10g est publiée. Le g signifie « grid » ; un des atouts marketing de la 10g est en effet qu’elle supporte le « grid computing ».
En 2005, vers la fin novembre, une version complètement gratuite est publiée, la « Oracle Database 10g Express Edition ».
Septembre 2009, sortie de Oracle 11g Release 2
- Installation de la partie cliente sur Windows
La procédure la plus simple : L’installation des "Data Access Components".
- Installation ODBC Oracle
Certains produits se connecte à la bae de données via l’interface ODBC.
Rubriques
FAQ
Trucs et astuces.
- Modifier un mot de passe oracle
Comment supprimer un mot de passe en passant par le compte oracle. Ce cas est typique des bases oracle mis à disposition pour les tests, on dispose généralement du compte root et donc d’un accès en tant qu’oracle.
Oracle Database Personal Edition
Version complète de la base de données pour un usage personnel qui est totalement compatible avec l’ensemble des produits de la gamme.
Base de données |
|---|
Dernières infos
- Utilisation et limites d'Oracle 11g DBMS_XA
DBMS_XApermet plusieurs choses parmi lesquelles coordonner plusieurs branches d'une transaction globale dans des sessions différentes. Les exemples n'étant pas foison, ni sur le web, ni sur les sites d'Oracle pour décrire l'utilisation d'une transaction multi-sessions, cet article présente un cas simple qui utilise une seule et même instance...
Oracle permet alors d'accédez aux modifications non encore validées des autres sessions ; c'est parce que le branches de la transaction globale sont "tightly coupled".
Malheureusement, au moins en 11.2, ce fonctionnement se fait au prix d'une sérialisation des opérations des différentes sessions. Mauvais trip si vous pensiez vous en servir de cette fonctionnalité pour paralléliser vos traitements PL/SQL. Il faudra sans doute vous retourner vers des transactions globales déclenchées via les OCI ou une datasource native XA JDBC. Ce point est illustré à l'aide de 2 exemples ci-dessous. Mais assez parlez : à vos sessions SQL*Plus !
Plus d'infos »
ArKZoYd
- Fonctions de table et Parallèlisme
Il y a quelques semaines, yooo13 qui se reconnaîtra ;-), rebondissant sur un problème de performance d'un des batchs sur lesquels je travaillais, pointait le fait que les fonctions de table ou fonctions "pipelined" peuvent être parallélisées et que j'y trouverais une solution à mon problème...
L'idée simple, et par ailleurs expliquée dans cet article, consiste à prendre le jeu de données d'origine et de le segmenter en jeux plus petits, à la "mapreduce"... Au final et dans mon cas, le résultat est excellent et permet, après 1/2 journée de travail, de diviser les temps de réponse par un facteur d'échelle, passant d'une heure à quelques minutes, par une manipulation purement technique.
Evidemment, ce n'est pas sans de quelques sacrifices. En particulier, l'introduction de code PL/SQL supplémentaire rend la solution, déjà mal écrite/décrite, encore plus difficile à comprendre et ce, malgré tous mes efforts. Mais le sujet de cet article est ailleurs, il s'agit d'illustrer, une des difficultés que j'ai rencontrée, travaillant sur un tout petit jeux de données de 1000 lignes pour équilibrer les "partitions" de mes exécutions en parallèle
Plus d'infos »- Un exemple d'utilisation du hint "CARDINALITY"
Le hint
CARDINALITYpermet d'aider l'optimiseur Oracle en lui "soufflant" le nombre de lignes retournées pour une étape d'un plan. Vous pensez qu'avec les différents mécanismes de dynamic sampling, cardinality feedback, statistiques multi-colonnes, statistiques sur les colonnes virtuelles et SQL Profile, ce hint est inutile ?
Voici une requête où typiquement, la seule solution, sauf de fixer le plan ou de réécrire le SQL, consiste à utiliser ce hint :
Plus d'infos »- Flashback et Snapshot Standby en Action
Qui utilise une base de données Oracle et n'a jamais besoin ?
- d'investiguer les causes d'un problème constaté en production quelques minutes/heures auparavant
- de tester une correction ou une évolutions et comparer le résultat à celui de la production
- de ré-exécuter un batch après correction de données et réintégrer le résultat en production
- de simuler des modifications pour des raisons techniques ou métier
Cet article illustre comment combiner ces 2 fonctionnalités, faire reculer la base de données de standby et l'ouvrir en lecture écriture. Une fois vos tests réalisés, vous pourrez resynchroniser base de données primaire et standby...
Plus d'infos »- Le premier jour de la première semaine de 2012... à New-York !
Discussion lunaire fin 2011 à propos de la première semaine de 2012 : Google Calendar et Microsoft Outlook ne sont pas d'accord ! Il y a ceux qui pensent que la première semaine commence au premier lundi de l'année ; Et Outlook qui met le premier jour de l'année la première semaine... Si on s'en réfère à la description ISO des semaines, la première semaine de l'année est celle qui contient le premier jeudi de l'année.
Cette année, la première semaine commence donc le 2 comme le confirme le SQL ci-dessous qui utilise les formats de date d'Oracle :
select to_char(to_date('01/01/2012','DD/MM/YYYY'), 'IW/IYYY') SEM from dual; SEM ------- 52/2011 select to_char(to_date('02/01/2012','DD/MM/YYYY'), 'IW/IYYY') SEM from dual; SEM ------- 01/2012Le 31 décembre 2012 est quant à lui la première semaine de 2013 :
select to_char(to_date('31/12/2012','DD/MM/YYYY'), 'IW/IYYY') SEM from dual; SEM ------- 01/2013Tout s'éclaire donc... Mais à vrai dire, ma préoccupation était moins le numéro de la semaine que la date du premier jour de la première semaine de l'année mais pas à Paris ! En France, le premier jour de la semaine est le lundi alors qu'aux Etats-Unis, c'est le dimanche :
alter session set nls_territory=FRANCE; select to_char(to_date('01/01/2012','DD/MM/YYYY'), 'D') DAY from dual D - 7 alter session set nls_territory=AMERICA; D - 1Question : "Quel est donc le premier jour de la première semaine de l'année au Etats-Unis ?". Demandons à Oracle...
alter session set nls_territory=AMERICA; alter session set nls_date_format='DD/MM/YYYY'; select trunc(to_date('02/01/2012','DD/MM/YYYY'), 'IW') DAY from dual; DAY ---------- 02/01/2012La réponse est donc un lundi... Même aux Etats-Unis ! Pourquoi ? Parce que dans la définition ISO des semaines, le premier jour de la semaine est le lundi. Seulement, voilà, j'ai beau chercher dans les formats de date d'Oracle, il n'y a pas de format qui permette de trouver le jour de la semaine ISO d'une date. 'D' dépend toujours du territoire. L'intérêt d'être en France est que 'D' signifie donc aussi le jour de la semaine ISO... Mais ce n'est pas vrai partout !
Et voilà, l'histoire de mon premier bug de 2012 qui est aussi le dernier de la dernière semaine de 2011... Bref, bonne année à tous !
A voir sur le net
- Livres sur Oracle
Recherche de "oracle" de la Librairie Eyrolles.com
- Oracle Database - Wikipédia
Article Wikipedia.
Recherche de "oracle" de la Librairie Eyrolles.com
Article Wikipedia.










































Job-scheduling
Oracle
Sites connexes
Livres sur Oracle
Licence
Partenariat
Rechercher
Recherche globale
Annonces
Mots clés