[BASE DE DONNEES MULTIMEDIA]

Dimension: px
Commencer à balayer dès la page:

Download "[BASE DE DONNEES MULTIMEDIA]"

Transcription

1 2011 RAPPORT DE BASE DE DONNEES MULTIMEDIA M me Nadine Cullot David MARTINS Sylvain LAMBERTVELLER [BASE DE DONNEES MULTIMEDIA] Ce document constitue notre rapport pour l unité d enseignement «BDM». Il synthétise tout le travail effectué lors de notre projet. Aussi bien au niveau technique qu analytique.

2 Table des matières I - Introduction... 2 Spécificité des bases de données multimédia Répartition des taches... 2 II - Partie analytique... 3 Caractéristiques générales de l application Notre base de données Notre schéma navigationnel Les différents types... 5 Notre base de données finale... 7 III Partie conception de l application... 7 Gestion de l affichage des différents modules... 8 Partie Administration... 9 Administration des genres... 9 Administration des photos Partie Utilisateur Recherche de film Recherche textuelle de photos Recherche d acteur et de genre Comparaison de deux images Similarité d image Intermedia Text Thesaurus IV Conclusion Améliorations Et si on recommençait? Conclusion générale ANNEXES ANNEXE A RAPPORT DE BASE DE DONNEES MULTIMEDIA I - Introduction 1

3 I - Introduction Ce document constitue notre rapport pour l unité d enseignement «Base de données multimédia». Celui-ci décrira, de façon précise, quelles ont été les demandes spécifiques de ce projet, comment nous sommes nous organisés, comment notre travail s est déroulé et enfin, quels ont été les problèmes rencontrés. A titre informatif, nous avons développé notre application sous Windows XP à l aide de l IDE (Environnement de développement intégré) NetBeans. Nous travaillons avec une base de données Oracle 10g Le but de ce projet était de concevoir une application en JAVA qui allait nous permettre de manipuler notre base de données multimédia, celle-ci devait permettre de rechercher des images dans notre base. Quant au choix de la base de données, celui-ci nous appartenait totalement. Spécificité des bases de données multimédia. Les bases de données relationnelles sur lesquelles nous avons pu travailler jusqu à présent nous permettait de stocker uniquement des chaînes de caractères. Au vue de l évolution des technologies (Capacité de stockage, bande passante, puissance des machines, Sites internet de plus en plus complets,...) le besoin de pouvoir stocker, organiser et manipuler des données multimédia (données sonores, vidéos, images,...) ne cessait de croitre, c est ainsi que les bases de données multimédia sont nées. Les bases de données multimédia s appuient le plus souvent sur des architectures de base de données existantes. Les plus utilisées étant le modèle objet et le modèle relationnel. Répartition des tâches Etant donné que nous étions deux à travailler sur ce projet, il a fallu déterminer exactement le rôle de chacun. Concernant l élaboration de la base de données, nous avons décidé de la concevoir ensemble pour qu on puisse chacun s exprimer sur le sujet. La conception de la base de données comprenait la création du diagramme de classe, création du schéma navigationnel, création des types, création de la base de données puis enfin création des classes JAVA. Concernant la partie programmation, nous avons décidé de repartir les taches de la façon suivant : David s occuperait de la partie administration, et Sylvain de la partie utilisateur. Bien évidemment, si l un d entre nous finissait sa partie avant l autre, celui-ci aurait aidé son camarade. RAPPORT DE BASE DE DONNEES MULTIMEDIA I - Introduction 2

4 II - Partie analytique Caractéristiques générales de l application. Notre application devait répondre à des critères assez précis. Elle devait être développée à l aide du langage de programmation JAVA et devait implémenter les fonctionnalités suivantes : - Gérer les informations descriptives et contextuelles d images dans notre base de données. - Avoir des méta-données sur les images disponibles (taille de l image, format,...) - Informations sur le contenu de notre image (par exemple, notre image représente une voiture,...) - Concevoir toute une partie administration qui permet l ajout, l édition et la suppression de contenu dans notre base. - Une partie dédiée à l utilisateur qui lui donnera le moyen d interroger notre base via différents critères (format de l image, comparaison via une image modèles tout en ayant la possibilité de pondérer les critères de comparaison (couleur, forme,...), contenu de l image,...) Gestion des objets multimédia : Gestion des objets multimédia Comparaison d'image Recherche textuelle ORDImage ORDAudio ORDVideo ORDImageSignature Module Intermédia Text Thesaurus de termes Notre base de données. Dans note cas, nous avons choisi de réaliser une base de données assez simple pour ne pas s encombrer avec tout un tas de relations. En effet le but du projet était de manipuler des objets multimédia, non pas de réaliser une base de données complexe. Nous avons quand même réussi à faire une base assez cohérente. Voici le diagramme UML de notre base de données, il comportera 4 classes : RAPPORT DE BASE DE DONNEES MULTIMEDIA II - Partie analytique 3

5 La plupart des méthodes étant assez explicites, nous n allons pas les décrire, cependant, quelquesunes peuvent paraitre un peu ambiguës. - getwithrestriction : retourne un ensemble d objet répondant à des critères passés en paramètres de la méthode - compareimages : Compare deux images, retourne un tableau de chaîne de caractère qui représente l évaluation du score. - intermediatext : retourne un ensemble d objet photo répondant aux critères de recherche. - listethesaurus : retourne un ensemble de photo en fonction de critères définis préalablement. - chargement : charge l image dans la base de données. - similaritéphoto : retourne un ensemble de photos qui sont similaire à une image modèle. On constate que la grande majorité de ces méthodes sont uniquement présentes dans la classe Photo. Cela s explique tout simplement par le fait que c est dans cette classe que nous allons gérer nos objets multimédia. Nous avons implémenté toutes ces classes en JAVA. Notre schéma navigationnel. RAPPORT DE BASE DE DONNEES MULTIMEDIA II - Partie analytique 4

6 Lors de la réalisation d un schéma navigationnel, le nombre de possibilité pour réaliser celuici est assez important. Il n y a pas de solution unique (Comme pour un diagramme de classe d ailleurs) et il faut adapter la solution retenue en fonction de nos besoins. Dans notre cas, nous avons mis en œuvre tous ce que nous avons vus en cours (tables imbriquées, pointeurs,...). Voici la solution retenue : Les différents types RAPPORT DE BASE DE DONNEES MULTIMEDIA II - Partie analytique 5

7 Suite à l élaboration de notre schéma navigationnel, nous avons créé les types suivants. Nous listerons uniquement les différents types crées, mais si vous souhaitez consulter le code complet des types, nous vous invitons à aller consulter notre annexe «ANNEXE A» Types représentant des collections (collections de références) photos_type films_type Types destinés a la création des tables genre_type film_type acteur_type photo_type filmacteur_type (pour la relation entre film et acteur) types références (pour les collections) photo_ref_type film_ref_type Nous avons également implémenté des méthodes dans les types crées. Les types concernés sont genre_type et acteur_type. Nous allons prendre l exemple de genre_type. Ce type contient les méthodes : - updategenre(nomg IN VARCHAR2) ; Pour mettre à jour le nom du genre - suppgenre() ; Supprimer le genre de la BD En revanche, pour pouvoir appeler ces méthodes, nous devons passer par des procédures PLSQL. Avant de passer à autre chose, intéressons-nous au type photo_type. C est dans ce type que nous avons nos objets multimédias. Voici sa description : photo_type numphoto : integer nom : varchar2(100) taille : integer format : varchar2(10) description : varchar2(200) mots_cles : varchar2(200) signature : ORDSYS.ORDSignature image : ORDSYS.ORDImage acteurp ref acteur_type filmp ref film_type Focalisons notre attention sur les attributs signature et image. Si vous n avez fait que de la base de données relationnelle ou objet, vous n avez jamais dû voir ce type d attribut. Effectivement, ces types ne sont utilisés que dans les bases de données multimédia. Un attribut ORDSignature va nous servir principalement pour la comparaison d images. La signature d une image peut être assimilée à l ADN humain. La signature contient toutes les RAPPORT DE BASE DE DONNEES MULTIMEDIA II - Partie analytique 6

8 informations propre à l image comme sa forme, sa texture, sa couleur,... selon chaque zone de l image. Un attribut ORDImage est ce qui contient l image. Cela sert à stocker notre image dans la base de données. Notre base de données finale Apres la création des types, des méthodes et des procédures PLSQL, nous avons pu finalement créer notre base de données. Voici la liste des tables présentes : III Partie conception de l application RAPPORT DE BASE DE DONNEES MULTIMEDIA III Partie conception de l application 7

9 Gestion de l affichage des différents modules Etant donné que notre application comporte plusieurs modules, nous ne pouvions pas afficher tous ces modules dans une seule fenêtre. Pour la gestion des fenêtres (composants graphique sous forme de JPanel) nous avons utilisé un CardLayout. Un CardLayout permet d avoir un ensemble de composant graphique tel que l un d entre eux soit seulement visible à un moment donné. A l initialisation de l application, nous créons notre CardLayout vide. Nous créons ensuite nos composants graphiques, à savoir nos JPanel. Une fois ceux-là créés nous les ajoutons à notre CardLayout. Pour afficher une composant graphique, nous utilisons la méthode show(component) ; Pour le switch entre les différents Jpanel cards = new JPanel(); cards.setlayout(new CardLayout()); cards.add(mainpanel,"mainpanel"); mainpanel cards.add(new Jpnl_GenreAdmin(),"AdminGenrePanel"); cards.add(new Jpnl_FilmAdmin(),"AdminFilmPanel"); cards.add(new Jpnl_FilmacteurAdmin(),"AdminFilmacteurPanel"); cards.add(new Jpnl_Acteur_Admin(),"AdminActeurPanel"); cards.add(new Jpnl_PhotoAdmin(),"AdminPhotoPanel"); cards.add(new Crechercheacteur(),"RechercheacteurPanel"); cards.add(new Crecherchefilm(),"RecherchefilmPanel"); cards.add(new Jpnl_Comparaison_photo(),"ComparaisonphotoPanel"); cards.add(new Jpnl_similarité_photo(),"SimilaritePhotoPanel"); cards.add(new Jpnl_intermediaText(),"intermediaTextPanel"); cards.add(new Crecherchephoto(),"RecherchephotoPanel"); cards.add(new Jpnl_Thesaurus(),"ThesaurusPanel"); this.getframe().add(cards, BorderLayout.CENTER); Pour changer de fenêtre, nous avons à notre disposition un menu qui nous propose les différents modules accessibles. A chaque clique sur un item du menu, nous appellerons donc notre méthode show. Voici le code lors du clique sur le menu Administration > Film private void jmenuitemfilmactionperformed(java.awt.event.actionevent evt) { Jpnl_FilmAdmin j = ((Jpnl_FilmAdmin)cards.getComponent(2)); j.updatepanel(); ((CardLayout)cards.getLayout()).show(this.cards,"AdminFilmPanel"); A ce stade de l application, nous avons un système de Switch entre nos différents JPanel. Notons que c est grâce à ce système que nous avons pu travailler chacun de notre coté sans nous marcher sur les pieds. RAPPORT DE BASE DE DONNEES MULTIMEDIA III Partie conception de l application 8

10 Partie Administration La partie administration allait nous permettre de gérer notre base de données. Nous pouvons donc opérer sur celle ci en ajoutant, modifiant ou supprimant des t-uples. La partie administration se voit doté de 4 modules : - Administration des genres - Administration des Films - Administration des Acteurs - Administration des Photos Pour ne pas polluer ce rapport avec des pages inutiles, nous traiterons uniquement le module d administration de photo et de genre. Pourquoi? Et bien parce que les modules pour le genre, films et acteurs étant très étroitement similaires, l intérêt d expliquer le détail de chacun est très limité. En revanche, le module photo est peut-être celui le plus intéressant dans la mesure où c est dans ce module que nous allons enregistrer une photo dans la base de données. Administration des genres Le module d administration des genres comporte un tableau (JTable) qui contient la liste des genres enregistrés dans notre base de données. A tout instant, l utilisateur peut cliquer sur l une des lignes de ce tableau, soit pour modifier son contenu, soit pour afficher ses informations ou encore pour supprimer celui-ci. De plus, le JPanel d administration des genres comporte des champs textes permettant l ajout et la modification de genre (Pour la modification, il faut tout d abord sélectionner un genre dans le tableau). Initialisation du JPanel Lorsque que l utilisateur souhaite afficher ce JPanel (qui fait donc partie du CardLayout), celui ci va initialiser ses différents attributs. Cela consiste à : - Mettre le tableau à vide. - Mettre tous les champs textes à vide Pour l initialisation du tableau, c est lors du clique sur l item du menu que celui ci sera mis a jour. public Jpnl_GenreAdmin() Voila le code permettant { de réaliser ces actions : initcomponents(); JPanel_ajoutModif.setBorder(BorderFactory.createTitledBorder("Modification")); jpanelajoutgenre.setborder(borderfactory.createtitledborder("ajouter")); entetetblgenre = new String[2]; entetetblgenre[0] = "Numéro"; entetetblgenre[1] = "Nom"; listeg RAPPORT = null; DE BASE DE DONNEES MULTIMEDIA III Partie conception de l application 9 lbl_info.settext("");

11 Et la méthode qui permet de mettre à jour notre tableau public void updatepanel(){ Récupération de tous les genres try{ listeg = Cgenre.getAll(); catch(sqlexception e){ System.out.print(e.getMessage()); return; On vide le tableau dtm_listegenre = new DefaultTableModel(null,enteteTblGenre); tbladmin_genre.setmodel(dtm_listegenre); for(cgenre g: listeg){ String[] values = new String[2]; values[0] = ""+g.numero; values[1] = g.nom; dtm_listegenre.addrow(values); btn_modifgenre.setenabled(false); btn_suppression.setenabled(false); lbl_numgenre.settext("- - -"); txt_nomgenre.settext(""); Ajout d un genre Pour ajouter un genre dans notre BDD, nous procédons de la manière suivante : - Récupération des informations saisies par l utilisateur - Instanciation d un nouvel objet Genre (Classe JAVA qui permet d interagir avec notre private void BDD) btn_ajoutergenreactionperformed(java.awt.event.actionevent evt) { if(txt_ajoutg.gettext().equals("")){ - Appel de la méthode enregistrer(). lbl_info.settext("veuillez renseigner le nom du genre"); else{- Mise à jour du tableau en ajoutant l objet enregistrer directement a la fin. Cgenre g = new Cgenre(0,txt_ajoutG.getText()); try{ enregistrement de notre Genre g.enregistrer(); mise a jour du tableau String[] values = new String[2]; values[0] = ""+g.numero; values[1] = g.nom; RAPPORT DE BASE DE DONNEES MULTIMEDIA III Partie conception de l application 10 dtm_listegenre.addrow(values); txt_ajoutg.settext(""); lbl_info.settext("ajout confirmé");

12 Intéressons nous maintenant au code de la méthode enregistrer() de notre classe JAVA Genre. Cette méthode va manipuler la base de données via un objet Connection. Pour préparer la requête à l envoi, on instancie un objet PreparedStatement. Pour l envoyer, nous utiliserons la méthode executeupdate(). Cette dernière méthode renvoie un booléen qui retourne true si tout s est bien passé. La requete envoyée est une banale requete INSERT INTO permet d'enregistrer un genre public boolean enregistrer() throws SQLException{ boolean resultat = false; Connection cnx = BDM_projetView.connect; this.numero = this.getnewid(); String newgenre="insert into genre values("+this.numero+",'"+nom+"',films_type())"; PreparedStatement st = cnx.preparestatement(newgenre); if(st.executeupdate()!= 1){ resultat=false; else{ resultat=true; System.out.println("ajout du film confirmée"); return resultat; Modification d un genre La procédure est un peu différente, car il faut que l utilisateur choisisse le genre à modifier dans le tableau. Une fois cliqué sur une ligne du tableau, on met à jour les champs texte, l utilisateur pourra dès lors modifier les champs texte et cliquer sur modifier quand il le souhaite. Instanciation de l objet lors du clique sur une ligne du tableau : private void tbladmin_genremouseclicked(java.awt.event.mouseevent evt) { on active la modification et la suppression btn_modifgenre.setenabled(true); btn_suppression.setenabled(true); RAPPORT DE BASE DE DONNEES MULTIMEDIA III Partie conception de l application 11 lbl_info.settext(""); int index = tbladmin_genre.getselectedrow();

13 Il ne nous reste plus qu a modifier l enregistrement dans la base de données. Tout cela se fait via le clique du bouton modifier. private void btn_modifgenreactionperformed(java.awt.event.actionevent evt) { int selection=tbladmin_genre.getselectedrow(); int numero=integer.parseint(tbladmin_genre.getvalueat(selection, 0).toString()); if(txt_nomgenre.gettext().equals("")){ lbl_info.settext("veuillez renseigner le nom du genre"); else{ Cgenre gmodf = new Cgenre(numero,txt_nomGenre.getText()); try{ gmodf.modifier(); updatepanel(); lbl_info.settext("modification confirmée"); catch(exception e){ e.printstacktrace(); lbl_info.settext("erreur lors de la modification"); Nous pouvons voir que nous utilisons une méthode modifier de la classe Genre. Voici sa définition : utilisation de la procedure pour modifier le genre public boolean modifier() throws SQLException{ boolean resultat = false; Connection cnx = BDM_projetView.connect; CallableStatement cstmt = cnx.preparecall("{call majgenre(?,?)"); cstmt.setint(1, this.numero); cstmt.setstring(2, this.nom); cstmt.execute(); System.out.println("modification faite"); return resultat; Si nous regardons de plus près cette méthode, nous remarquons cette ligne : CallableStatement cstmt = cnx.preparecall("{call majgenre(?,?)"); RAPPORT DE BASE DE DONNEES MULTIMEDIA III Partie conception de l application 12

14 En fait, cette méthode JAVA va appeler une procédure PLSQL. Cette méthode PLSQL va à son tour appeler une méthode déclarée dans notre type SQL : genre_type. Voici la procédure PLSQL : create or replace procedure majgenre(nom in varchar2) is genr genre_type; begin select value(g) into genr from genre g where g.numgenre=self.num; genr.updategenre(nom); END; Et le corps de la méthode updategenre : CREATE OR REPLACE TYPE BODY genre_type AS INSTANTIABLE FINAL MEMBER PROCEDURE updategenre(nomg in varchar2) IS begin update genre set nom=nomg where numgenre=self.numgenre; end updategenre; Suppression d un genre La suppression d un genre est strictement identique à la modification. Il doit choisir le genre à supprimer et cliquer sur le bouton supprimer. Voila pourquoi nous ne copierons pas le code. En revanche, nous mettrons tout ce code en ANNEXE B. (Code de la classe JAVA) Pour finir, voici à quoi ressemble notre interface : Administration des photos RAPPORT DE BASE DE DONNEES MULTIMEDIA III Partie conception de l application 13

15 L administration des photos est un peu particulier car c est à partir d ici que nous allons enregistrer notre image dans la base de données. Nous nous intéresserons uniquement l enregistrement de photo et à sa suppression. Enregistrement d une photo Dans un premier temps, nous décrirons la démarche à suivre : - Remplissage des différents champs (format de la photo, description, mots clés,...) - Possibilité de lier la photo à un acteur etou un film - Choisir la photo à ajouter (depuis notre machine) - Ajout de la photo (attributs + image) dans la base de données Techniquement, cela se passe de cette façon : Instancie un objet de type Photo en initialisant les différents attributs à partir des informations saisies Insertions des données textuelles dans notre base de données Insertion dans les tables imbriquées si nécessaire. (table FILM etou ACTEUR) Rafraichissement du tableau contenant la liste des images dans notre base de données. chargement de l'image choisie dans la base de données via un objet de type ORDImage et la méthode setoradata On dissocie l enregistrement des données textuelles de l enregistrement de la photo proprement dite. Pour l enregistrement des données textuelles, nous utiliserons la méthode enregistrer de l objet Photo. Pour l enregistrement de la photo dans la base de données, nous utiliserons la méthode chargement. L enregistrement des données textuelles est tout ce qu il y a de plus basique, nous utilisons permet une d'enregistrer requête INSERT INTO. une photo En revanche, nous devons vérifier si la photo est liée à un acteur ou à un public film boolean car si c est enregistrer() le cas, nous devons throws insérer SQLException{ la photo dans la table imbriquée de la table boolean resultat = false; correspondante. Connection cnx = BDM_projetView.connect; this.numero = this.getnewid(); String newphoto; insertion dans la table photo if (this.film==0 && this.acteur==0){ newphoto="insert into photo(numphoto,nom,taille,format,description,mot_cles,image,signature) values("+this.numero+",'"+nom+"',"+this.taille+",'"+this.format+"','"+this.description+"', '"+this.motscles+"',ordsys.ordimage.init(),ordsys.ordimagesignature.init())"; else{ RAPPORT DE BASE DE DONNEES MULTIMEDIA III Partie conception de l application 14 if (this.film==0 && this.acteur>0){ newphoto="insert into photo(numphoto,nom,taille,format,description,mot_cles,acteurp,image,signature)

16 PreparedStatement stp = cnx.preparestatement(newacteurphoto); if(stp.executeupdate()!= 1){ resultat=false; else{ resultat=true; System.out.println("ajout de la la photo à l'acteur confirmée"); stp.close(); reconstruction de l'index de mot clés qui sert pour intermedia text String RAPPORT index DE BASE ="ALTER DE DONNEES index motcles_index MULTIMEDIA III rebuild";mise Partie conception de à l application jour de l'index 15 de texte "mot_index" PreparedStatement stp = cnx.preparestatement(index);

17 A ce stade, nous avons établi le lien entre la photo et les autres tables (FILM et ACTEUR), en revanche, l objet multimédia ORDSYS.ORDImage est encore vide. Nous allons donc voir la méthode qui permet l ajout de l image. methode du chargement d'un fichier de la photo dans l'ordimage public void chargement(string nomfichier, int idphoto) throws IOException{ charge l'image quie est dans nomfichier, dans la photo d'ienditifiant idphoto generation des paquets et de la signature de l'image connexion a la base byte[] ctx[] = new byte[4000][1];pour la generation de la signature OrdImage imgobj; OrdImageSignature sig; try{ recuperation des attributs image et imagesig pour la photo idphoto Connection conn=bdm_projetview.connect; conn.setautocommit(false); Statement stmt = conn.createstatement(); String req = "SELECT image,signature FROM photo WHERE numphoto="+idphoto+" FOR UPDATE"; OracleResultSet rs = (OracleResultSet) stmt.executequery(req); while(rs.next()){ imgobj = (OrdImage) rs.getoradata(1, OrdImage.getORADataFactory()) ; sig = (OrdImageSignature) rs.getoradata(2, generation des propriétés (meta données de l'objet java) OrdImageSignature.getORADataFactory() ); imgobj.setproperties(); this.image=imgobj; generation de la signature de l'image chargement du fichier dans l'ordimage (java) sig.generatesignature(imgobj); Envoi de l'image dans l'attribut localdata du type ORDImage mise a jour de la base avec les objets java imgobj.loaddatafromfile(nomfichier); image generation des propriétés (meta données de l'objet java) imgobj.setproperties(); String req2 = "UPDATE photo SET image =? WHERE numphoto = "+idphoto; generation de la signature de l'image OraclePreparedStatement opst = (OraclePreparedStatement) sig.generatesignature(imgobj); conn.preparecall(req2); mise a jour de la base avec les objets java opst.setoradata(1, imgobj); image opst.execute(); signature String req2 "UPDATE photo SET image =? WHERE numphoto = "+idphoto; RAPPORT String DE req3 BASE = DE "UPDATE DONNEES photo MULTIMEDIA SET signature III Partie = conception? WHERE de numphoto l application = "+idphoto; 16 OraclePreparedStatement opst = (OraclePreparedStatement) OraclePreparedStatement opst2 = (OraclePreparedStatement) conn.preparecall(req2); conn.preparecall(req3); opst.setoradata(1, imgobj);

18 Avec cette méthode, nous avons maintenant notre image stockée dans notre base de données. Nous pourrons par la suite l utiliser pour la comparer à d autres images présentes dans notre base. Suppression d une photo Si nous n avions qu à supprimer la photo sans se soucier des relations, nous aurions pu utiliser une simple requête DELETE, en effet celle-ci s occupera de supprimer toutes les données textuelles mais l objet multimédia également. Cependant, n oublions pas que notre photo est présente dans la table photo, mais elle est susceptible d exister également dans les tables imbriquées d ACTEUR et FILM. Pour la suppression de la photo en elle même, nous utiliserons la requête suivante : String delphoto="delete FROM photo p where p.numphoto="+this.numero; Et pour la suppression dans les tables imbriquées, nous utiliserons une requête de type DELETE FROM THE String delacteurimbriquee="delete FROM the (select acteur.photoa from acteur a WHERE a.numacteur ="+this.acteur + ") p where DEREF(p.photoR).numphoto="+this.numero; Une fois nos requêtes construites, nous n avons plus qu a les exécuter via un objet PreparedStatement. Notons qu il faut d abord supprimer dans les tables imbriquées avant de supprimer dans la table photo. Voici l interface pour la gestion des photos : RAPPORT DE BASE DE DONNEES MULTIMEDIA III Partie conception de l application 17

19 Partie Utilisateur La partie utilisateur représente en réalité l exploitation de la base de données. Nous devons permettre à l utilisateur de retrouver des films, acteurs, ou photos en fonction de critères spécifiques, ou en comparant deux éléments de notre base de données (Deux images) Recherche de film La recherche de films est plutôt basique, l utilisateur a à sa disposition plusieurs moyens pour retrouver un film : - Par le numéro de film - Par son nom - Par sa durée Une fois la recherche lancée, le programme va afficher à l écran tous les films correspondant dans un tableau. Pour chaque film, il peut y avoir plusieurs photos associées. Nous avons donc mis une liste déroulante pour visualiser les différentes images associées à ce film. RAPPORT DE BASE DE DONNEES MULTIMEDIA III Partie conception de l application 18

20 Pour mettre à jour notre liste, nous utilisons la table imbriquée contenant la liste des photos. A chaque changement sur la liste déroulante, nous mettons à jour la photo affichée à l écran. De plus, nous avons des informations liées au film qui s affiche sur le JPanel. Le code n étant pas très excitant, nous allons uniquement afficher les requêtes utilisées pour la récupération des films. if (dur==0) maxid = "select f.numfilm,f.nom,f.duree,deref(f.genref).numgenre,f.photof from film f where numfilm like '%"+ numero+"%' and nom like '%"+ nom+"%'"; else maxid = "select f.numfilm,f.nom,f.duree,deref(f.genref).numgenre,f.photof from film f where numfilm like '%"+ numero+"%' and nom like '%"+ nom+"%' and duree like '%"+ dur+"%' "; Voici une capture d écran pour la recherche d un film : RAPPORT DE BASE DE DONNEES MULTIMEDIA III Partie conception de l application 19

21 Recherche textuelle de photos La recherche de photo, c est un peu le même principe qu au dessus, il n y a rien de très innovant et très intéressant dans le code proprement dit. Pour la rechercher, nous allons uniquement utiliser les informations textuelles de la photo pour proposer à l utilisateur des photos susceptible de correspondre à sa recherche. C est pourquoi nous n allons pas mettre de code, mais nous allons expliquer à partir de quel critère nous pouvons retrouver une photo : - Son numéro d identification, - Son nom, - Sa taille, - Son format (JPG, PNG, GIF,...) - Sa description, - Et enfin mots-clés. Cela n a donc rien de nouveau par rapport aux bases de données relationnelles, la requête retourne uniquement des lignes que nous affichons directement dans le tableau. Le seul aspect intéressant est comment on récupère la photo de notre base de données et comment l affiche t on à l écran. Dans le cas qui va suivre, la méthode va récupérer toute les photos et retourner un tableau de CPhoto permet d'obtenir toutes les photos public static Cphoto[] getall() throws SQLException{ int i=0; int nbphoto = Cphoto.getNbPhoto(); Cphoto[] listep = new Cphoto[nbPhoto]; OrdImage imgobj; String maxid = "Select numphoto,nom,taille,format,description,mot_cles, DEREF(acteurP).numacteur,DEREF(filmP).numfilm,image FROM photo ORDER BY numphoto"; PreparedStatement stmax = BDM_projetView.connect.prepareStatement(maxId); OracleResultSet rset = (OracleResultSet)stmax.executeQuery(); while(rset.next()){ imgobj = (OrdImage) rset.getoradata(9, OrdImage.getORADataFactory()) ; listep[i] = new Cphoto(rset.getInt(1), rset.getstring(2),rset.getint(3), rset.getstring(4),rset.getstring(5), rset.getstring(6),rset.getint(7),rset.getint(8),imgobj); i++; return listep; i++; return listep; RAPPORT DE BASE DE DONNEES MULTIMEDIA III Partie conception de l application 20

22 La ligne qui nous intéresse pour récupérer notre objet photo directement depuis notre base de données est celle-ci : imgobj = (OrdImage) rset.getoradata(9, OrdImage.getORADataFactory()) ; Le premier paramètre est le numéro de colonne ou se trouve notre objet ORDImage, et la méthode getoradatafactory() récupère la l image réelle. Enfin, pour afficher notre image dans un composant graphique JAVA, nous avons créé une méthode dans notre classe CPhoto ou nous passons en argument le composant à modifier : affiche une image avec en paramètre un objet de type photo public void afficher2(jlabel pan,string nomfichier) throws IOException{ try { affiche la photo dans le JPanel pan --> on recupère l'ordimage, on le met dans un fichier intermédiaire, et on l'affiche on recupère l'ordimage on ecrit dans le fichier intermediaire System.out.println(nomfichier); this.image.getdatainfile(nomfichier); System.out.println("entrer"); catch (SQLException ex) { Logger.getLogger(Cphoto.class.getName()).log(Level.SEVERE, null, ex); System.out.println("entrer2"); img attribut de la classe de type Image Icon flageu = new ImageIcon(nomfichier); ImageIcon icone = new ImageIcon(nomfichier); Image imag=icone.getimage(); System.out.println("entre2r"); Image imag2=imag.getscaledinstance(200,200,imag.scale_default); System.out.println("oki"); ImageIcon icone2 = new ImageIcon(imag2); System.out.println("oki"); pan.seticon(icone2); Recherche d acteur et de genre Ces modules sont très similaires à ce que nous avons vu précédemment (Film et photo). Il est inutile de revoir ce qui as déjà été vu. Comparaison de deux images La comparaison d images permet de savoir si deux images sont similaires. Pour mettre en œuvre cette technique, nous utiliserons deux méthodes déjà définies dans ORDImage et ORDImageSignature. RAPPORT DE BASE DE DONNEES MULTIMEDIA III Partie conception de l application 21

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX

Plus en détail

Programmation orientée objet en langage JAVA

Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Programmation orientée objet en langage JAVA Connexion à une base de données avec JDBC Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe

Plus en détail

Manuel utilisateur. Développement d'un logiciel de recherche d'images. LAMBERT VELLER Sylvain MARTINS David

Manuel utilisateur. Développement d'un logiciel de recherche d'images. LAMBERT VELLER Sylvain MARTINS David Manuel utilisateur Développement d'un logiciel de recherche d'images LAMBERT VELLER Sylvain MARTINS David M1 STIC Université de Bourgogne 2010-2011 Table des matières 1 Introduction 1 I Administration

Plus en détail

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005

RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Oussama ELKACHOINDI Wajdi MEHENNI RAPPORT DU PREMIER MINI PROJET «FORUM DE CHAT» Novembre 2005 Sommaire I. Préliminaire : Notice d exécution et mode opératoire...4 II. Architecture globale de l application...5

Plus en détail

Module Com231A - Web et Bases de Données Notion 3 : SQL

Module Com231A - Web et Bases de Données Notion 3 : SQL Module Com231A - Web et Bases de Données Notion 3 : SQL Qu est ce qu une base de données? Introduction Une base de données est un ensemble d au moins un tableau contenant des données. Exemple : une base

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

Formulaires. Fiches de savoir associées. C.0.a., C.0.b., C.0.c., C.2.1.a., C.2.1.b. et C.2.3.a.

Formulaires. Fiches de savoir associées. C.0.a., C.0.b., C.0.c., C.2.1.a., C.2.1.b. et C.2.3.a. Activité 10 Formulaires Objectif Travailler sur des formulaires : observer le code et modifier l interface (IHM) de l application. Ressource à utiliser Base de données Formation appformation.mdb Fiches

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 6 : JDBC : ou comment lier ORACLE avec Java 1ère partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Introduction 2 les étapes de la connexion

Plus en détail

JDBC et objet-relationnel

JDBC et objet-relationnel Types de données de SQL3 JDBC et objet-relationnel Université de Nice - Sophia Antipolis Version 1.6.4 5/11/11 Richard Grin JDBC supporte les types suivants de SQL3 qui sont des ouvertures vers le relationnelobjet

Plus en détail

3. Initialiser m2 et m3 à l aide de ce constructeur, puis afficher le contenu de la table Meuble à l aide d une requête SQL.

3. Initialiser m2 et m3 à l aide de ce constructeur, puis afficher le contenu de la table Meuble à l aide d une requête SQL. Base de données Département Informatique et Statistique, Faculté de SEG, Université Lumière Lyon 2 M2 Informatique spécialité IDS-IIDEE Année 2011-2012 Bases de données objets TD n 4 J. Darmont (http:eric.univ-lyon2.fr~jdarmont),

Plus en détail

Compte rendu d activité Fiche n 1

Compte rendu d activité Fiche n 1 Compte rendu d activité Fiche n 1 Alexandre K. (http://ploufix.free.fr) Nature de l activité Création d une base de connaissances avec PostgreSQL Contexte : Le responsable technique souhaite la mise en

Plus en détail

Projet MVC-CD. Comportement de VP lors du déploiement itératif et incrémental du MPD vers la base de données cible

Projet MVC-CD. Comportement de VP lors du déploiement itératif et incrémental du MPD vers la base de données cible Projet MVC-CD Comportement de VP lors du déploiement itératif et incrémental du MPD vers la base de données cible Créé par S. Berberat, le 23 octobre.2014 Modifié par S. Berberat, le 29 octobre 2014 Page

Plus en détail

Base de donnée relationnelle. Exemple de table: Film. Exemple de table: Acteur. Exemple de table: Role. Contenu de la table Role

Base de donnée relationnelle. Exemple de table: Film. Exemple de table: Acteur. Exemple de table: Role. Contenu de la table Role IFT7 Programmation Serveur Web avec PHP Introduction à MySQL Base de donnée relationnelle Une base de données relationnelle est composée de plusieurs tables possédant des relations logiques (théorie des

Plus en détail

Interface Java Oracle : JDBC

Interface Java Oracle : JDBC Interface Java Oracle : JDBC Christine Bonnet Sommaire Démarche globale JDBC --- 6 Accès s en consultation --- 9 Accès s en modification --- 13 Ordres dynamiques --- 19 Procédures stockées --- 24 I-2 Christine

Plus en détail

OI40: bases de données, TP 2

OI40: bases de données, TP 2 OI40: bases de données, TP 2 Frédéric Lassabe October 26, 2010 Ce TP requiert d avoir bien compris le TP précédent. 1 Sujet Lors de ce TP, il sera question d améliorer la base de données du TP précédent.

Plus en détail

FONCTIONS DE TRAITEMENT} COUNT

FONCTIONS DE TRAITEMENT} COUNT Nom Prénom Promotion Date Buhl Damien Année 1 Groupe 2 21 Janvier 2007 CER Prosit n 22 Mots-Clés : - Requête/Langage SQL Le langage SQL (Structured Query Language) est un langage de requêtes, il permet

Plus en détail

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1

Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Chap. 5 : Langage SQL (Structured Query Language) Pr. : Mohamed BASLAM Contact : baslam.med@gmail.com Niveau : S4 BCG Année : 2014/2015 1 Plan Généralités Langage de Définition des (LDD) Langage de Manipulation

Plus en détail

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application

Plus en détail

Compte-rendu de projet de Système de gestion de base de données

Compte-rendu de projet de Système de gestion de base de données Compte-rendu de projet de Système de gestion de base de données Création et utilisation d'un index de jointure LAMBERT VELLER Sylvain M1 STIC Université de Bourgogne 2010-2011 Reponsable : Mr Thierry Grison

Plus en détail

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale

BD50. TP5 : Développement PL/SQL Avec Oracle SQL Developer. Gestion Commerciale Département Génie Informatique BD50 TP5 : Développement PL/SQL Avec Oracle SQL Developer Gestion Commerciale Françoise HOUBERDON & Christian FISCHER Copyright Avril 2007 Présentation de la gestion commerciale

Plus en détail

1. Base de données SQLite

1. Base de données SQLite Dans ce TP, nous allons voir comment créer et utiliser une base de données SQL locale pour stocker les informations. La semaine prochaine, ça sera avec un WebService. On repart de l application AvosAvis

Plus en détail

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

Plus en détail

Création d un catalogue en ligne

Création d un catalogue en ligne 5 Création d un catalogue en ligne Au sommaire de ce chapitre Fonctionnement théorique Définition de jeux d enregistrements Insertion de contenu dynamique Aperçu des données Finalisation de la page de

Plus en détail

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web PHP & Bases de données La quantité de données utilisée par certains sites web nécessite l'utilisation d'une base de données Il faut donc disposer d'un SGBD (mysql, postgresql, oracle, ) installé sur un

Plus en détail

Projet de Base de données

Projet de Base de données Julien VILLETORTE Licence Informatique Projet de Base de données Année 2007-2008 Professeur : Marinette Savonnet Sommaire I) Introduction II) III) IV) Diagrammes a. Diagramme Use Case b. Diagramme de classes

Plus en détail

RAPPORT DE CONCEPTION UML :

RAPPORT DE CONCEPTION UML : Carlo Abi Chahine Sylvain Archenault Yves Houpert Martine Wang RAPPORT DE CONCEPTION UML : Bamboo Ch@t Projet GM4 Juin 2006 Table des matières 1 Introduction 2 2 Présentation du logiciel 3 2.1 Précisions

Plus en détail

Programmation avec un L3G Interaction d une application utilisant les méthodes

Programmation avec un L3G Interaction d une application utilisant les méthodes Programmation avec un L3G Interaction d une application utilisant les méthodes André Gamache, professeur associé Département d'informatique et de génie logiciel Faculté des sciences et de génie Université

Plus en détail

Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr)

Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr) Grenoble 1 IMA Informatique & Mathématiques Appliquées UNIVERSITE JOSEPH FOURIER Sciences, Technologie, Médecine Licence Professionnelle Développeur Web Programmation Orientée Objets Gestion de comptes

Plus en détail

JXDVDTek - UNE DVDTHEQUE EN JAVA ET XML

JXDVDTek - UNE DVDTHEQUE EN JAVA ET XML BALLOTE Nadia FRIULI Valerio GILARDI Mathieu IUT de Nice Licence Professionnelle des Métiers de l Informatique RAPPORT DU PROJET : JXDVDTek - UNE DVDTHEQUE EN JAVA ET XML Encadré par : M. CRESCENZO Pierre

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

Plus en détail

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 SQL Sommaire : COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2 COMMANDES DE MANIPULATION DE DONNEES... 2 COMMANDES DE CONTROLE TRANSACTIONNEL... 2 COMMANDES DE REQUETE DE DONNEES... 2 COMMANDES

Plus en détail

Introduction aux Systemes d Information et aux Bases de Données

Introduction aux Systemes d Information et aux Bases de Données Introduction aux Systemes d Information et aux Bases de Données L2 Informatique Serenella Cerrito Département d Informatique Évry 2014-2015 Quels valeurs peut prendre un attribut? Ici, les types les plus

Plus en détail

LINQ to SQL. Version 1.1

LINQ to SQL. Version 1.1 LINQ to SQL Version 1.1 2 Chapitre 03 - LINQ to SQL Sommaire 1 Introduction... 3 1.1 Rappels à propos de LINQ... 3 1.2 LINQ to SQL... 3 2 LINQ to SQL... 3 2.1 Importer des tables... 3 2.1.1 Le concepteur

Plus en détail

TD2-1 : Application client-serveur V2.3.0

TD2-1 : Application client-serveur V2.3.0 TD2-1 : Application client-serveur V2.3.0 Cette œuvre est mise à disposition selon les termes de la licence Creative Commons Attribution Pas d'utilisation Commerciale Partage à l'identique 3.0 non transposé.

Plus en détail

La Clé informatique. Formation Access XP Aide-mémoire

La Clé informatique. Formation Access XP Aide-mémoire La Clé informatique Formation Access XP Aide-mémoire Septembre 2003 Définitions de termes Base de données : Se compare à un énorme classeur ayant plusieurs tiroirs où chacun d eux contient des informations

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

Introduction à JDBC. Accès aux bases de données en Java

Introduction à JDBC. Accès aux bases de données en Java Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity

Plus en détail

GeOxygene : travaux pratiques Exercices pour la version PostGIS version 1.2

GeOxygene : travaux pratiques Exercices pour la version PostGIS version 1.2 Institut Géographique National Laboratoire COGIT GeOxygene : travaux pratiques Exercices pour la version PostGIS version 1.2 28 février 2007 Eric Grosso Résumé : Ce document a pour but de comprendre GeOxygene

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

Bases de données et sites WEB Cours 2 : SQL3 Modèle

Bases de données et sites WEB Cours 2 : SQL3 Modèle Bases de données et sites WEB Cours 2 : SQL3 Modèle 1 Plan Insuffisances du modèle relationnel Concepts objet Modèle Objet-relationnel et SQL3 2 Insuffisances du modèle relationnel Opérations séparées

Plus en détail

Module MABD Master Informatique Spécialité IAD. Cours 3 Modèle objet-relationnel et SQL3

Module MABD Master Informatique Spécialité IAD. Cours 3 Modèle objet-relationnel et SQL3 Module MABD Master Informatique Spécialité IAD Cours 3 Modèle objet-relationnel et SQL3 1 L'objet-relationnel Relationnel (tables, attributs, domaine, clé) + Objet (collections, identifiants, héritage,

Plus en détail

XML et Bases de données. XMLType Oracle XML DB

XML et Bases de données. XMLType Oracle XML DB Oracle XML DB Oracle XML DB Depuis la version 9i et de façon enrichie dans la version 10g, Oracle propose des outils pour gérer des documents XML Depuis la 10g il n'y a plus d'extraction car auparavant

Plus en détail

TP Contraintes - Triggers

TP Contraintes - Triggers TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution

Plus en détail

Tutoriel de création d une application APEX

Tutoriel de création d une application APEX Tutoriel de création d une application APEX 1 - Objectif On souhaite créer une application APEX destinée à gérer des dépenses et recettes. Ces dépenses et recettes seront classées par catégories. A partir

Plus en détail

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite. Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite. Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs, relations,

Plus en détail

Bases de données objet 1

Bases de données objet 1 Bases de données objet Les types utilisés dans les BDO sont les types standards existant dans les BD classiques : VARCHAR, NUMBER les types «distincts» : définis par le concepteur de la base pour distinguer

Plus en détail

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications P.-A. Sunier, HEG-Arc Neuchâtel avec le concours de J. Greub pierre-andre.sunier@he-arc.ch http://lgl.isnetne.ch/

Plus en détail

PPE 3.1.b. Gestion des frais : Mode d'emplois de l'application GSB Fiche de Frais ITIN BTS SIO A2 AUBRUN - HUERTAS - LE MEUT - RIDEAU

PPE 3.1.b. Gestion des frais : Mode d'emplois de l'application GSB Fiche de Frais ITIN BTS SIO A2 AUBRUN - HUERTAS - LE MEUT - RIDEAU ITIN BTS SIO A2 PPE 3.1.b Gestion des frais : Mode d'emplois de l'application GSB Fiche de Frais AUBRUN - HUERTAS - LE MEUT - RIDEAU 1 Sommaire I- Arborescence des Forms... 3 II- Diagramme de classe...

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 5 : PL/SQL : ou comment faire plus avec ORACLE 3ème partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Curseurs et mise à jour 2 Paquetages Definition

Plus en détail

Cours Web n o 7 MySQL et PHP

Cours Web n o 7 MySQL et PHP Introduction aux bases de données Cours Web n o 7 MySQL et PHP Sandrine-Dominique Gouraud (gouraud@lri.fr) Pierre Senellart (pierre@senellart.com) Semaine du 7 novembre 2005 S.-D. Gouraud, P. Senellart

Plus en détail

Les procédures stockées et les fonctions utilisateur

Les procédures stockées et les fonctions utilisateur Les procédures stockées et les fonctions utilisateur Z Grégory CASANOVA 2 Les procédures stockées et les fonctions utilisateur [08/07/09] Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les procédures

Plus en détail

Modification des données stockées dans une base. LIF4 - Initiation aux Bases de données : SQL - 3. Exemple. Insertion. Insertion utilisant une requête

Modification des données stockées dans une base. LIF4 - Initiation aux Bases de données : SQL - 3. Exemple. Insertion. Insertion utilisant une requête Modification des données stockées dans une base LIF4 - Initiation aux Bases de données : SQL - 3 E.Coquery emmanuel.coquery@liris.cnrs.fr http ://liris.cnrs.fr/ ecoquery La modification s effectue par

Plus en détail

1/24. I On peut toujours faire du relationnel : enrichissement de SQL2. Introduction 3/24 SGBDOO

1/24. I On peut toujours faire du relationnel : enrichissement de SQL2. Introduction 3/24 SGBDOO ntroduction 1/24 2/24 Anne-Cécile Caron Master MAGE - BDA 1er trimestre 2013-2014 La norme SQL 3 aussi appelée SQL 99 Extension du modèle relationnel à l objet nécessité de structures de données plus sophistiquées

Plus en détail

Licence Professionnelle TAI Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr)

Licence Professionnelle TAI Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr) Grenoble 1 IMA Informatique & Mathématiques Appliquées UNIVERSITE JOSEPH FOURIER Sciences, Technologie, Médecine Licence Professionnelle TAI Programmation Orientée Objets Gestion de comptes en banque (Philippe.Genoud@imag.fr)

Plus en détail

Bases de données Cours 7 : Modèle relationnel-objet

Bases de données Cours 7 : Modèle relationnel-objet -relationnel Cours 7 : Modèle relationnel-objet ESIL Université de la méditerranée Odile.Papini@esil.univ-mrs.fr http://pages-perso.esil.univmed.fr/ papini/ -relationnel Plan du cours 1 Introduction 2

Plus en détail

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

Dossier I Découverte de Base d Open Office

Dossier I Découverte de Base d Open Office ETUDE D UN SYSTEME DE GESTION DE BASE DE DONNEES RELATIONNELLES Définition : Un SGBD est un logiciel de gestion des données fournissant des méthodes d accès aux informations. Un SGBDR permet de décrire

Plus en détail

2011 Hakim Benameurlaine 1

2011 Hakim Benameurlaine 1 Table des matières 1 SSIS... 2 1.1 Management Studio... 2 1.2 dtswizard... 13 1.3 BIDS... 14 1.4 Exemple SSIS... 16 1.4.1 Introduction... 16 1.4.2 Création du package... 18 1.4.3 Paramétrage de la tâche

Plus en détail

Modèle relationnel Création et modification des relations en SQL

Modèle relationnel Création et modification des relations en SQL Modèle relationnel Création et modification des relations en SQL ENT - Clé sql2009 BD - Mírian Halfeld-Ferrari p. 1 Insertion dans une relation Pour insérer un tuple dans une relation: insert into Sailors

Plus en détail

Tp2 Emacs Développement Web

Tp2 Emacs Développement Web Tp2 Emacs Développement Web Les indications ci-dessous donnent les grandes lignes du développement. 1/ Evenement Ajax Jquery: Le code javascript jquery suivant permet d afficher un message dans un span

Plus en détail

Rapport Gestion de projet

Rapport Gestion de projet IN56 Printemps 2008 Rapport Gestion de projet Binôme : Alexandre HAFFNER Nicolas MONNERET Enseignant : Nathanaël COTTIN Sommaire Description du projet... 2 Fonctionnalités... 2 Navigation... 4 Description

Plus en détail

I- Présentation générale II-Création d une base III-Remplir une table IV-Requêtes SQL SQLITEMAN KIT DE SURVIE

I- Présentation générale II-Création d une base III-Remplir une table IV-Requêtes SQL SQLITEMAN KIT DE SURVIE SQLITEMAN KIT DE SURVIE SQLITEMAN KIT DE SURVIE I-Présentation générale Fenêtre du «navigateur d objets», qui permet de visualiser ou modifier la structure de la base de données utilisées. Fenêtre de

Plus en détail

Paradigme relationnel-objet. Hiver 2011 C. Desrosiers

Paradigme relationnel-objet. Hiver 2011 C. Desrosiers LOG660 - Bases de données de haute performance Paradigme relationnel-objet Hiver 2011 C. Desrosiers Département de génie logiciel et des TI Le modèle relationnel-objet (OR Ajoute quelques notions au modèle

Plus en détail

BASE DE DONNÉES T.P.1 SQL3

BASE DE DONNÉES T.P.1 SQL3 Faculté des Sciences et Techniques Année Universitaire 2005-2006 Master 1 Informatique BASE DE DONNÉES T.P.1 SQL3 DEZE Simon DAUVERGNE Sébastien 1 Introduction Ce TP constitué de deux exercices vise à

Plus en détail

Compte rendu de PHP MySQL : création d un formulaire de base de données

Compte rendu de PHP MySQL : création d un formulaire de base de données REVILLION Joris Décembre 2009 3EI Compte rendu de PHP MySQL : création d un formulaire de base de données Objectifs : Le principal objectif de ce cours est de découvrir et de nous familiariser avec le

Plus en détail

Mise en œuvre d un Site Sharepoint-V1

Mise en œuvre d un Site Sharepoint-V1 Mise en œuvre d un Site Sharepoint- MAJ 20/01/2015 Ce document décrit le paramétrage pour la mise en œuvre des fonctionnalités standard de Microsoft SharePoint 2013 NADAP et SharePoint NADAP ( Nouvelle

Plus en détail

SQL Description des données : création, insertion, mise à jour. Définition des données. BD4 A.D., S.B., F.C., N. G. de R.

SQL Description des données : création, insertion, mise à jour. Définition des données. BD4 A.D., S.B., F.C., N. G. de R. SQL Description des données : création, insertion, mise à jour BD4 AD, SB, FC, N G de R Licence MIASHS, Master ISIFAR, Paris-Diderot Mars 2015 BD4 (Licence MIASHS, Master ISIFAR, Paris-Diderot) SQL 1/21

Plus en détail

Éléments de base en Java (suite et fin)

Éléments de base en Java (suite et fin) Éléments de base en Java (suite et fin) P.O.O. LMI 2 Semestre 4 Option Info Année 2008-09 1/33 Éléments de base en Java (suite et fin) Année 2008-09 Plan du cours Les chaînes de caractères Retour vers

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 1 : Vues et Index Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Les Vues Généralités Syntaxe Avantages Conditions de mise à jour 2 Index Généralités

Plus en détail

TP SPRING. https ://lipn.univ-paris13.fr/ fortier/enseignement/spring/tp/

TP SPRING. https ://lipn.univ-paris13.fr/ fortier/enseignement/spring/tp/ Institut Galilée Année 2015-2016 TP SPRING Programmation et Logiciels sûrs Master 2 PLS Résumé L objectif de ce TP est d être capable de réaliser une application Java de gestion de location de véhicules,voiture

Plus en détail

625 Programmation JDBC INTRODUCTION ARCHITECTURES

625 Programmation JDBC INTRODUCTION ARCHITECTURES 625 Programmation JDBC INTRODUCTION API (Framework) permettant d'accéder virtuellement à toute source de données tabulaire ; respecte la philosophie de la plate-forme Java: Write once, run everywhere ;

Plus en détail

Gestion de base de données

Gestion de base de données Université Libre de Bruxelles Faculté de Philosophie et Lettres Département des Sciences de l Information et de la Communication Gestion de base de données Projet : Take Off ASBL Cours de M. A. Clève STIC-B-505

Plus en détail

Consommation de services de données ADO.NET

Consommation de services de données ADO.NET Consommation de services de données ADO.NET Version 1.0 Jean-Christophe VASSELON 2 ADO.Net Data Services Sommaire 1. Introduction... 3 2. La consommation d un service Ado.Net Data Services... 4 2.1 Démarrage

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

625 Programmation JDBC LES PRINCIPALES CLASSES ET LEUR EMPLOI INTRODUCTION ARCHITECTURES. Connection. Statement instruction

625 Programmation JDBC LES PRINCIPALES CLASSES ET LEUR EMPLOI INTRODUCTION ARCHITECTURES. Connection. Statement instruction 625 Programmation INTRODUCTION JDBC API (Framework) permettant d'accéder virtuellement à toute source de données tabulaire ; respecte la philosophie de la plate-forme Java: Write once, run everywhere ;

Plus en détail

Atelier Web Les langages du Web Le MySQL Module 1 - Les bases

Atelier Web Les langages du Web Le MySQL Module 1 - Les bases Atelier Web Les langages du Web Le MySQL Module 1 - Les bases Définition MySQL = SGBD = Système de Gestion de Base de Données Le rôle du MySQL est de vous aider à enregistrer les données de manière organisée

Plus en détail

Cours: BD et Environnement Distribuées

Cours: BD et Environnement Distribuées UNIVERSITÉ DE BOURGOGNE UFR Sciences et Techniques Cours: BD et Environnement Distribuées TP 4 - Mapping Objet Relationnel Préparé par: MATTA Elie et al. Copyright 2010-2011, eliematta.com. All rights

Plus en détail

ENRICHIR LES DONNEES DE DETAILS ACCEDEES A TRAVERS UN RAPPORT OLAP

ENRICHIR LES DONNEES DE DETAILS ACCEDEES A TRAVERS UN RAPPORT OLAP ENRICHIR LES DONNEES DE DETAILS ACCEDEES A TRAVERS UN RAPPORT OLAP SAS Web Report Studio offre depuis de nombreuses versions la possibilité de visualiser les observations spécifiques à partir des données

Plus en détail

Applications orientées données (NSY135)

Applications orientées données (NSY135) Applications orientées données (NSY135) 11 Le langage HQL Auteurs: Raphaël Fournier-S niehotta et Philippe Rigaux (philippe.rigaux@cnam.fr,fournier@cnam.fr) Département d informatique Conservatoire National

Plus en détail

Introduction au débogage avec Eclipse

Introduction au débogage avec Eclipse Introduction au débogage avec Eclipse C. Pain-Barre et H. Garreta IUT INFO Année 2006-2007 1 Notion de debogage Tout développeur est confronté un jour à un programme qui plante pour une raison apparemment

Plus en détail

Sujet 4 : Jeu en réseau en Java / Swing. Auteur : Thomas JGENTI I072545

Sujet 4 : Jeu en réseau en Java / Swing. Auteur : Thomas JGENTI I072545 Projet Interfaces Homme-Machine Demi-valeur 16874 Année 2002-2003 Sujet 4 : Jeu en réseau en Java / Swing Auteur : Thomas JGENTI I072545 http://jgenti.free.fr/cnam Table de matières Table de matières...2

Plus en détail

Recueil des Fiches Concepteurs : Mise en œuvre d un site SharePoint 2013 Juin 2015

Recueil des Fiches Concepteurs : Mise en œuvre d un site SharePoint 2013 Juin 2015 Recueil des s s : Mise en œuvre d un site SharePoint 2013 Juin 2015 Ce document décrit le paramétrage pour la mise en œuvre des fonctionnalités standard de Microsoft SharePoint 2013. NADAP et SharePoint

Plus en détail

Exercice EXU1610. INSA-ROUEN - ASI page 1/1 UV Génie Logiciel

Exercice EXU1610. INSA-ROUEN - ASI page 1/1 UV Génie Logiciel Exercice EXU60 Préliminaire Cet exercice a pour but de vous guider dans la démarche de conception outillée par UML. Chacune des questions vous aiguille pas à pas : Réaliser un diagramme de séquence système

Plus en détail

EISTI. Oracle Toplink. Manuel d installation et d utilisation

EISTI. Oracle Toplink. Manuel d installation et d utilisation EISTI Oracle Toplink Manuel d installation et d utilisation VILLETTE Charles, BEQUET Pierre, DE SAINT MARTIN Cédric, CALAY-ROCHE Vincent, NAUTRE Francois 20/05/2010 Ce manuel d installation et d utilisation

Plus en détail

Cours 7 : Langage de définition, manipulation et contrôle des données

Cours 7 : Langage de définition, manipulation et contrôle des données Cours 7 : Langage de définition, manipulation et contrôle des données Objets d une base de données Dans un schéma Tables, vues Index, clusters, séquences, synonymes Packages, procédures, fonctions, déclencheurs

Plus en détail

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\ Exercices corrigés de programmation OO Java Préparés par : Mlle Imene Sghaier Année Académique : 2006-2007 Premiers Pas I. Avant de programmer en Java Le JDK de Sun (Java Development Kit) est l outil essentiel

Plus en détail

Révisions sur les Bases de données. Lycée Thiers - PC/PC*

Révisions sur les Bases de données. Lycée Thiers - PC/PC* Bases de données Architecture clients-serveur Architecture trois tiers Vocabulaire des BDD Algèbre relationnelle Création/modification d une table Commandes SQL de manipulation de tables Définition formelle

Plus en détail

FICHIERS ET DOSSIERS

FICHIERS ET DOSSIERS La différence entre fichier et dossier FICHIERS ET DOSSIERS La première notion à acquérir est la différence entre un dossier et un fichier Un dossier est une sorte de classeur dans lequel on range divers

Plus en détail

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS) PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et

Plus en détail

Installation et administration d une base de données MySQL

Installation et administration d une base de données MySQL Compte rendu d'activité Fiche n 2 Nom et prénom : SAÏD Jérôme Nature de l'activité Installation et administration d une base de données MySQL Contexte : Dans le but de mettre en place un outils permettant

Plus en détail

Bases de données relationnelles

Bases de données relationnelles Bases de données relationnelles Système de Gestion de Bases de Données Une base de données est un ensemble de données mémorisé par un ordinateur, organisé selon un modèle et accessible à de nombreuses

Plus en détail

TP1 - Corrigé. Manipulations de données

TP1 - Corrigé. Manipulations de données TP1 - Corrigé Manipulations de données 1. Démarrez mysql comme suit : bash$ mysql -h 127.0.0.1 -u user4 -D db_4 p Remarque: le mot de passe est le nom de user. Ici user4 2. Afficher la liste des bases

Plus en détail

Manuel Utilisateur ENIGMA 15/04/2008. 299, rue Saint Sulpice Centre Tertiaire de l Arsenal 59500 DOUAI

Manuel Utilisateur ENIGMA 15/04/2008. 299, rue Saint Sulpice Centre Tertiaire de l Arsenal 59500 DOUAI Manuel Utilisateur 15/04/2008 ENIGMA Cahier de réalisation ENIGMA Page 2 Sommaire I. Introduction :... 3 II. Les répertoires de l application... 3 III. Les plugins... 4 a. CmdDos... 4 b. CSV2XML... 4 c.

Plus en détail

Cours Bases de données 2ème année IUT

Cours Bases de données 2ème année IUT Cours Bases de données 2ème année IUT Cours 8 : JDBC : ou comment lier ORACLE avec Java 3ème partie Anne Vilnat http://www.limsi.fr/individu/anne/cours Plan 1 Appel aux procédures et aux fonctions stockées

Plus en détail

BD50. Gestion des courses

BD50. Gestion des courses Département Génie Informatique BD50 TP7 : Développement avec le module PL/SQL de 9iAS et DBMS_EPG d'oracle 10G Gestion des courses Françoise HOUBERDON & Christian FISCHER Copyright Mai 2007 Présentation

Plus en détail

Application de gestion de tâche

Application de gestion de tâche Université de Montpellier 2 Rapport TER L3 Application de gestion de tâche Tuteur : M. Seriai Participant : Cyril BARCELO, Mohand MAMMA, Feng LIU 1 er Fevrier 2015 26 Avril 2015 Table des matières 1 Introduction

Plus en détail

Listes de personnes et calculatrice polonaise inverse en Java

Listes de personnes et calculatrice polonaise inverse en Java Listes de personnes et calculatrice polonaise inverse en Java Université Paris Sud Motivation Le but de cet exercice est de manipuler les listes chaînées et les piles et de voir leur application en analyse

Plus en détail

Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données

Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données 1. Exploiter une couche métier objet PHP prend en charge certains des grands principes du paradigme objet (héritage,

Plus en détail

Oracle Database 10g: Les fondamentaux du langage SQL I

Oracle Database 10g: Les fondamentaux du langage SQL I Oracle University Appelez-nous: +33 (0) 1 57 60 20 81 Oracle Database 10g: Les fondamentaux du langage SQL I Durée: 3 Jours Description Ce cours offre aux étudiants une introduction à la technologie de

Plus en détail