Conception de bases de données relationnelles

Documents pareils
Le Langage De Description De Données(LDD)

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

Olivier Mondet

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

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

Création et Gestion des tables

Langage SQL : créer et interroger une base

1/ Présentation de SQL Server :

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

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

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

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

TP Contraintes - Triggers

Bases de données et sites WEB

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

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

TP3 : Creation de tables 1 seance

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

Partie II Cours 3 (suite) : Sécurité de bases de données

Cours: Administration d'une Base de Données

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

CREATION WEB DYNAMIQUE

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

MySQL / SQL EXEMPLES

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

Historisation des données

Les bases de données

Auto-évaluation Oracle: cours de base

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

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

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

Bases de données relationnelles

SQL Historique

Bases de Données Avancées

I. MySQL : Serveur et SGBD

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

Gestion des utilisateurs et de leurs droits

Application web de gestion de comptes en banques

Compétences Business Objects

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

Intégrité des données

Les BASES de DONNEES dans WampServer

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

1 Position du problème

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

A QUOI SERVENT LES BASES DE DONNÉES?

CHAPITRE 4 POLITIQUES DE CONTRÔLES DES ACCÈS SOUS ORACLE ADMINISTRATION ET TUNING DE BASES DE DONNÉES 10/05/2015 RESPONSABLE DR K.

LE LANGAGE SQL2 1. INTRODUCTION

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

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

Gestion de base de données

Bases de données relationnelles & SQL

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

CATALOGUE FORMATIONS DOMAINE Bases de données

OpenPaaS Le réseau social d'entreprise

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

I4 : Bases de Données

Le Langage SQL version Oracle

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

WEB DEVELOPER SGBD SYSTEME DE GESTION DE BASES DE DONNEES L étudiant sera capable :

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

Exercices sur SQL server 2000

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

Mejdi BLAGHGI & Anis ASSÈS

Support de cours. Introduction à SQL et MySQL. 2003, Sébastien Namèche

Bases de données Cours 4 : Le langage SQL pour ORACLE

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

SQL Server 2000, Analysis Services et DTS

1. Base de données SQLite

BASES DE DONNEES TP POSTGRESQL

420-PK6-SL Banques de données Avancées. UTILISATEURS (suite)

Master Exploration Informatique des données DataWareHouse

Cours de SQL SERVER 2005 SQL SERVER 2005

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

Résumé S Q L. Auteur: Alexandre PATIN Edition: 22 février alexandre.patin@free.fr URL :

SQL Server Cyril Gruau. 11 février 2003

Gestion des utilisateurs, des groupes et des rôles dans SQL Server 2008

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

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)

Introduction à MySQL (ou MySQL en 3 heures montre en main)

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

NF26 Data warehouse et Outils Décisionnels Printemps 2010

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

UML et les Bases de Données

Bases de données. Mihaela Mathieu

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

Corrigés détaillés des exercices

OFPPT/DRPS/ISGI LAAYOUNE FILIERE : TECHNIQUES DE DEVELOPPEMENT INFORMATIQUE TDI2 MODULE : SYSTEME DE GESTION DE BASE DE DONNES I

INTRODUCTION : Données structurées et accès simplifié

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

Systèmes de Gestion de Bases de Données

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Université de Nice Sophia-Antipolis. Langage SQL. version 5.7 du polycopié. Richard Grin

Introduction aux Bases de Données 2004/2005

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

OpenOffice Base Gestionnaire de Base de Données

Bases de données élémentaires Maude Manouvrier

Transcription:

Conception de bases de données relationnelles Langage SQL Marie Szafranski 2016-2017 ensiie 1 2016-2017 ensiie 1 Création et modification de tables (attributs, types, etc.) Définition des contraintes d intégrité (clés primaires, candidates, etc.) Définition des contraintes référentielles (clés étrangères) Création de vues Suppression d objets (tables, vues, attributs, domaines, etc.) 2016-2017 ensiie 2 2016-2017 ensiie 2

Types de données Types de données Types numériques INTEGER, TINYINT, SMALLINT, LONGINT DECIMAL[(s, t)], NUMERIC FLOAT[(s, t)] Types chaînes de caractères CHAR(l), VARCHAR(l) TEXT Types date (la taille du numérique compte) (la longueur de la chaîne compte) DATE ( AAA-MM-JJ ), DATETIME( AAAA-MM-JJ HH:MM:SS ) YEAR, MONTH, TIME... (le format de la date compte) Autres types RTFM! Monétaires (MONEY) (money money), énumérés (ENUM), séquences (SEQUENCE/SERIAL) Valeur NULL 0, L fait partie du domaine 2016-2017 ensiie 3 2016-2017 ensiie 3 Création de tables Création de tables Définition d un schéma de relation en intension Spécification des attributs et des domaines CREATE TABLE <nom de table>( <nom attribut 1> <type attribut 1> [NOT NULL],. <nom attribut n> <type attribut n> [NOT NULL]); CREATE TABLE Super heros( nom super VARCHAR(20), nom civil VARCHAR(20), prenom VARCHAR(20), age INTEGER(3)); 2016-2017 ensiie 4 2016-2017 ensiie 4

Définition et contrôle de la cohérence d une (ensemble de) donnée(s) création des tables Contrainte sur un attribut Clé primaire Unicité Intégrité référentielle Validité (restriction de domaine) Contrainte sur une table (Après la définition d un attribut) PRIMARY KEY UNIQUE REFERENCES <table> (<attribut(s)>) CHECK (<condition>) (Après la définition de tous les attributs) Clé primaire Unicité Intégrité référentielle PRIMARY KEY (<liste d attributs>) UNIQUE (liste d attributs) FOREIGN KEY (<liste d attributs>) REFERENCES <table> (<liste d attributs>) Validité (restriction de domaine) CHECK (<condition>) 2016-2017 ensiie 5 2016-2017 ensiie 5 (Super exemple) (Super exemple) Contrainte sur un attribut CREATE TABLE Super heros( nom super VARCHAR(20) PRIMARY KEY, nom civil VARCHAR(20), prenom VARCHAR(20), age INTEGER(2) (CHECK age BETWEEN 1 AND 65)); -- UNIQUE NOT NULL Contrainte sur une table CREATE TABLE Super heros pouvoirs( super VARCHAR(20), pouvoir VARCHAR(20), CONSTRAINT pk SHP PRIMARY KEY (super, pouvoir), FOREIGN KEY (super) REFERENCES Super heros (super), FOREIGN KEY (pouvoir) REFERENCES Super pouvoirs (nom pouvoir)); 2016-2017 ensiie 6 2016-2017 ensiie 6

(Autre exemple) (Autre exemple) CREATE TABLE Personne( n ss CHAR(13) PRIMARY KEY, nom VARCHAR(25) NOT NULL, prenom VARCHAR(25) NOT NULL, age INTEGER(3) CHECK (age BETWEEN 18 AND 65), mariage CHAR(13) REFERENCES Personne(n ss), code postal INTEGER(5), pays VARCHAR(50), CONSTRAINT ck Personne UNIQUE (nom, prenom), CONSTRAINT fk Personne Pays FOREIGN KEY (code postal, pays) REFERENCES Adresse (c p, pays)); CREATE TABLE Adresse( c p INTEGER(5) NOT NULL, pays VARCHAR(50) NOT NULL, initiale CHAR(1) CHECK (initiale = LEFT(pays, 1)), PRIMARY KEY (c p, pays)); 2016-2017 ensiie 7 2016-2017 ensiie 7 référentielles (Portée) référentielles (Portée) Suppression ou mises à jour sur les clés étrangères ON DELETE/UPDATE CASCADE ON DELETE/UPDATE RESTRICT 2016-2017 ensiie 8 2016-2017 ensiie 8

Modification d attributs ou de contraintes préalablement définie ALTER TABLE <table> ADD COLUMN (<définition de l attribut>); ALTER TABLE <table> DROP COLUMN (<nom de l attribut>); -- Ajout d un attribut -- Suppression d un attribut -- Modification d un attribut ALTER TABLE <table> ALTER COLUMN (<redéfinition de l attribut>); -- Ajout d une contrainte ALTER TABLE <table> ADD CONSTRAINT (<définition de la contrainte>);... 2016-2017 ensiie 9 2016-2017 ensiie 9 (Super exemple) Super exemple Modification d attributs ou de contraintes préalablement définies CREATE TABLE Super heros( nom super VARCHAR(20) PRIMARY KEY, nom civil VARCHAR(20), prenom VARCHAR(20), age INTEGER(3)); -- table initiale -- modifications ALTER TABLE Super heros ALTER COLUMN nom super TYPE VARCHAR(50); ALTER TABLE Super heros ADD CONSTRAINT u n UNIQUE (nom civil, prenom); ALTER TABLE Super heros DROP COLUMN age; CREATE TABLE Super heros( nom super VARCHAR(50) PRIMARY KEY, nom civil VARCHAR(50), prenom VARCHAR(20), CONSTRAINT u n UNIQUE (nom civil, prenom); -- table modifiée 2016-2017 ensiie 10 2016-2017 ensiie 10

(Remarques) Remarques Modification d attributs ou de contraintes préalablement définies Modification d une table vide sans ALTER Suppression de la table (DROP) et création avec les modifications Plus compliqué si la table est référencée Modification d une table non vide sans ALTER Copie des données dans une table temporaire de même schéma Suppression et création d une table modifiée avec le nouveau schéma Copie des données depuis la table temporaire vers la table modifiée 2016-2017 ensiie 11 2016-2017 ensiie 11 Création de vues Création de vues Définition logique d une relation sans stockage de données Requête stockée (définition) ouvrant une fenêtre dynamique sur les données (résultat) Implantation du concept de schéma externe d un MCD CREATE VIEW <nom de vue> <liste d attributs> AS <spécification de question>; -- nombre et types identiques que dessus CREATE VIEW Super age (super, age) AS SELECT (nom super, age) FROM Super heros; Remarques Lecture d une vue Source d une vue Restitution de l héritage pour tous (modulo les droits accordés) une relation, une autre vue 2016-2017 ensiie 12 2016-2017 ensiie 12

Suppression d objets Suppression d objets Suppression d une relation ou d une vue DROP TABLE <table>; DROP VIEW <table>; DROP TABLE Parvenus; DROP VIEW Parvenus; --! tables référencées 2016-2017 ensiie 13 2016-2017 ensiie 13 Création d utilisateurs Définition de leurs droits SGBD, BD, relations ou attributs Remarque Gestion de la création d utilisateur (CREATE USER) par le SGBD en général 2016-2017 ensiie 14 2016-2017 ensiie 14

Attribution des droits Attribution de droits GRANT <liste de droits> ON <table> TO <utilisateur> [WITH GRANT OPTION]; -- transfert de droits GRANT SELECT, UPDATE ON Super heros TO Edna Mode; GRANT ALL PRIVILEGES ON Super heros TO Government; Liste des droits SELECT INSERT DELETE UPDATE ALTER ALL PRIVILEGES 2016-2017 ensiie 15 2016-2017 ensiie 15 Attribution des droits (Remarques) Attribution de droits (Remarques) Droits sur un SGBD Certains SGBD (MySQL) Droits CREATE et DROP généralement ajoutés (création et suppression de BD et des tables) Droits sur une BD Certains SGBD (MySQL) Droits CREATE et DROP généralement ajoutés (création et suppression de tables) Droits sur une vue Syntaxe quasi-identique (VIEW à la place de TABLE) 2016-2017 ensiie 16 2016-2017 ensiie 16

Révocation de droits Révocation de droits REVOKE [GRANT OPTION FOR] <liste de droits> ON <object> TO <utilisateur> REVOKE UPDATE ON Super heros TO Edna Mode; REVOKE ALL PRIVILEGES ON Super heros TO PUBLIC; Droit supprimé pour un utilisateur U droit supprimé en cascade pour les utilisateurs ayant obtenu le droit par U 2016-2017 ensiie 17 2016-2017 ensiie 17