Professional Documents
Culture Documents
Plan
Excel avanc
Outils de rsolution
Valeur cible, solveur
Outils de simulation
Tables de valeurs, scnarios
Une BD relationnelle est compose dun ensemble de tables (ou relations) Une table est compose de
Lignes quon appelle enregistrements (ou tuples) Colonnes reprsentant chacune un champ (ou un attribut)
Exemple de table
Nom de la table 3 champs
NCommande est du type numrique entier Montant est du type numrique rel DateCommande est du type date
Quelques contraintes
Deux
tables dune mme base de donnes ne peuvent pas avoir le mme nom champs de la mme table ne peuvent pas avoir le mme nom mme champ peut tre prsent dans plusieurs tables
Deux
Un
SGBD
Les logiciels qui permettent de grer des bases de donnes sont appels Systmes de Gestion de Bases de Donnes Acces est un SGBD relationnel MySQL, SQL Server, Postgres, Oracle, DB2, Un SGBD permet de
Crer une BD Modifier la structure des tables Interroger la BD Modifier la BD
Interrogation dune BD
PRINCIPES DINTERROGATION
BD=ensemble de tables
Algbre relationnelle
OPERATIONS ALGEBRIQUES APPLIQUEES AUX TABLES UNAIRES (Un argument) BINAIRES (Deux arguments)
5 OPERATIONS ALGEBRIQUES ELEMENTAIRES RESTRICTION PROJECTION PRODUIT DIFFERENCE UNION OPERATION COMPLEMENTAIRE (lune des plus utilises) JOINTURE
RESTRICTION
R1 = RESTRICTION (R; <condition_de_restriction>) condition_simple : oprande1 oprande2. est un oprateur prendre parmi {=, , >, <, >=, <=} condition_compose : conditions simples lies par les oprateurs logiques et, ou, non R1 contient les lignes de R qui vrifient la condition de restriction
R1 = condition (R)
R R1
Exemple de restriction
Soit
On veut savoir quels sont les livres qui sont sortis en 2000 R1=Restriction(Livre; Anne=2000) R1=
Anne=2000(Livre)
PROJECTION
R1 = PROJECTION (R; <liste_attributs_projection>) <liste_attributs_projection> : Attributs Ai, avec Ai R R1 est une table qui contient les lignes de R o on ne garde que les champs spcifis dans ( liste_attributs_projection) R1 = Liste des attributs (R) R1 R
Exemple de projection
Soit
On veut savoir quels sont les titres des livres Projection(Livre; Titre)
Titre
(Livre)
Soit la table Livre(NLivre, Titre, Anne) On veut les titres des livres sortis en 2000 R1= Restriction(Livre, Anne=2000) R2= Projection(R1;Titre) Ou Projection(Restriction(Livre;Anne=2000),Titre) Noter que lon ne peut pas inverser lordre de ces 2 oprations
PRODUIT CARTESIEN
R = PRODUIT (R1;R2) R contient le produit cartsien de R1 et R2, i.e toutes les combinaisons des lignes de R1 avec les lignes de R2 Les colonnes de R sont celles de R1 AINSI que celles de R2 R =R1 * R2 R R1 R2
(3x4 = 12 lignes) (4 lignes)
(3 lignes)
Exemple de produit
Soient les tables: Livre(NLivre, Titre, Anne) contient n lignes Auteur(NAuteur, Nom, AnneNaissance) m lignes On veut savoir quels sont les affectations possibles quon peut raliser entre les livres et les auteurs R1=Produit(Livre; Auteur) R1(NLivre, Titre, Anne, NAuteur, Nom, AnneNaissance) R1 contient n*m lignes
Soient les tables: Livre(NLivre, Titre, Anne) Artiste(NAuteur, Nom, AnneNaissance) On veut avoir les couples de la forme (NLivre, NAuteur) o lanne de sortie du livre NLivre correspond lanne de naissance de lauteur NAuteur R1=Produit(Livre; Auteur) R2=Restriction(R1; Anne=AnneNaissance) R3=Projection(R2; NLivre, NAuteur)
Les champs communs sont prcds du nom de la table d'o ils proviennent
UNION
R = UNION ( R1 ; R2) R contient les lignes de R1 et celles de R2 Les doublons sont limins. R1 et R2 doivent avoir les mmes champs. R = R1 R2
R1
R2
Exemple dunion
Soit les tables: Etudiant(NSS, Nom, Adresse) Employ(NSS, Nom, Adresse) On veut avoir la liste des personnes qui accdent luniversit (tudiants ou employs) Union(Etudiant; Employ)
Intersection
R = Intersection(R1; R2) R contient les lignes de R1 qui sont dans R2 R1 et R2 doivent avoir les mmes champs.
R
= R1 R2
R1
R2
Exemple dintersection
Soit
les tables:
veut avoir la liste des personnes qui sont en mme temps tudiantes et employes luniversit ; Employ)
Intersection(Etudiant
DIFFERENCE
R = DIFFERENCE (R1; R2) R contient les lignes de R1 qui ne sont pas dans R2. R1et R2 doivent avoir le mme schma. R =R1 - R2
R1 R R2
Exemple de diffrence
Soit
les tables:
veut avoir la liste des personnes qui sont employes luniversit et qui ne sont pas en mme temps des tudiants Etudiant)
Diffrence(Employ;
JOINTURE
R = JOINTURE (R1; R2) R contient les combinaisons des lignes de R1 avec les lignes de R2 qui ont la mme valeur sur les champs communs R =R1 R2
R1 = R2
Exemple de jointure
Soit
les tables
On veut savoir pour chaque livre, lauteur qui la crit (on suppose quil ny a quun auteur par livre)
Jointure(Album; Artiste)
les tables
veut avoir le titre des livres crits par un auteur qui sappelle Dupont
R1= Jointure (Livre ; Auteur) R2= Restriction(R1; Nom=Dupont) R3= Projection(R2 ; Titre)
Renommage
R = Renommer (R1; Champ Champ') R contient les toutes les lignes et toutes les colonnes de R1. Seul l'attribut Champ change de nom et devient Champ' R =Champ Champ' (R1) R
A a1 a2
B b1 b2
B C (R)
A a1 a2
C b1 b2
Renommage Exemple
Soient Employ (NSSE, NomE) et Etudiant(NSS, Nom) Quels sont les tudiants qui sont en mme temps employs ? Il nest pas possible de faire lintersection car les deux tables nont pas les mmes champs R1 = Renommer(Employ; NSSE NSS) R2 = Renommer(R1; NomE Nom) R3 = Intersection( R2, Etudiant)
Conditions de restriction
Une mme anne peut apparaitre plusieurs fois dans le rsultat si plusieurs albums sont sortis durant cette anne
Cette requte affiche le nombre dannes. Une mme anne sera compte autant de fois quelle apparat dans la table Album
Dabord une requte qui affiche les annes distinctes et lenregistrer par exemple sous le nom AnnesDistinctes
Le regroupement
Pour chaque artiste, afficher son numro ainsi que le nombre de ses albums On regroupe les lignes en fonction du NumArtiste : Deux lignes qui ont le mme NumArtiste seront dans le mme groupe Pour chaque groupe, on compte le nombre de NumAlbum
NumAlbum Titre 23 Hier 27 Suzanne 36 Demain 137 Thriller NumAlbum Titre 23 Hier 36 Demain 27 Suzanne 137 Thriller
Anne NumArtiste 1960 123 1976 1974 1983 25 123 25 22 Aprs regroupement sur NumArtiste
67 Montreal 1974
67 Montreal 1974
Regroupements
A 1 1 2 1 2 1 2 3
Par B. On obtient 3 groupes
B 1 2 1 2
A 1 1 1 2 2 1 3 2
C 1 2 2 1
A 1 1 2 1
B 1 2 2 3
C 2 1 1 2
Le regroupement
Pour chaque artiste, afficher son nom ainsi que le nombre de ses albums On regroupe les lignes en fonction du Nom
Le regroupement
Afficher le numro des artistes qui ont plus dun album
Pour chaque groupe, on compte le nombre de NumAlbum et on vrifie si ce nombre est suprieur 1
Le regroupement
Afficher le numro des artistes qui ont au moins un album dont le numro est suprieur 1 On regroupe les lignes en fonction du NumArtiste
Le regroupement
Les critres de slection
Quand on utilise le regroupement, il y a deux types de conditions (critres) : Condition sur les groupes : Utiliser une des fonctions de calcul Min, Max, Moyenne, Somme, Compte, Condition sur les lignes : utiliser lopration O
Quels sont les numros des artistes pour lesquels on na pas enregistr dalbums ? Projection(Artiste; NumArtiste) = R1 Projection (Album; NumArtiste) = R2 Diffrence(R1; R2) = rsultat Sous Access, il nest pas possible dexprimer directement la diffrence. Il faut passer par la jointure externe
La jointure externe
jointureExterne(R1; R2) = R R est obtenue en joignant les lignes de R1 avec les lignes de R2 Les lignes de R1 qui ne sont pas joignables seront aussi prsentes mais avec aucune valeur pour les champs de R2 (valeur NULL)
R1
A B a1 b 1 a2 b
R2
B C b c 1 1 b c
R A R1.B R2.B b1 C c1
a1 b1 a2 b2
La jointure externe
R1
A B a1 b 1 a2 b 2
R2
B C b c 1 1 b c 3 3
R
A a1 a2 R1.B R2.B b1 b2 b1 C c1
Quels sont les B de R1 qui ne sont pas dans R2 ? Ce sont ceux pour qui C=NULL dans R Slection(R; C=NULL) = R Projection(R; R1.B) = rsultat Rsultat = projection(R1,B) projection(R2, B)
La diffrence
Quels
sont les numros des artistes pour lesquels on na pas enregistr dalbums ?
Cliquer sur la jointure avec le bouton droit afin de changer ses proprits
La diffrence
Quels
sont les numros des artistes pour lesquels on na pas enregistr dalbums ?
La diffrence
Quels
sont les numros des artistes pour lesquels on na pas enregistr dalbums ?
Lintersection
Quelles sont les personnes qui sont en mme temps grantes et occupantes dun appart ? Cest lintersection des champs NomGrant et NomOccupant Toute intersection peut tre exprime par une jointure Intersection(R1;R2)=jointure(R1;R2) Linverse nest pas vrai. Certaines jointures ne peuvent pas tre exprimes par une intersection
Lintersection
Quelles sont les personnes qui sont en mme temps grantes et occupantes dun appart ?
Lunion
Il
nest pas possible dexprimer lunion en utilisant le QBE dAccess Il faut utiliser le langage SQL Exemple : Le NSS de toutes les personnes: SELECT NSS FROM tudiant UNION SELECT NSS FROM employ
Requte ajout
On veut crer une table grandsApparts qui contient ceux ayant une superficie > 100 Copier/Coller la table Appart pour obtenir une nouvelle table ayant la mme structure
Lancer Access Demander la cration dune nouvelle base Donner un nom votre base a y est, votre BD est cre mais pour linstant elle ne contient aucune information Noter quAccess aura cr un fichier dune taille non ngligeable!
5.
NumroAuto : numro incrment chaque insertion dun nouvel enregistrement. Numrique: Cest lutilisateur de taper sa valeur. Par dfaut, il sagit dun entier mais on peut prciser si cest un rel Texte : cest une chane de caractres. On peut prciser sa taille. Oui/Non : a correspond aux champs qui ne peuvent prendre que lune des deux valeurs OUI ou NON Date/Heure : Type des champs qui indiquent une notion de temps. Plusieurs formats sont disponibles Dautres types encore mais rarement utiliss.
Les plus utilises : Taille du texte : en nombre de caractres maximum Valeur par dfaut : valeur prise par ce champs si lutilisateur, lors de linsertion dun nouvel enregistrement ne prcise pas de valeur Null interdit : Est-ce que lutilisateur est oblig de donner une valeur pour ce champ ou pas Index : permet doptimiser la recherche sur ce champ. On peut utiliser cette proprit pour exiger que les valeurs du champ doivent tre uniques (sans doublons) Liste de choix : permet de prciser lensemble des valeurs correctes
Notion de cl primaire
systme (Access) va refuser linsertion dun nouvel enregistrement si cela viole lunicit de valeur pour la cl primaire
Sil il y a dj un enregistrement avec la mme valeur pour la cl primaire
Le
2. Cliquer ici
Notion de cl trangre
Un champs (ou ensemble de champs) est cl trangre dans une table sil fait rfrence une cl primaire dans une autre table. Par exemple
le champ NumArtiste est cl primaire dans la table Artiste Ce champ est donc cl trangre dans la table Album
Le systme va refuser linsertion dun album si son NumArtiste nexiste pas dans la table Artiste Le systme va refuser la suppression dun artiste si il existe dans la table Album des enregistrements qui lui sont associs Le systme va refuser la modification dun NumArtiste dans Album si la nouvelle valeur nest pas prsente dans Artiste Le systme va refuser la modification dun NumArtiste dans Artiste sil y a dj des albums qui sont associs lancienne valeur
En dplaant NumArtiste dAlbum et en le dposant sur NumArtiste dArtiste, on obtient cette fentre Cocher cette case
Cette relation signifie quun artiste peut tre associ plusieurs Albums et un album est associ un seul artiste