Exia Merise Prosit 4 SCHMITT Mathieu 08 Merise 2008 Définition des mots-clés Modèle conceptuel (MCD) : Le MCD repose sur les notions d'entité et d'association et sur les notions de relations. Base de donnée relationnelle : Une base de données relationnelle est une base de données structurée suivant les principes de l’algèbre relationnelle. La théorie des bases de données relationnelles est due à Edgar Frank Codd. 20 janvier 2008 Analyse du SI : Merise 2008 Modèle logique de donnée (MLD) : Ce modèle indique comment organiser les données. On se représente le modèle comme étant un ensemble de relations. Type de BDD : Les bases de données organisent et structurent l'information dans le but d'en faciliter le repérage. On note différents types de bases de données. Bases de données bibliographiques Bases de données numériques Banques d'images Autres bases Axes de recherches Etudier le MLD Le modèle logique des données Le modèle logique des données consiste à décrire la structure de données utilisée sans faire référence à un langage de programmation. Il s'agit donc de préciser le type de données utilisées lors des traitements. Ainsi, le modèle logique est dépendant du type de base de données utilisé. Le modèle relationnel Traduction d'une classe d'entité 20 janvier 2008 Chaque classe d'entité du modèle conceptuel devient une table dans le modèle logique. Les identifiants de la classe d'entité sont appelé clés de la table, tandis que les attributs standards deviennent des attributs de la table, c'est-à-dire des colonnes. Merise 2008 Traduction d'une classe de relation Le passage du modèle conceptuel au modèle logique au niveau des classes de relation se fait selon les cardinalités des classes d'entité participant à la relation : si une des classes d'entités possède une cardinalité faible : la table aura comme attributs, les attributs de la classe ayant une cardinalité faible, puis le (ou les) attribut(s) de relation et enfin les attributs de la seconde classe précédé du nom de la classe si les deux classes d'entités possèdent une cardinalité forte : la table aura comme attributs, les attributs des deux classes de relation précédés des noms des classes respectives, puis le (ou les) attribut(s) de relation Traduction d'une classe d'agrégation 20 janvier 2008 Dans le cas de la présence d'une classe d'agrégation, la classe d'entité agrégée a comme attributs supplémentaires les attributs de la classe d'entité agrégeante. Merise 2008 Etudier le modèle relationnel Qu'est-ce que le modèle relationnel ? Le modèle relationnel est basé sur une organisation des données sous forme de tables. La manipulation des données se fait selon le concept mathématique de relation de la théorie des ensembles, c'est-à-dire l'algèbre relationnelle. Elle est constituée d'un ensemble d'opérations formelles sur les relations. Les opérations relationnelles permettent de créer une nouvelle relation (table) à partir d'opérations élémentaires sur d'autres tables (par exemple l'union, l'intersection, ou encore la différence). La théorie des ensembles met en œuvre deux notions : la notion de domaine la notion de produit cartésien La notion de domaine Un domaine est un ensemble fini ou infini de valeurs. On le représente par une liste d'éléments ou bien une condition nécessaire et suffisante d'appartenance : le domaine des booléens: {0,1} le domaine des doigts de la main: {pouce, index, majeur, annulaire, auriculaire} ... La notion de produit cartésien 20 janvier 2008 La manipulation des données (sélection de valeurs) se fait suivant la notion mathématique de produit cartésien. Le produit cartésien d'un ensemble de domaines Di, noté D1*D2*D3*...*Dn est l'ensemble des n-uplets (appelés aussi tuples) <V1,V2,...,Vn> tels que Vi appartient à Di Merise 2008 Modélisation relationnelle La modélisation relationnelle permet de représenter les relations à l'aide de tables (à deux dimensions) dont chaque colonne a un identificateur qui représente un domaine. Une ligne du tableau représente donc une entité et chacune des cases représente un de ses attributs. On appelle attributs le nom des colonnes qui représentent les constituants de l'entité. Un attribut (une colonne) est repéré par un nom et un domaine de définition, c'est-à-dire l'ensemble des valeurs qu'il peut prendre. On appelle tuple (ou n-uplet) une ligne du tableau. L'entité voiture pourra par exemple être représentée par : La marque Le modèle La série La plaque minéralogique La cardinalité d'une relation est le nombre de tuples qui la composent. Dans l'exemple ci-dessus la cardinalité est égale à 3. 20 janvier 2008 La clé principale d'une relation est l'attribut, ou l'ensemble d'attributs, permettant de désigner de façon unique un tuple. Dans l'exemple ci-dessus, le numéro de la plaque minéralogique est une clé principale dans la mesure où la seule connaissance de cet attribut permet de connaître la voiture. Une clé étrangère, par contre, est une clé (donc un attribut permettant d'identifier de façon unique un tuple) faisant référence à une clé appartenant à une autre table. La description d'une relation (d'une table) par ses attributs (nom et domaine) est appelée schéma d'une relation. On désigne par le terme schéma d'une base de données relationnelle l'ensemble des relations qui la composent. La manipulation des éléments de la table se fait à l'aide d'opérations sur les ensembles. On définit deux types d'opérations de base : Merise 2008 Les opérations unaires les opérations ensemblistes Opérations de base Une opération de base est définie par le fait qu'elle ne peut être réalisée par combinaison d'autres opérations. Il existe 5 opérations élémentaires pouvant être classées en deux catégories : Les opérations unaires: elles consistent à éliminer des lignes ou des colonnes de la table les opérations ensemblistes: elles consistent à effectuer un recoupement entre plusieurs tables Opérations unaires Projection L'opérateur projection consiste à créer une table à partir d'une autre en ne gardant que les colonnes spécifiées dans la projection. On note une projection : projX1,X2,...,XN(R) Où X1,X2, ..., XN représentent les colonnes que l'on garde Restriction (ou sélection) L'opérateur restriction consiste à créer une table à partir d'une autre en ne gardant que les lignes pour lesquelles une colonne vérifie certaines propriétés. On note une restriction : selectQ(R) Où Q représente la qualification, c'est-à-dire la condition à réaliser Opérations ensemblistes Union L'union de deux tables est la table contenant l'ensemble des tuples (cellules) appartenant à l'une ou l'autre des tables (ou les deux). Les deux tables opérandes doivent être de même schéma, c'est-àdire que les attributs de la table (colonnes) doivent être les mêmes. On note l'union entre deux tables R1 et R2 : 20 janvier 2008 union(R1,R2) ou encore R1 U R2 Différence La différence entre deux tables est la table contenant l'ensemble des tuples (cellules) appartenant à une table mais pas à la seconde. Les deux tables opérandes doivent être de même schéma, c'est-à- Merise 2008 dire que les attributs de la table (colonnes) doivent être les mêmes. On note la différence entre deux tables R1 et R2 : minus(R1,R2) ou encore R1 - R2 Produit cartésien Le produit cartésien de deux tables est la table contenant la concaténation de l'ensemble des tuples d'une ligne d'une table à ceux de l'autre table, et ce pour chaque ligne. Les deux tables opérandes n'ont pas nécessairement le même schéma On note le produit cartésien de deux tables R1 et R2 : product(R1,R2) ou encore R1 * R2 Opérations dérivées A partir des opérations de base de nombreuses opérations très utiles peuvent être définies. En voici quelques unes : Intersection L'intersection entre deux tables est la table contenant l'ensemble des tuples (cellules) appartenant aux deux tables. Les deux tables opérandes doivent être de même schéma, c'est-à-dire que les attributs de la table (colonnes) doivent être les mêmes. On note l'intersection entre deux tables R1 et R2 : inter(R1,R2) ou encore R1 R2 Cet opérateur peut être décrit à l'aide d'opérateurs de base : 20 janvier 2008 R1 R2 = R1 - (R1 - R2) Quotient (ou division) Le quotient de deux tables est la table contenant l'ensemble des tuples (cellules) qui concaténés à chaque tuple de l'une des tables fournissent des tuples appartenant à l'autre On note le quotient de deux tables R1 et R2 : div(R1,R2) ou encore Merise 2008 R1/R2 θ-jointure On appelle θ-jointure selon une qualification Q l'ensemble des tuples provenant du produit cartésien de deux relations et satisfaisant la qualification, c'est-à-dire la condition exprimée à l'aide des comparateurs : ≥ ≤ > < = ≠ ¬ On note la θ-jointure de deux tables R1 et R2 : joinQ(R1,R2) ou encore (R1 Q)R2 On définit des types de jointure particulière selon la qualification Q : L'équi-jointure est une θ-jointure dont la qualification est une égalité entre deux colonnes La jointure naturelle est une équi-jointure sur des attributs de même nom associée à une projection. Elle se note R1 R2 20 janvier 2008 Opérations calculatoires Les opérateurs de calcul ne sont pas des opérations dérivées dans la mesure où ils ne peuvent pas être exprimés à l'aide des opérateurs de base. Ils permettent néanmoins de faire des opérations très utiles (parfois nécessaires) que les autres opérateurs ne peuvent pas réaliser. Merise 2008 Opérateur Somme Cet opérateur permet de faire la somme cumulée des valeurs que l'attribut X prend pour une liste d'attributs appelés attributs de regroupement. Les valeurs de X doivent bien évidemment être numériques. Lorsqu'aucun attribut de regroupement n'est précisé, l'opérateur Somme renvoie la somme des valeurs de la colonne. On note cet opérateur : SommeX1,X2,...,Xn(R,X) ou avec la notation anglaise SumX1,X2,...,Xn(R,X) Opérateur de comptage Cet opérateur permet de compter le nombre de lignes pour lesquelles l'attribut fait partie d'une liste d'attributs appelés attributs de regroupement. Lorsqu'aucun attribut de regroupement n'est précisé l'opérateur compte le nombre de tuples de la colonne. On note cet opérateur : CompteX1,X2,...,Xn(R,X) ou avec la notation anglaise CountX1,X2,...,Xn(R,X) 20 janvier 2008 Validations des hypothèses Vrai. Il faut faire le MCD avant le MLD. Vrai. Les règles du MCD sont différentes de celles du MLD. Vrai. Une base de données relationnelle fait appel à des calculs. Vrai. Dans un MLD les entités le restent par rapport au MCD. Faux. Dans le MLD les cardinalités ne sont pas respectées. Faux. Les clés primaires et étrangères disparaissent en MLD. Faux. Les clés primaires restent et les clés étrangères disparaissent. Nimp. Les clés viennent du trousseau de clé de Thomas. (Merci Thomas) 20 janvier 2008 Merise 2008