Le cabinet « Nos petits amis » regroupe 2 vétérinaires : le docteur Gabrielle Burel et son père le docteur Pierre Burel.

Le docteur Gabrielle Burel soigne notamment :

  • le chat Pompon d’Aimable Castagnier, qui a consulté le 15/09/2013 pour un problème oculaire et le 20/09/2013 pour un problème rénal,
  • Aimable Castagnier a également consulté pour son chat Pomponnette le 20/09/2013 pour la faire vacciner,
  • la souris Jerry de Madame Madeleine Aimée, qui a consulté le 03/09/2013 pour une plaie à la patte.

Le docteur Pierre Burel soigne notamment :

  • Le chien Snoopy de Charly Brown, qui a consulté le 10/09/2013 pour des troubles du sommeil
  • le chat Azrael de Monsieur Jules Gargamel, qui a consulté le 01/09/2013 pour des problèmes comportementaux.

Deux scripts vous sont fournis.

  1. Réaliser le MLD en fonction du premier script fourni
  2. Créer la base en fonction du premier script.
  3. Insérer les données correspondantes au texte précédent. Une erreur sera générée lors d’une insertion. Pourquoi ? Quelle solution ? Ne pas la résoudre.
  4. Supprimer Snoopy. Que se passe t il ?
  5. Installer le deuxième script dans une nouvelle base de données et réaliser les mêmes insertions
  6. Supprimer Snoopy. Que se passe t il ? (problème) Quelle solution ?
  7. Pour faire face à la demande croissante des clients, le cabinet recrute trois autres médecins. Modifier le MLD pour qu’il puisse accueillir cette nouvelle contrainte. On souhaite sauvegarder le nom, le prénom et le numéro de téléphone des nouveaux médecins.
  8. Modifier la base en supprimant le champ prénom des consultations et en ajoutant la clef étrangère.

Script 1 :

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--

-- Base de données: `td1`

--

-- --------------------------------------------------------

--

-- Structure de la table `animal`

--

CREATE TABLE IF NOT EXISTS `animal` (

`numAnimal` int(11) NOT NULL AUTO_INCREMENT,

`nom` varchar(20) NOT NULL,

PRIMARY KEY (`numAnimal`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--

-- Contenu de la table `animal`

--

INSERT INTO `animal` (`numAnimal`, `nom`) VALUES

(1, 'Pompom');

-- --------------------------------------------------------

--

-- Structure de la table `consultation`

--

CREATE TABLE IF NOT EXISTS `consultation` (

`numeroProprio` int(11) NOT NULL,

`numeroAnimal` int(11) NOT NULL,

`dateConsultation` date NOT NULL,

`raison` varchar(20) NOT NULL,

`prenomMedecin` varchar(20) NOT NULL,

PRIMARY KEY (`numeroProprio`,`numeroAnimal`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--

-- Contenu de la table `consultation`

--

-- --------------------------------------------------------

--

-- Structure de la table `proprietaire`

--

CREATE TABLE IF NOT EXISTS `proprietaire` (

`numProprio` int(11) NOT NULL AUTO_INCREMENT,

`nomProprio` varchar(20) NOT NULL,

`prenomProprio` varchar(20) NOT NULL,

PRIMARY KEY (`numProprio`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--

-- Contenu de la table `proprietaire`

--

Script 2 :

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--

-- Base de données: `td1`

--

-- --------------------------------------------------------

--

-- Structure de la table `animal`

--

CREATE TABLE IF NOT EXISTS `animal` (

`numAnimal` int(11) NOT NULL AUTO_INCREMENT,

`nom` varchar(20) NOT NULL,

PRIMARY KEY (`numAnimal`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--

-- Contenu de la table `animal`

--

INSERT INTO `animal` (`numAnimal`, `nom`) VALUES

(1, 'Pompom');

-- --------------------------------------------------------

--

-- Structure de la table `consultation`

--

CREATE TABLE IF NOT EXISTS `consultation` (

`numeroC` int(11) NOT NULL AUTO_INCREMENT,

`numeroProprio` int(11) NOT NULL,

`numeroAnimal` int(11) NOT NULL,

`dateConsultation` date NOT NULL,

`raison` varchar(20) NOT NULL,

`prenomMedecin` varchar(20) NOT NULL,

PRIMARY KEY (`numeroC`),

KEY `numeroAnimal` (`numeroAnimal`),

KEY `numeroProprio` (`numeroProprio`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--

-- Contenu de la table `consultation`

--

-- --------------------------------------------------------

--

-- Structure de la table `proprietaire`

--

CREATE TABLE IF NOT EXISTS `proprietaire` (

`numProprio` int(11) NOT NULL AUTO_INCREMENT,

`nomProprio` varchar(20) NOT NULL,

`prenomProprio` varchar(20) NOT NULL,

PRIMARY KEY (`numProprio`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--

-- Contenu de la table `proprietaire`

--

--

-- Contraintes pour les tables exportées

--

--

-- Contraintes pour la table `consultation`

--

ALTER TABLE `consultation`

ADD CONSTRAINT `consultation_ibfk_2` FOREIGN KEY (`numeroAnimal`) REFERENCES `animal` (`numAnimal`),

ADD CONSTRAINT `consultation_ibfk_1` FOREIGN KEY (`numeroProprio`) REFERENCES `proprietaire` (`numProprio`);