Bases de données. Base de données (BD) = Ensemble de données utilisées par une organisation.

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

Bases de Données relationnelles et leurs systèmes de Gestion

Olivier Mondet

CREATION WEB DYNAMIQUE

1 Introduction et installation

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

Bases de données relationnelles

TP3 : Creation de tables 1 seance

Les bases de données

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Le langage SQL (première partie) c Olivier Caron

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Pratique et administration des systèmes

SQL Historique

Introduction au Système de Gestion de Base de Données et aux Base de Données

Présentation du module Base de données spatio-temporelles

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

PHP 5. La base de données MySql. A. Belaïd 1

Création et Gestion des tables

TP Contraintes - Triggers

Langage SQL : créer et interroger une base

A QUOI SERVENT LES BASES DE DONNÉES?

Information utiles. webpage : Google+ : digiusto/

Le Langage SQL version Oracle

I. MySQL : Serveur et SGBD

I4 : Bases de Données

Les BASES de DONNEES dans WampServer

Rappel sur les bases de données

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

16H Cours / 18H TD / 20H TP

OpenPaaS Le réseau social d'entreprise

Intégrité des données

Bases de données élémentaires Maude Manouvrier

Administration des bases de données. Jean-Yves Antoine

Compétences Business Objects

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

TP Bases de données réparties

UML et les Bases de Données

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

1. Base de données SQLite

Pour les débutants. langage de définition des données

Bases de Données. Plan

Introduction aux Bases de Données

Le langage SQL Rappels

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

A QUOI SERVENT LES BASES DE DONNÉES?

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

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

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Notes de cours : bases de données distribuées et repliquées

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

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)

Le Langage De Description De Données(LDD)

Java DataBaseConnectivity

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Bases de Données Avancées

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Application web de gestion de comptes en banques

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Bases de données et sites WEB Licence d informatique LI345

Modélisation et Gestion des bases de données avec mysql workbench

MySQL / SQL EXEMPLES

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Bases de données cours 1

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Bases de données relationnelles & SQL

Bases de données Outils de gestion

Intégrité sémantique dans les bases de données relationnelles

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

PROJET 1 : BASE DE DONNÉES REPARTIES

Bases de données avancées Introduction

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

Bases de données et sites WEB

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

Vincent Augusto

Modélisation de bases de données : Le modèle relationnel

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Systèmes de Gestion de Bases de Données

Gestion des transactions et accès concurrents dans les bases de données relationnelles

IFT3030 Base de données. Chapitre 1 Introduction

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Initiation aux bases de données (SGBD) Walter RUDAMETKIN

Bases de Données Relationnelles. Le Modèle Relationnel

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f

BTS/CGO P10 SYSTEME INFORMATION Année

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Cours: Administration d'une Base de Données

Transcription:

Bases de données Introduction Les organisations (entreprises, hôpitaux, universités ) manipulent diverses ressources (humaines, financières, logistiques, matérielles...) et font ainsi transiter des flux d'informations. La gestion d'une organisation implique un accès à ces données pour les consulter, traiter, modifier... Base de données (BD) = Ensemble de données utilisées par une organisation. Système de gestion de bases de données (SGBD) = Ensemble de programmes dédiés à la manipulation des données; c est à dire ajouter des données, accéder à des données, mettre à jour des données, supprimer des données. En Anglais, on utilise le terme DBMS pour database management system. Les données peuvent être informatisées et stockées sur un disque dur. Elles sont organisées de manière physique sur le disque par le SGBD. Des utilisateurs, bénéficiant de droits potentiellement différents, y accèdent grâce au SGBD. Il existe différents types de SGBD, hébergés sur des serveurs ou en local (sur sa machine). Exemple concrets d'utilisation de base de données : les systèmes de réservations de billets sur Internet, les sites de courses sur Internet, le logiciel du secrétariat médical de votre dentiste... Les avantages d'une base de données : compacité, rapidité, exactitude et maintenance facile des données. Naissance d'une base de données : Conception : recueillir les informations sur l'organisation du système étudié Création du schéma de la base de données : définition d'entités reliées entre elles par des associations Création du schéma physique : implémentation du schéma de la base de données sur le disque au travers du SGBD. Pour décrire le contenu d'une base de données, on utilise un modèle de données qui définit la manière dont on structure les données et les règles d'utilisation de ces données. Exemples : modèle hiérarchique, réseaux, relationnel, objets

Un SGBD est caractérisé par le modèle de données qu'il utilise. On exprime la création du schéma d'une base de données, c est-à-dire la description de la structure des données, à l'aide d'un langage de définition des données (LDD). Les données sont manipulées à l'aide d'un langage de manipulation de données (LMD). Requète du LMD Schéma Données résultat SGDB BD

Modèle relationnel Présentation du modèle Modèle inventé par E. Codd en 1970. Exemple de liste de tables dans une base de données : +--------------------------+ Tables_in_ChocolaterieDB +--------------------------+ Chocolat Chocolatier Client Commande +--------------------------+ Exemple de table dans le modèle relationnel : +---------------+-----------------------+-------------------+ idchocolatier nom ville +---------------+-----------------------+-------------------+ 1 Jeff De Bruges Bruges 2 De Neuville Neuville St-Rémy 3 Larnicol Melgven 4 Jean-Paul Hevin Paris 5 Patrick Roger Paris 6 Jacques Genin Paris 7 La Maison du chocolat Bruges 8 Michel Cluizel Damville +---------------+-----------------------+-------------------+ Description de cette table dans le modèle relationnel : +---------------+-------------+------+-----+---------+----------------+ Field Type Null Key Default Extra +---------------+-------------+------+-----+---------+----------------+ idchocolatier int(11) NO PRI NULL auto_increment nom varchar(25) NO NULL ville varchar(25) NO NULL +---------------+-------------+------+-----+---------+----------------+

UNE RELATION = UN TABLEAU A DEUX DIMENSIONS UNE COLONNE = UN ATTRIBUT EN-TÊTE DU TABLEAU = SCHEMA DE LA RELATION (DESCRIPTION DU TYPE) UNE LIGNE = UN TUPLE ENSEMBLE DES LIGNES = CONTENU DE LA RELATION (EXTENSION) Définitions formelles : Domaine : Ensemble de valeurs caractérisé par un nom Ex: Entiers, réels, date, marque voiture, couleur,... Marque Voiture : {Renault, Peugeot, Citroen} Couleur : { blanche, grise} Produit cartésien d un ensemble de domaines D1,D2, Dn noté D1 x D2 x x Dn = ensemble des éléments (v 1, v 2, v n ) avec v 1 D 1, v 2 D 2,, v n D n Renault Renault Peugeot Peugeot Citroen Citroen blanche grise blanche grise blanche grise Relation Soient D1, D2,..., Dn une liste de domaines, une relation est un sous-ensemble du produit cartésien D1 x D2 x... x Dn. Tuple (N-Uplet): un élément d une relation. (v 1, v 2,v n ) Exemple : (1435, Helfer, Paris) Un tuple est unique dans une relation L'ordre des tuples dans une relation n'a pas d'importance Cardinalité d une relation = nombre de tuples Attribut : nom donné au rôle joué par un domaine dans une relation Exemple : Ville

Un attribut est unique par relation L'ordre des attributs n'a pas d'importance. Degré d une relation = nombre d attributs Schéma d'une relation = nom de la relation suivi par la liste des attributs qui la composent et par la définition de leurs domaines R(A1 : D1,, An : Dn) où R est le nom de la relation, Ai les attributs et Di les domaines associés. Exemple, le schéma de la relation CHOCOLATIER est le suivant : CHOCOLATIER(idChocolatier : Entiers, Nom : Caractères, Ville : Caractères) Remarque : Les domaines peuvent être omis. Remarque : le schéma définit la relation en intention alors que la table définit la relation en extension. Règles d'intégrité structurelle Clé La clé d une relation est un ensemble minimal d attributs dont chaque valeur détermine un tuple unique dans toute extension de la relation. Exemple : l attribut NoEmp peut être la clé de la relation EMPLOYE puisque tout employé possède un numéro unique et que deux employés ne peuvent pas avoir le même numéro EMPLOYE (NoEmpl, Nom, Année, Nodept) Contrainte référentielle Une référence (ou clé étrangère) est un attribut (ou un groupe d attributs) dont les valeurs sont celles d une clé d une autre relation Exemple Employé (NoEmpl, Nom, Année, NoDept) Département (NoDept, NomDépt, Budget) Toute valeur de l attribut NoDept dans la relation Employé doit se trouver dans la relation département.

Valeur nulle et clé La valeur nulle (NULL) est une valeur introduite par convention dans une relation pour représenter une information inconnue ou inapplicable. Ex: Employé ( NoEmpl, Nom, NomMarital, Année, Adresse, Téléphone, Nodept) Le téléphone non connu à une certaine date (10, Durand, Faure, 1980, Paris, NULL, 75) Le nom marital pour un employé (23, Fergio, NULL, 1987, Marseille, 0234565412, 13) Contrainte de relation : Toute relation doit posséder au moins une clé non nulle. Schéma d'une base de données : schéma des relations et contraintes d'intégrité structurelle.

Le langage SQL (Structured Query Language) Langage assertionnel permettant : interrogation des données (requêtes) manipulation des données (insertion, suppression, mise à jour) définition des données et des contraintes sur celles-ci définition des vues et d index Différentes normes ISO : SQL-86; SQL-89; SQL-92; SQL-99 Différents dialectes (Oracle, MySQL, ) Création : Le Langage de Définition de Donnés (LDD) permet la définition de la base de données. Syntaxe pour la création de relations : CREATE TABLE <nom_relation> ( <élément de relation> <, élément de relation>* <, contrainte de relation>* ); >* ] <type de données> ::= VARCHAR <longueur> INT REAL DATE Chaque relation est définie par un nom de relation et une liste d attributs Chaque attribut est défini par un nom d attribut et un type de données Une contrainte d attribut concerne un seul attribut ex : valeur NULL impossible : NOT NULL Attribut clé : PRIMARY KEY Unicité de l attribut : UNIQUE Contrainte référentielle : REFERENCES <relation référencée> [ ( <attribut référencé> ) ] Valeur par défaut : DEFAULT <valeur> Une contrainte de relation concerne plusieurs attributs ex : Clé composée : PRIMARY KEY (nom_attribut [, nom_attribut]* ) Contrainte référentielle : FOREIGN KEY (nom_attribut [, nom_attribut]* ) REFERENCES nom de relation [(nom_attribut [, nom_attribut]* ) ]

Exemples: CREATE TABLE Fournisseur ( NumF INT NOT NULL,... PRIMARY KEY (NumF) ); CREATE TABLE Piece ( ' NumP INT NOT NULL, NomP VARCHAR(30);... PRIMARY KEY (NumP) ); CREATE TABLE Livraison ( NumF INT NOT NULL, NumP INT NOT NULL, DateLiv DATE, Qte INT, PRIMARY KEY (NumF, NumP, DateLiv), FOREIGN KEY (NumF) REFERENCES Fournisseur(NumF), FOREIGN KEY (NumP) REFERENCES Piece(NumP) ); Mises à jour : Insertion : INSERTION TUPLE à TUPLE INSERT INTO <nom_relation> [( nom_attribut [, nom_attribut]* )] VALUES ( valeur [, valeur]* ) ; Exemple : INSERT INTO Produit (NumP, NomP) VALUES (3, Chaise ); Les valeurs doivent être fournies dans l ordre de déclaration des attributs de la liste ou, s il n y en n a pas, du CREATE de la relation. Si la liste d attributs est incomplète, les attributs non spécifiés sont insérés avec des valeurs NULL INSERTION D UN ENSEMBLE DE TUPLES CALCULES A PARTIR DE TUPLES DE LA BASE DE DONNEES La clause VALUES est remplacée par un SELECT Exemple : INSERT INTO Fournisseurs-parisiens (SELECT * FROM Fournisseur WHERE VilleF = Paris );

Suppression : DROP TABLE nom_de_la_table Ordre des suppressions : Il suffit de relire à l envers le script de création de vos tables pour en déduire l ordre de suppression à écrire dans le script de destruction de votre schéma. Remarque pour la suite : les éléments qui utilisaient la table (vues, synonymes, fonctions et procédures) ne sont pas supprimés mais sont temporairement inopérants. Attention, une suppression ne peut pas être par la suite annulée. DELETE FROM <nom_relation> [ WHERE <condition de recherche> ]; La clause WHERE permet de sélectionner les tuples à supprimer. Actualisation : UPDATE nom_relation SET nom_attribut = <expression de valeur> [, nom_attribut = <expression de valeur> ]* [ WHERE <condition de recherche> ]; La clause WHERE permet de sélectionner les tuples à actualiser. Ex : UPDATE Chocolatier SET Ville = Paname WHERE Ville = Paris ; <expression de valeur> peut être : NULL, une constante ou une expression arithmétique contenant des attributs de la table à modifier. En TP à ce semestre, nous utiliserons le SGBD libre MySQL (actuellement utilisé par Google, Facebook, Netflix ). Prochains cours : au tableau! Conseils : prendre des notes organisées (numérotez vos pages, noter la syntaxe de manière différente du reste du cours pour la retrouver facilement en TP par la suite), noter les explications orales et pas seulement le contenu du tableau, bien prendre les définitions mais aussi les exemples et les petits exercices proposés au long du cours.