14/06/2021 1 Elément : Bases de Données Cycle Ingénieur/ ENSAF 1ère Année Abdel

14/06/2021 1 Elément : Bases de Données Cycle Ingénieur/ ENSAF 1ère Année Abdelhak BOULAALAM abdelhak.boulaalam@usmba.ac.ma https://sites.google.com/a/usmba.ac.ma/boulaalam/ 1 ©Boulaalam/SMBA University • Elément 2: Partie 1 • Système de BD, SGBD • Architecture de base de données • Utilisateurs et administrateurs de bases de données • Histoire des systèmes de bases de données • Elément 2: Partie 2 • Algèbre relationnelle - Relational Algebra • Elément 2: Partie 3 1- Introduction à SQL Elément 2 : Partie 3 Elément 2 : Partie 3 1- Introduction à SQL Introduction à SQL - Outline Outline - 2 14/06/2021 2 ©Boulaalam/SMBA University • Elément 2: Partie 3 1- Introduction à SQL SQL : Introduction et historique SGBDR - RDMS : Architecture Fondements SQL Vue d'ensemble du langage de requête SQL Définition des données SQL Structure de requête de base des requêtes SQL Opérations de base supplémentaires Définir les opérations Valeurs nulles Fonctions d'agrégation Sous-requêtes imbriquées Modification de la base de données Elément 2 : Partie 3 Elément 2 : Partie 3 1- Introduction à SQL Introduction à SQL - Outline Outline - 3 ©Boulaalam/SMBA University 4 Introduction à SQL: History Les 2 grandes partie du SQL A. BOULAALAM 14/06/2021 3 ©Boulaalam/SMBA University Introduction à SQL History SQL- Historique • Modèle Relationnel proposé par E. F. Codd en 1970. • D. D. Chamberlin et d'autres du IBM ont développé le langage appelé SQL, ou Structured Query Language, • Comme sous-langage de données pour le modèle relationnel. • Initialement orthographié SEQUEL, le langage a été décrit dans une série d'articles à partir de 1974, et il a été utilisé dans un prototype de système relationnel appelé System R, de IBM fin des années 1970. 5 Introduction to SQL ©Boulaalam/SMBA University SQL- Historique • Ingres, un autre prototype de système de gestion de bases de données relationnelles, a été développé à l'Université de Californie. • Le système R a été évalué et affiné sur une période de plusieurs années, et il est devenu la base du premier système de gestion de base de données relationnelle d'IBM, SQL / DS, qui a été annoncé en 1981. • Le DB2 d'IBM, utilisant également SQL comme langage, a été publié en 1983. • Microsoft SQL Server, MySQL, Informix, Sybase, PostgreSQL, Microsoft Access et de nombreux autres systèmes de gestion de bases de données relationnelles ont également incorporé SQL. 6 Introduction Introduction à SQL History 14/06/2021 4 ©Boulaalam/SMBA University Introduction à SQL History SQL- Historique • L'American National Standards Institute (ANSI) et l'Organisation internationale de normalisation (ISO) ont adopté SQL comme langage standard pour les bases de données relationnelles et publié des spécifications pour le langage SQL à partir de 1986. • Cette norme est généralement appelée SQL1 ou SQL-86 • Une révision mineure, appelée SQL-89, a été publiée trois ans plus tard. 7 Introduction ©Boulaalam/SMBA University Introduction à SQL History SQL- Historique • Une révision majeure, SQL2, (SQL-92) a été adoptée par l'ANSI et l'ISO en 1992. • La norme SQL3 a été développée au fil du temps, avec des parties majeures publiées en 1999, 2003, 2006 et 2008. • Les nouvelles fonctionnalités comprenaient des capacités de gestion de données orientées objet, des déclencheurs, nouveaux types de données, prise en charge de XML et autres fonctionnalités. • La prise en charge des bases de données temporelles a été ajoutée à la norme en 2011. • La dernière version est SQL:2016 8 Introduction 14/06/2021 5 ©Boulaalam/SMBA University Introduction à SQL History SQL- Historique (Fin) • La plupart des fournisseurs de SGBD relationnelles ont ajouté des fonctionnalités à la norme et utilisent leurs propres extensions du langage, créant une variété de dialectes autour de la norme. • Étant donné que certaines parties de la norme actuelle sont facultatives, tous les fournisseurs ne fournissent pas l'ensemble complet des fonctionnalités décrites dans la norme. • Cette partie se concentrera sur les fonctionnalités strictement relationnelles les plus utilisées qui sont disponibles dans la plupart des SGBD relationnels. 9 Introduction ©Boulaalam/SMBA University Introduction à SQL SQL Parts Les Parties SQL • DML - offre la possibilité d'interroger des informations de la base de données et d'insérer des tuples, de supprimer des tuples et de modifier des tuples dans la base de données. • intégrité - le DDL inclut des commandes pour spécifier les contraintes d'intégrité. • Définition de vue - Le DDL inclut des commandes pour définir des vues. • Contrôle des transactions - comprend des commandes permettant de spécifier le début et la fin des transactions. • Embedded SQL et SQL dynamique - définissent comment les instructions SQL peuvent être intégrées dans des langages de programmation à usage général. • Autorisation - inclut des commandes pour spécifier les droits d'accès aux relations et aux vues. 10 Introduction 14/06/2021 6 ©Boulaalam/SMBA University Introduction à SQL note Note • Les commandes données dans ce support utilisent généralement la syntaxe Oracle et peuvent nécessiter de légères modifications pour s'exécuter sur d'autres SGBD. 11 Introduction ©Boulaalam/SMBA University 12 SQL DDL - Data Definition Language A. BOULAALAM 14/06/2021 7 ©Boulaalam/SMBA University SQL DDL - Data Definition Language • Le langage de définition de données SQL (DDL) permet de spécifier des informations sur les relations, notamment: • Le schéma de chaque relation. • Le type de valeurs associées à chaque attribut. • Les contraintes d'intégrité • L'ensemble des indices à maintenir pour chaque relation. • Informations de sécurité et d'autorisation pour chaque relation. • La structure de stockage physique de chaque relation sur le disque. 13 SQL Data Definition ©Boulaalam/SMBA University SQL DDL - Data Definition Language DDL – les types de base (atomique) par le standard SQL • char(n): une chaîne de caractères de longueur fixe n. • varchar(n): une chaîne de caractères de longueur variable avec une longueur maximale n. • int: un entier (un sous-ensemble fini d'entiers qui dépend de la machine). • smallint: un petit entier (un sous-ensemble dépendant de la machine de type entier). • numeric(p, d) : Un nombre à virgule fixe avec une précision spécifiée par l'utilisateur. Le nombre est composé de p chiffres (plus un signe), et d des p chiffres se trouvent à droite de la virgule décimale. numeric((3,1) permet de stocker exactement 44,5, mais ni 444,5 ni 0,32 ne peuvent être stockés exactement dans un domaine de ce type. • real, double precision: nombres à virgule flottante et double précision à virgule flottante avec précision dépendante de la machine. • float(n) : nombre à virgule flottante avec une précision d'au moins n chiffres. 14 SQL Data Definition 14/06/2021 8 ©Boulaalam/SMBA University SQL DDL - Data Definition Language CREATE TABLE - Syntaxe 15 CREATE TABLE CREATE TABLE r (A1 D1, A2 D2, ..., An Dn, ⟨integrity-constraint1⟩, …, ⟨integrity-constraintk⟩); CREATE TABLE department (dept_name varchar (20), building varchar (15), budget numeric (12,2), primary key (dept_name)); CREATE TABLE instructor ( ID char(5), name varchar(20), dept_name varchar(20), salary numeric(8,2)) ©Boulaalam/SMBA University SQL DDL - Data Definition Language CREATE TABLE • Utilisée pour créer les tables. • Utilisé à tout moment pendant le cycle de vie du système, • le développeur de la base de données peut commencer avec un petit nombre de tables et les ajouter à mesure que des applications supplémentaires. • Comme dans le modèle relationnel abstrait, les lignes sont considérées comme non ordonnées. • Cependant, les colonnes sont ordonnées de gauche à droite, pour correspondre à l'ordre des définitions de colonnes dans la commande CREATE TABLE. 16 CREATE TABLE 14/06/2021 9 ©Boulaalam/SMBA University SQL DDL - Data Definition Language CREATE TABLE et contraintes d intégrité • Exemple SQL DDL pour le schéma de base de données university 17 CREATE TABLE ©Boulaalam/SMBA University SQL DDL - Data Definition Language CREATE TABLE et contraintes d intégrité Types de contraintes d'intégrité primary key (A1, ..., An ) foreign key (Am, ..., An ) references r not null • SQL empêche toute mise à jour de la base de données qui viole une contrainte d'intégrité. Exemple: 18 CREATE TABLE et contraintes d intégrité create table instructor ( ID char(5), name varchar(20) not null, dept_name varchar(20), salary numeric(8,2), primary key (ID), foreign key (dept_name) references department); 14/06/2021 10 ©Boulaalam/SMBA University SQL DDL - Data Definition Language CREATE TABLE et contraintes d intégrité Exemple: 19 CREATE TABLE et contraintes d intégrité create table takes ( ID varchar(5), course_id varchar(8), sec_id varchar(8), semester varchar(6), year numeric(4,0), grade varchar(2), primary key (ID, course_id, sec_id, semester , year) , foreign key (ID) references student, foreign key (course_id, sec_id, semester , year) references section); ©Boulaalam/SMBA University SQL DDL - Data Definition Language CREATE TABLE et contraintes d intégrité • Remarque: Certains SGBD, y compris MySQL, nécessitent une syntaxe alternative, “foreign key (dept_name) references department (dept_name)”, (où les attributs référencés dans le référencé sont répertoriés explicitement). 20 CREATE TABLE 14/06/2021 11 ©Boulaalam/SMBA University SQL DDL - Data Definition Language CREATE TABLE et contraintes d intégrité • not null: cette contrainte pour un attribut spécifie que la valeur nulle n'est pas autorisée pour cet attribut la contrainte exclut la valeur nulle du domaine de cet attribut. 21 CREATE TABLE ©Boulaalam/SMBA University SQL DDL - Data Definition uploads/Litterature/bd-partie-3-sql-les-fondements-version-short-2021.pdf

  • 40
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager