SQL Server 01
Transcript of SQL Server 01
� Introduction� Installation� Entreprise Manager� Query analyser� Import and Export data� Le langage Transact-
SQL� Les procédures stockées
� Les transactions� Les contraintes� Les triggers� Les vues� Les verrous� La sécurité� Etude de cas� Conclusion
�����������
� Qu’est ce que SQL server ?SQL server est un SGBD Relationnelle.
� De quoi se compose-t-il ?Entreprise ManagerQuery analyserGestionnaire des services SQL serverLes fichiers physiques
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����������
� Réalisé à l’aide d’un assistant.� Une fois l’ installation terminé,il faut changer le mot de passe
par défaut (vide) afin de garantir un niveau de sécurité.
���������� ��
� L’installation de SQL server passe par un logiciel d’installation assisté.
� Il sera nécessaire de disposer au minimum d’un Pentium 166 MHz, de 128 Mo de RAM et 250 Mo de disque dur pour une installation standard.
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
���������� ��
� Les privilèges administrateur� Changement du mot de passe de « sa »
sp_password NULL,’nouveaupasswd’,sa
� Création d’un ensemble de bases de données:MasterModèleMsdbNothwind et PubsTempdb
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
������������������������
� C’est un SGBD relationnel adapté à la gestion des données dans un réseau.
� Les composants essentielles d’un serveur SQL Server:Entreprise Manager,Analyseur de requête et le Gestionnaire de service SQL Server.
� Disposition minimal d’une base de donnée SQL Server:fichier «.mdf » et fichier « .ldf ».
� Les bases de données systèmes crées lors d’installation de SQL Server:Master,Model,Msdb,tempdb,….
��������������������������������
� C’est l’ interface graphique de SQL Server pour la création et administration des bases de données.
� Les différents éléments propre à un serveur SQL:bases de données,data transformation service, gestion , réplication , sécurité,…..
������������
� Editeur puissant de SQL/TSQL Permet d’exécuter des requêtes, de vérifier leur syntaxe et de les stocker dans un fichier .SQL
� Dispose d’outils importants comme le débogueur des procédures stockées
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
�������������� �!��
� Permet d’exécuter des requêtes, de vérifier leur syntaxe et de les stocker dans un fichier dont l’extension est «.sql ».
� Possède des outils importants comme le débogueur,affichage du plan d’exécution,..
����������������
� C’est une interface graphique qui permet de gérer et d’administrer les bases de données
� De quoi se compose Entreprise Manager? - Bases de données - Data transformation service - Gestion - Réplication - Management - Sécurité- Service support
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
�"�������� �#�����$��� ��
DTSRéplication
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
�"�������� �#�����$��� ��
� DTSLe procédé le plus utilisé sous SQL-server pour importer ou exporter des données
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
��"���������������#�������������������
��� Permet de charger dans notre serveur des données en
provenance d’une source extérieur � DTS (Data Transformation Service) est le procédé le plus utilisé
sous SQL Server pour importer ou exporter des données avec d’autre serveur SQL ou des sources variées.
� Mais avant définir une source de donnée utilisateur dans le panneau de configuration à l’aide de pilotes ODBC.
� Exemple :importation d’ une base de donnée Access en une base de donnée SQL Server .
��"���������������#�������������������
��� D’abord définir une source de donnée utilisateur dans le
panneau de configuration
��"���������������#�������������������
%�
&��������
� Les différents types de réplication- snapshot- réplication transactionnelle- réplication fusion
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
&��������� ��
� Assure la cohérence entre les données des différents serveurs , ce qui augmente la disponibilité ainsi que les performance globale du système.
� D’abord configurer le serveur comme distributeur .
� Ensuite on pourra publier notre base de donnée à l’aide de l’assistant publication.
� Enfin on va choisir les données à publier.
&��������� ��
&��������� %���'���������
� (�����)�� ���*�������������������� �� ������
������� ���� � ����������������+����*������������,�-����������������������������� ��������.���,���������������
����������������������-&��/��$�/�0����������
"��������������+����������� �����������������"�"����������
��������������)��,����*������������������������
�� ������������)�� ����� ������������1���������������2�
�������,�
� ������)�� ��������������������������������� ������
�������������*��������������������� ��������� "��.���
��������������,�����""��������"�������.������3
"����������������+)��� ���������*������������,�
&��������� 4���'����)��
� -&��/��$�/�0������0��5��66�78��&���&9�
�8����:�8+��0��5$���+;�<���8����:�8+-'=������"
<��=�����.������
������=�����,�=�����=$�/�=��0��5��66,"�.+��
����8���>7/7<���0��
� ����������������������)��;����"����$&7��
$�/�0�����������������.�����+�..��� '�
$&7��$�/�0������0��5��66�
&��������� ?���'� ���������� � ��������������
� �� ������������ ������������������������������� ��������
�������� ���������������������������������������������������
������������������������������� ������� ���� ������� ������
�!!������"���������������������������������������!���������
������������!!������������������������������ ��� ����
������������������������ ���� �������# �$%����� # ���� ��
�$�������� ���������&� �� ������������ ���'�����
��������������������������������� ����# �$%����� ��������
�(���� � ���������������(���������������� ���������� ���
�� ������ ��� ��������������� )��$������� ���"����������
�����������"�������� ���������� ����������������� ������
&��������� ?���'�*���������� � ��������������
� �� ������������ �������������������������� ������������������������� ����������
�� ��� �# �� ��� "���������������� ������������������������ +
� @�����)���A�������������"��.����������"����������������*����;����.������3
"����� �+�����+�#�������,
� �+���������������������.�*��������������������"�"�����B ����)����"���������..������
������������������*�������������"�"�����B �������������3 �+�*����,
� �+������������*�����+������C���#��������������������"�����,������#�"���;������
������)������� �.�;��������������������������������"���3 �����������������������3
�)� ����)����"���� �����#�"�����+����������+����������)����;���������������"�������
��������)����"�����..����� ����������,
� ���������������*����������������"����C������ �+������ �+������;����"��3 1����������
�������,
� ���������������*�����������+�*���� �������*����������������D��� ������;�7����������
�#�"���,
&��������� E���'��� ��������������!�����
� ,�������� ������������ ��������������"����� ��
���� ���������������������� �������������������������
�����������������������������������������������������
�������!������������������������������������� ��� ���
���������!!���������� ������ ��� ��������������������� �
����%��������������������������������������� ���
$������ �����-��� ����� ������$������ ��� � �$�������
�������� ��� �������������������������������������� ���
���������� ��� ���$������ �����$������ ����������
�� ��� ���-��� ����������
&��������� F���'��� ��������������!�����
���������������������� ��������������� ��� �# �������
� .������ ���������������������� ��# ��� ������(������������# ��!!� ����������������
� ����� ���������!�������������� ��� �������������������# �$��� ���%�������
� �������������������� ������ ������������"����� �� ���������!����������� �������/����
����-��� ����� ����� ��� ��������������!���������������$������ �����$��� ���������� )
� ,�� ���%����� � ��� �������� ��������������������!!� �����
� �������!����������������� ���� ����"���������������"����������0������� ������������ ����
���� ����� ��
� $������������ � ��� ����� ����������������!������������������������������������� �
������ ���/����������� ������ ����������������.� ��/�����"������������������������ �
!������ ����%����� ������ �$�������-��� ���������������� ��� ���������������"����������
���������� �$����������!������ ������ ��� ������������������� � �!���� ���� ��������!�����
��������!���������&�$���1#1�� �������� ����������� '�
������������� ��
� une image complète de la base de données, comprenant la sauvegarde des utilisateurs et droits d'accès et données et les données.
� Deux manières de le faire:Entreprise Manager ou analyseur de requête.
� Création d’un périphérique de sauvegarde qui est simplement un emplacement qui enregistre les sauvegardes .
������������� ��
������������� %�
� Autre manière c’est d’utiliser l’instruction backup
&���������
� Permet la récupération de bases de données à partir d'un moment antérieur.
� Utilisation de Entreprise Manager ou l’instruction Restore.
�����������/������D��� /D����
Introduction
Pourquoi un langage de développement ?
Qu’offre-t-il de nouveau ?
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
��������/������D���
� pourquoi un langage de développement au sein d’une base de donnée?
� Les conventions de nomenclatures:les variables,les variables systèmes,les procédures stockées et commentaires.
� Boucles et structures de contrôles: if else,While.
-��������������"���������
� Les variables : elles commencent toutes par le caractère @, ex : @toto
� Les variables systèmes : elles commencent par une double @, ex : @@identity
� Les curseurs : il ne sont pas précédés d’un @ � Les procédures stockées : commencent par sp_ � Les procédures étendues : commencent par xp� Les indexes : commencent par IX_ � Les clés primaires : commencent par PK � Les clés étrangères : commencent par FK � La mise en commentaire d’une ligne se fait à l’aide de -
-� La mise en commentaire d’un paragraphe se fait à
l’aide de /* */
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����..��������������*1�� ��
� Les variablesDéclaration: Declare @toto type(taille)Exemple: Declare @nom nvarchar(20)� Quelques types
Numericnvarcharntext..
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����..��������������*1�� ��
� Les variables systèmeCe sont des variables initialisées par le système,elles commencent toujours par @@Exemple: @@version donne la version du logiciel
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����..��������������*1�� %�
� Les opérateursT-SQL dispose des opérateursarithmétiques et logiques classiques
� Exemple:+ , - , * , / ,% , = , != , < , >& , | , ^
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����..��������������*1�� 4�
� Les curseursIls permettent de naviguer au sein des enregistrements pour pouvoir effectuer un traitement ligne par ligne
� SyntaxeDéclaration du curseur
DECLARE employe CURSOR FOR SELECTnom,prenomFROM Northwind.dbo.EmployeesWHERE nom LIKE ’B%’
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����..��������������*1�� ?�
Ouverture du curseurOPEN employe
Parcours des enregistrementsFETCH NEXT FROM employe WHILE @@FETCH_STATUS=0 BEGIN
FETCH NEXT FROM employeEND
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����..��������������*1�� E�
Fermeture du curseurCLOSE employe
Destruction du curseurDEALLOCATE employe
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
-��������������������������G��
� Un programme T-SQL nommé et qui peut prendre un ou plusieurs paramètres
� SyntaxeCREATE PROCEDURE sp_nom@param1 TYPE, @param2 TYPE ASsuite d’instructions --code de la procédure
NB: les fonctions sont une variante des procédures
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
�..�������
L’affectation d’une valeur à une variable se fait par deux méthodes:- avec SET:
SET @newvar = @oldvar- avec SELECT:
SELECT @newvar = @oldvarFROM table WHERE oldvar==" toto "
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
���*�����������������
� IF BEGIN{..}ENDELSE BEGIN{..}END
� CASEWHEN condition THEN instructions
END� WHILE condition
instructions� Label:
instructionsGOTO Label
� WAITFOR TIME ’9h12’
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����������������G�� ��
� (����������������G�����������������������
*������������;�"�����3 ��������������
�����+�����������������������""����;� ��
�������������������*�����������������D
"!"�,�$�������������;��������*������
����������������������G���3 �+�������
/������D��� ��� ��� -�&� -�""��
�������� &���"����������+�����������������
������""�����@����������66?����� ���
@���0������-H,�
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����������������G�� ��
� ����C������������;�����������������G�����������������"������� �+����������������"C�����+���������������������������������"�������������.��"���������"C������������3 �������������������������������� I
� ��������������������������������""����� ���..���������������������������*������������;�����""�����+�������+���������������I�
� �������������������������+�����3 �����������������������������������.���+�� �����������������+��)��� ��� ���������������+��)���,
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����������������G�� ��
� SyntaxeCREATE PROCEDURE sp_nom@param1 TYPE, @param2 TYPE AS
DECLARE @var TYPE BEGIN ---les instructions,les
transactions END
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����������������G�� ��
� Avec paramètre d’entréeCREATE PROC note (@CNE INT) AS SELECT *
FROM etudiants
WHERE code_et = @CNE
� Avec paramètre de sortie :CREATE PROC nbetudiants(@effectif INT OUTPUT) AS SET @effectif = (SELECT COUNT(*) FROM classe)
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����������������G�� %�
� ModificationALTER PROC note --- les paramètres AS --- nouveau corps
� SuppressionDROP PROCEDURE note
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����������������G�� 4�
� Utilisationon peut utiliser les procédures
stockées dans du code SQL avec l’instruction exec[UTE]
� Exemple1)- exec note 99977362952)- declare @effectif INT
exec nbetudiants @effectif OUTPUT
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����������������G�� ���'�����"C����
���C"�� ��2������2� �������� &����������.��"�������������������������������������������������������+������*�������+�������,�
� ��2������� &����������.��"����������������������������������!�������G����������������������������,�
� ��2��������� &�����������������*��������������+���������,
� ��2�����-��2��!� &����������.��"�����������������������������������������������������������������������)����,�
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����������������G�� ���'�����"C����
���C"�� ��2!3�-� &����������.��"��������������������������� ������C����������������*����������������������3 �+������������""������ ����������������� ������,�
� ��2�3�-� &����������.��"��������������������������� ��"���������������������*���3 �+������������""������ ����������������� �������
� ��2�� �� 2��!� &�������������������"��+����*�������������������������������+���������,�
� ��2�������2������� &�������+���"*������"������������������.����������������"��C����� �������������*��������������I���������������������������"������������������������������������"�� ��"����"��3 1������� �+��������������"��.�����������������������,
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����������������G�� ���'�����"C����
���C"�� ��2�� ��2������� &����������.��"�����������������������������������"C�������������+�����������������G��,�
� ��2���������� &�������������������#��+������*����� ��,�
� ��2��� ��2� ����� �� &����������.��"�����������������������������������G��,�
� ��2�����2� �������� &����������.��"���������������C������������������������+������*�������+�������,�
� ��2������ &�����������������*1��� ����������.��������������������! ��
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
�#�"���� 4������������������ ���� �� �
,*�%5��.*6,��4*��7��,������8� ���9����
%��
:�7;9�
���,5�56.�<��5����=�$�$�=�8� ��9���=�$�$�=����9���%��8� ���9���8*6>�.� ����,������
�9��
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
-������������������G�������������������1����������������������������
�������������������..�)����������"*��������.������;���������"�
��������"�����#����"�����������.����������������*��������,-������,
,*�%5��.*6,�>�-����9����� ���
?����2������
?��-����� ���645.45
%��
:�7;9�
���,5�?��-�����@%A7&9���'�
8*6>�.� ����,������
B�� �,���2�������� @�?���2����
�9��
�#�"���� ��
�����������/������� ��9�.� ���&,��������� ���'�C�
� -C�
��������� ���� @������ �������������&')�*�������� �@�������/������� -&DC��������7��,������8� ���9����ED')�
F����& ����/�&''�C��-���������� �����& ������� ���&D8� ���9���D'')�E
�������&')�����������&')�E�
������&�/���������'�C���� �������35 ���&')�E�
E
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
(�����������������������G����������������""��J�@�
�#�"���� 4���������������������� ���� �������� ��� �
,*�%5��.*6,��4*��7��;��������>�����
?�����-��;� ;95"�
?������ ;� ;95�645.45
%��
:�7;9�
���,5�?������ ;� @�>����� ;�
8*6>�G����*���� ���������-��
BG�*�������-��;� @�?�����-��;�
�9��
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
-������������������G�����������������������"C����7(/� ��������$�;����
��"*��������;�*�� ����������"C�����8����.� �"�������$�;� �����
�����"���������"*��������,��������������������������������"C����7(/����
��� ��������$ *�� ��� �+�"�������$ �������� ���� ��� ��*���
>�"��&������,�"������
,*�%5��.*6,�>�-����9����� ���
?����2������
?��-����� ���645.45
%��
:�7;9�
���,5�?��-�����@%A7&9���'�
8*6>�.� ����,������
B�� �,���2�������� @�?���2����
�9��
�#�"���� 4���������������� ���� ��$���� �
,*�%5��.*6,��4*��,���3,������,��-&?���-9���,G%*&��''�
%��
:�7;9�
;8�&&���,5�,6495&H'�8*6>�.� ����%�� ���BG�*��,��-�@�?���-9���'�I�<'�
*�54*9�<
����
*�54*9���
�9�
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
-������������������G�������������������������������������6;������ ������
��������.��������������"C�������8�"� .���������������������*���
�����,�����
�#�"���� 4����������������������� �����������# ��� �
,*�%5��5%:��5���5����
&,��<���� ;��95;5J"�,������ ��� &��'"�,��K����')�
,*�%5��.*6,��4*��4�����5���5����
?,������ ��� &��'"�
?,��K����
%��
:�7;9�
4.�%5��5���5������5�,����@�?,���"�,��K�@�?,��K�
�9�)
- Introduction- Installation- EntrepriseManager
- Query analyser- Import andExport data
- Le langage T-SQL
- Les transactions- Les contraintes- Les triggers- Les vues- Les verrous- Les procéduresstockées
- La sécurité- Etude de cas- Conclusion
����A������*����������������������G���������������+�#�"�������*������
�������������������66?����������K��G