COURS 1 - NOTIONS DE BASE



Introduction


Ce cours est la suite du cours ORD14736 Développement d'applications que vous devez avoir réussi à l'étape précédente. Vous allez maintenant continuer à appliquer les notions de développement de systèmes de bases de données comme dans le cours précédent mais, vous utiliserez des outils plus puissants et vous apprendrez à penser en termes de déploiement à grande envergure des systèmes créés.

Avec MS ACCESS lors du dernier cours, nous avons étudié les techniques de modélisation et de création d'une base de données relationnelle en mode autonome (utilisée par une personne à la fois sur un PC). Cependant, dans la vraie vie les besoins sont beaucoup plus complexes que ça. Dans ce cours nous allons commencer à explorer (notez le mot commencer) les applications complexes. Nous allons étudier et appliquer les concepts tels que: l'architecture client-serveur, le développement "object-oriented", le développement multi-platformes et l'interopérabilité. Et nous allons apprendre le langage SQL, le langage commun à toutes les bases de données relationnelles.




Historique


Au début des temps, lorsqu'on a commencé à enregistrer des données pour les ordinateurs, on utilisait des bandes magnétiques, "mag tape", et tout l'accès était séquentiel, comme sur une bande vidéo.

Au début des années 60 on a inventé les disques magnétiques avec la possibilité de faire de l'accès direct. Avec l'accès direct il a fallu inventer une méthode de structurer les données afin de pouvoir les retrouver. C'est de là que vient le concept d'une base de données, "database".

Base de données: collection d'informations structurée selon des règles strictes.

Système de gestion de base de données - "Database management system": ensemble de programmes et de procédures qui permettent de stocker des données dans une base de données, de les manipuler (ajouter, changer, enlever), de les protéger et surtout, de les retrouver facilement.


Les premières bases ont été créées par des programmeurs COBOL. Elles suivaient donc le modèle de données COBOL, c'est à dire une structure hiérarchique. Il existe encore dans l'industrie certaines de ces bases de données sur le modèle hiérachique. Elles utilisent habituellement le logiciel IMS d'IBM.

Par la suite, en voyant que le modèle hiérarchique avait plusieurs faiblesses on a inventé un nouveau modèls qu'on a appellé le modèle réseau. Remarquez que ça n'a rien à faire avec les réseaux Novell ou Windows - ça réfère seulement à la façon dont les données dans la base sont rattachées. Le logiciel de bd réseau le plus connu était IDMS.

Au début des années 70 Dr. E.F. Codd, qui travaillait chez IBM, a développé un nouveau modèle qu'il a appellé le modèle relationnel. C'est le modèle qui est de loin le plus répandu aujourd'hui et c'est celui que nous allons étudier. Cependant, le modèle exigeait beaucoup d'espace disque et de vitesse de traitement. Il a fallu attendre les améliorations du hardware dans les années 80 pour que le modèle devienne populaire. C'est la compagnie ORACLE qui a été une des figure dominante dans le marketing du modèle relationnel.



Concepts fondamentaux





















Le client
Le client est un programme qui envoie un message à un autre programme, le serveur, lui demandant d'exécuter une tâche quelconque, le service. C'est le client qui gère l'interface avec l'utilisateur, valide les données, gère la communication avec le serveur et exécute certaines opérations logiques. Le client est aussi responsable de la gestion des ressources locales: moniteur, clavier et périphériques. Lorsqu'on parle du client on utilise aussi le terme front-end car c'est la partie du système qui est à l'avant, c'est à dire la plus visible à l'utilisateur. Le client fonctionne toujours en mode graphique, GUI, et communique avec l'utilisateur au moyen de fenêtres.

Le serveur
Le serveur reçoit les demandes des clients, exécute les opérations d'extraction et de mise à jour de la base de données, assure l'intégrité des données et retourne les réponses aux clients. Le serveur peut aussi être appellé à exécuter des opérations logique qui peuvent aller du simple au complexe, basées sur les règles d'affaires de l'entreprise. Le serveur pourrait être une autre machine sur le réseau, il pourrait servir aussi de serveur de fichiers sur le réseau. Le serveur est le back-end qui gère les ressources partagées et les tâches communes à différentes applications.


Vous pouvez consulter une autre description de l'architecture client/serveur au site suivant: Client/Server Architecture. Même si le matériel semble un peu complexe pour l'instant, ça vous donne une idée des composantes qu'on doit maîtriser: le client, le serveur et le réseau.


  • PROGRAMMATION ORIENTÉE OBJET (POO)
    En programmation on a toujours séparé les programmes et les données. La POO regroupe les deux dans des unités réutilisables qu'on appele classes. Une classe contient des procédures (methods) et des données (attributes ou properties). On crée une instance d'une classe comme on déclarerait une variable. L'instance d'une classe est un objet. Puisqu'un objet est facile à dupliquer, il est toujours réutilisable. Aussi, il est facile, à partir d'une classe, de créer des classes similaires qui vont hériter des caractéristiques de la première mais leur ajouter des fonctions ou des données (inheritance).
    Vous trouverez une très bonne introduction au sujet dans Object-oriented Software.


  • GUI
    De nos jours, presque toutes les applications PC sont à base de GUI (Graphical User Interface)). Le GUI permet à l'utilisateur de manipuler des icônes dans un environnement graphique à base de fenêtres (Windows) et offre ne productivité beaucoup plus grande que ce qu'on peut obtenir dans un environnement à base de caractères, ie DOS.


  • "EVENT-DRIVEN"
    Dans l'environnement traditionnel, le programme est lancé et les instructions s'exécutent en ordre jusqu'à ce qu'il n'y aie plus de données. Mais, dans l'environnement Windows, l'utilisateur contrôle l'exécution. Il doit faire un clic sur un bouton ou choisir une option dans un menu, etc. Le programmeur doit écrire le code en fonction de ces actions (events). Par exemple, "Si l'utilisateur clic sur le bouton, ouvrir formulaire X ......". C'est la responsabilité du programmeur de voir à ce les options soient activées ou désactivées au bon moment afin que les traitements s'exécutent dans l'ordre approprié. En Visual Basic, tout le codage est fait dans un environnement event-driven.


  • SYSTÈMES OUVERTS
    Le terme réfère à des systèmes qui ont la capacité de grandir et aussi de se rattacher à des systèmes d'autres fournisseurs. Autrefois, chaque programme était écrit spécifiquement pour une marque d'ordinateur et un logiciel et le partage des données entre applications était totalement impossible. Aujourd'hui, la plupart des logiciels peuvent partager des données et même s'intégrer complètement avec des logiciels de plusieurs fournisseurs indépendents. VB, par exemple, peut intégrer facilement une application client en VB avec la plupart des "back-end" populaires de bases de données.







    Haut de la page