ابزار ایجاد پایگاه داده و تست آن

ابزار ایجاد پایگاه داده در sql server

توسط admin | گروه SQL Server | 1396/08/07

نظرات 0

 آشنايي با محيط  QUERY ANALYZER   ، نحوه ايجاد پايگاه داده  وجداول

مقدمه :آشنايي با RDBMSها
 از زماني که در سال 1970مقاله آقاي کادتحت عنوان "مدل رابطه اي داده ها براي بانک هاي اطلاعاتي اشتراکي بزرگ" منتشر شد ، زمان زيادي نمي گذرد. بعد از مطرح شدن اين ايده پروژه تحقيقاتي تحت عنوان  SYSTEM/Rدر IBM شکل گرفت که حاصل آن ايجاد اولين DBMS وزبان SQL بود. از آن زمان شرکت هاي مختلفي به توليدDBMS هاپرداختندتا اين که در سال1988،SQL-SERVER معرفي شد. علاوه بر اين در سال 1986، SQL توسطANSI  استاندارد شد. نسخه اي از اين زبان را ، تحت عنوان TRANSACT-SQL استفاده مي نمايد. همان گونه که مي دانيد زبان  SQL غيررويه اي است يعني در آن تنها درخواست کاربرارائه مي گرددوالگوريتم لازم براي اجراي آن توسط بخش هايي ازDBMS(بهينه ساز) توليد مي گردد .
آموزش sql
هرسيستم مديريت پايگاه داده اي بر مبناي مدل رابطه اي ،يک RDBMS ناميده مي شود .اين سيستم هاازدو بخش عمده به شرح زيرساخته شده اند:
 1- هسته :که کارهاي مديريتي را انجام مي دهد.
2-  فرهنگ داده ها(DataDictionary ) : که شامل اطلاعاتي در مورد عناصرواشياء مختلف پايگاه داده اي تعريف شده           مي باشد ازقبيلsysobjectsکه مشخصات اشياءمختلف تعريف شده درآن نگهداري مي گردد ياsysindexes و   syscolumns    که مشخصات شاخص هاومشخصات ستون هاي تعريف شده در آن ها ذکر مي گردد.
 
آشنايي با SQL-SERVERبه عنوان يک RDBMS 
                 براي راهبري پايگاه داده ها،  SQL-SERVERدو واسط گرا فيکي به نام هاي Enterprise Manager وQuery Analyzer را در اختيار قرار مي دهد. دراين مرحله فرض مي کنيم يک سرور ثبت شده وتعدادي شي Login وتعدادي پايگاه داده تعريف شده برروي آن داريم بنابراين ازمباحث مربوط به آنها فعلا چشم مي پوشيم . علاوه بر اين فرض مي کنيم که سرور فوق در حال سرويس دهي است.Query Analyzer اولين واسطي است که به کمک آن مي توانيد پرس وجو هاي T-SQLوتوابع و روال هاي ذخيره شده را اجرا کنيد . پس ازورودبهQuery Analyzer اطلاعات Login از شما خواسته مي شود که مي توانيد از تاييد اعتبار خود ويندوز استفاده کنيدو به اين محيط وارد شويد. اين محيط از دوپنجره اصلي تشکيل شده است. درپنجره سمت چپ با نام  Object Browserمي توانيد اشيايي از قبيل نام سروري که به آن متصل شده ايد، پايگاه داده هاي موجود وبقيه اشياء اصلي مورد استفاده درSQL-SERVER را مشاهده وويرايش کنيد. در اين قسمت اشياء به صورت ساختار درختي نمايش داده مي شوند. در هرسرور موجود حداقل چهارپايگاه داده زير موجود است :
1-Master : شامل تمامي اطلاعات لازم براي مديريت پايگاه، مانند پايگاه داده هاي تعريف شده ومشخصات کاربران  و    رويه هاي ذخيره شده سيستمي وپيام هاي خطاست. جداولي که در اين پايگاه داده موجود است معمولاکاتالوگ سيستم      ناميده مي شود .
2- Model : يک الگو براي ساخت پايگاه داده هاي جديد است وهر شي موجود در آن ،در پايگاه داده هاي جديد ايجاد  مي شود. براي مثال اگر يک شناسه کاربر جديد در آن قرار دهيد ،در تمامي پايگاه هايي که بعد ازاين ايجاد مي شوند اين شناسه هم وجود دارد .
3-Msdb : در نگهداري  برنا مه هاي زمان بندي  سيستم وJob ها وتاريخچه نسخه هاي پشتيبان کاربرد دارد .
4-  Tempdb: محل موقتي براي اشيائي است که نياز به فضاي موقتي دارند .
در زير پنجرهobject browser ،با کليک بر روي تب Templates مي توانيد بهTemplate هاي موجود در مورد هر شي دسترسي داشته باشيد . پنجره ديگر موجود در محيط Query Analyer پنجره پرس وجو است که از آن براي اجراي پرس وجو هاي تعاملي استفاده مي شود .
براي اجراي اسکريپت ها (مجموعه هايي از دستورات ) بايد يکي از پايگاه هاي داده اي موجود به عنوان پايگاه داده  جاري انتخاب شود. براي اين کار از دستورUSE، استفاده مي شود. اين پنجره از دو قسمت تشکيل شده است، که يکي براي ويرايش دستورات و ديگري براي نمايش نتايج به کار مي رود. (قسمت اخير بعداز اجراي يک اسکريپت قابل مشاهده است.)کاربر مي تواند با استفاده از گزينهQuery، نحوه نمايش اين خروجي ها را به حالت Gridيا Textتنظيم کند يا يک فايل را به عنوان محل ذخيره خروجي هاي Query  تعريف نمايد .
 
به ثبت رساندن وحذف وتغيير يک  پايگاه داده جديد درSQL-SERVER
   اصولا اطلاعات موجود در هر پايگاه داده در فايل ها ي آن پايگاه داده نگهداري مي شوند. اين امکان وجود دارد که فايل هاي مختلف ،گروه هاي مختلفي را تشکيل دهند که هر فايل به يکي از آن ها اختصاص داشته باشد در اين صورت مي توان اشياء پايگاه داده را در يک فايل خاص يا فايل هاي يک گروه ذخيره کرد. علاوه بر اين مثلا دراعمالي مانند پشتيباني (backup) مي توان به جاي کل پايگاه داده اي، گروه هاي فايل اصلي را پشتيباني کرديا بااعمال برنامه زماني مورد نظر، هر يک از گروه هارامستقلاپشتيباني کرد. براي پايگاه داده هاي تعريف شده در SQL-SERVER سه نوع فايل قابل تصور است :
1-  فايل هاي Primary( باپسوند .mdf) :که حاوي اطلاعات راه اندازي پايگاه هستند وبه بقيه فايل هاي پايگاه داده ها         اشاره دارند . 
2-  فايل هاي Secondary( باپسوند .ndf) : بقيه فايل هاي داده اي به جز فايل هاي داده اي اصلي در اين گروه  قرار               مي گيرند .
3- فايل هاي Log( باپسوند .ldf) : براي ثبت تراکنش هاي موجود در پايگاه به کار مي روندو عضو هيچ گروه فايلي           نيستند. براي بسياري از پايگاه هاي داده اي معرفي گروه 1و3کافي است وممکن است پايگاه داده اي چندين فايل از          نوع دوم داشته باشد يا هيچ فايلي از اين نوع نداشته باشد. يک فايل نمي تواند عضو بيش ازيک گروه فايلي باشد وفايل       هاي سيستم در گروه فايل Primary قرار مي گيرند. (براي اطلاعات بيشتر در مورد نحوه استفاده از اين امکان در عمل       مي توانيد به مراجع SQL-SERVERمراجعه کنيد .)
 
ايجاد جداول پايگاه داده
        اين جداول به منظور تعريف فيلدهاي مورد استفاده در ايجاد يک پايگاه داده اي مورد استفاده قرار مي گيرند که در قسمت پيوست ساختار کلي يک جدول آورده شده است .
درهرجدول پايگاه داده اي براي اطمينان از درستي مقادير فيلدها انواع جامعيت داده اي، مورداستفاده قرار مي گيرد که ازانواع آن مي توان به موارد زير اشاره کرد :
کليداصلي(primarykey) :که شامل يک ياچندستون است که مقاديرموجود دردوسطر از ستون ها  نميتوانند يکسان  باشند.  همچنين کليد اصلي نمي تواند مقدارتهي بپذيرد .
کليد کانديدا(unique) : مانند کليداصلي است با اين تفاوت که درستون هاي تعريف شده به عنوان کليد کانديدا                مي تواند مقدار تهي هم وارد شود .
کليد خارجي(foreignkey) : براي ايجاد ارتباط بين داده هاي جداول پايگاه داده اي ، ازيک يا ترکيبي از چند ستون  با عنوان کليد خارجي استفاده مي شود به طوري که داده هاي يک جدول با مقاديرکليد اصلي جدول مرتبط با آن پرمي شود.
Check : مقادير قابل پديرش يک ستون توسط اين محدوديت کنترل مي شود .
Constraints :  براي اعمال محدوديت هاي داده اي ، مانند کليداصلي ،کليد خارجي و کليد کانديدا وcheckمورد  استفاده قرار مي گيرد .
ستون هاي محاسباتي در تعريف جداول
    اين ستون ها عبارت به کار رفته براي محاسبه داده را به جاي خودداده ذخيره مي کنند و قواعد زير را دارند :
ستون هاي ارجاع شده در عبارت ستون محاسباتي بايد در همان جدول باشند .
ستون محاسباتي شامل subquery  نيست .
اين ستون ها به عنوان جزئي از کليد يا انديس به کار نمي روند .
نمي توانند محدوديتي از نوع  default داشته باشند .(چرا؟)
در دستورات  insert وupdate ارجاعي به آن ها نداريم .
مثال1 :
Create table author
(au_id1  int primary key clustered,
unique nonclustered,  au_id2  int 
 au_degree smallint,
 au_name char(16) not null,
 au_family char(16) not null,
 au_address char(30) null)
 CONSTRAINT au_degree_chk check((au_degree>=0) and(au_degree<=100)
در جدول تعريف شده بالا ،براي هر نويسنده دو شماره ازنوع int تعريف شده که روي اولي شاخص خوشه اي و روي دومي شاخص غيرخوشه اي قرارگرفته است. علاوه بر اين روي شماره دوم محدوديت يکتا بودن اعمال مي شود. سومين ستون نيز به درجه نويسنده اشاره مي کند که با  checkروي آن محدوديت بازه اي اعمال مي شود . 
 
جدول هاي موقتي
    اين جداول  زماني که اتصال به سرورقطع شود از بين مي روند. مهم ترين انواع جدول هاي موقتي مانند متغيرهاانواع عمومي و محلي هستند. تفاوت اين دو نوع در اين است که ازجداول سراسري همه کاربران سيستم مي توانند استفاده کنندو با ## شروع مي شوند. جداول محلي  فقط براي کاربر سازنده خود قابل استفاده هستند و با # شروع مي شوند. براي ايجاد اين جداول از دستور  CREATEاستفاده مي شود : 
CREAET TABLE #myTmpTable
(Name VARCHAR(30) NOT NULL                                                         
ADDRESS VARCHAR(50))
از دستور SELECT ---INTO مي توان براي تعريف و پرکردن يک جدول موقتي به صورت همزمان استفاده کرد .
Select Name,Cname        INTO #myTmpTable
From STD AS S
 INNER JOIN
CRS AS C
 ON C.S#=S.S#
 
شاخص ها در SQL-Server
  شاخص ها در  SQL-Serverاشياء خاصي هستند که اين امکان را فراهم مي آورند که بتوان بر اسا س مقادير يک يا چند ستون به سرعت به سطر هاي يک جدول دسترسي پيدا کرد.  SQL-Server، دو نوع شاخصClustered و   Nonclustered  رادر اختيار کاربر براي تعريف قرار مي دهد .SQL-Server براي پياده سازي شاخص ها از ساختار          B-TREEاستفاده مي کند که در آن برگ ها حاوي داده هاي واقعي هستند .
 1- شاخص  Clustered: دراين نوع شاخص ، داده ها واقعا از نظر فيزيکي مرتب مي شوند. در اين نوع انديس برگ ها          داده هاي واقعي هستند . هميشه با معرفي يک ستون به عنوان کليد اصلي به صورت خودکار روي آن يک شاخص         Clustered       ساخته مي شود . 
2- شاخص  Nonclustered: در اين نوع شاخص برگ ها بر مبناي ستون هايي که به عنوان شاخص تعريف شده اند            مرتب مي شوند ولي تفاوت آن با نوع قبلي اين است که در صورتي که قبلا روي جدول شاخص   Clusteredايجاد        نشده باشد برگ هاي انديس Nonclustered حاوي آدرس ذخيره تاپل(ونه خود تاپل ) متناسب با کليد شاخص شده      است ودرغيراين صورت حاوي مقدار کليد شاخص دارمتناسب با آن تاپل هستند .
با توجه به توضيحات بالا رعايت نکات زير توصيه مي شود :
براي ستون داراي شاخص  Clusteredاز مقاديرحجم داراستفاده نکنيد. زيرا علاوه بر اينکه زمان جستجو در ستون با شاخص Clusteredافزايش مي يابد ، حجم ذخيره سازي شاخص هاي  Nonclustered هم افزايش  مي يابد. (چرا ؟ )
نکته:   سعي کنيد ابتدا شاخصClustered را ايجا دکنيد و بعد شاخص هاي   Nonclustered راتعريف کنيد . (چرا ؟)
 تعريف شاخص:
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name 
    ON { table | view } ( column [ ASC | DESC ] [ ,...n ] ) 
[ ON filegroup ]
توضيح بعضي پارامترهاي تعريف بالا:
کلمه کليدي Unique مشخص مي کند که مقادير تکراري در شاخص غيرمجازند.
ASCبيان کننده اين است که مي خواهيم شاخص به صورت صعودي ساخته شود .DESC نيز درخواست نزولي بودن شاخص را بيان ميکند.
با استفاده از گزينه ON filegroup مي توان يکي از گروه هاي فايلي را به عنوان محل ذخيره شاخص معرفي کرد .
مثال 2: فرض کنيد مي خواهيم شاخصي با نام Snumindex  را روي ستون شمار ه دانشجويي به صورت نزولي در جدول STD ايجاد کنيم :
Create  clustered index Snumindex on STD(S# DESC )
On Primary
سوال : فرض کنيد درخواست هاي زيادي  مطرح مي شود که در آن ها معمو لا در گزينه Where  سوال روي شماره دانشجويي هاي پايين  مطرح مي شود آياحذف کردن اين انديس مي تواند زمان پاسخگويي ر ابه طور نسبي افزايش دهد؟

تغيير يک جدول 
ALTER TABLE author 
ADD column_b  INT  IDENTITY     
اضافه کردن يک ستون با محدوديت کليد اصلي 
CONSTRAINT column_b_pk PRIMARY KEY, 
/* Add a column with a constraint to enforce that   */ 
/* nonnull data is in a valid phone number format.  */
column_d VARCHAR(16) NULL 
CONSTRAINT column_d_chk
CHECK 
(column_d IS NULL OR 
 column_d LIKE "[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]" OR
 column_d LIKE
 "([0-9][0-9][0-9]) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]"),
 
/* Add a nonnull column with a default.  */ 
column_e DECIMAL(3,3)
CONSTRAINT column_e_default
DEFAULT .081
 توجه : براي انجام آزما يش ها سينتکس دستورات  create database، Alter database، create table،Alter table و انواع داده اي موجود در ضميمه را مطالعه کنيد. 
 
دستور کار:
بخش اول-آشنايي با Query Analyzer ونحوه اجراي دستورات T-SQL 
1-  بعد از loginکردن با نام عبوري که به شما داده مي شود و روي سروري که به شما معرفي مي شود وارد محيط Query Analyzer      شويد .
2-  روي سروري که به آن Loginکرده ايد کليک کنيد وپايگاه داده هاي موجود روي اين سرور را مشاهده کنيد .چه          پايگاه داده هايي روي اين سرور به ثبت رسيده است؟
3-  به کمک دستور exec رويه هاي ذخيره شده  sp_help   (براي پايگاه داده  pubs ) و sp_help dbرا  اجرا کنيد .       در پنجره results  خروجي هايي هر کدام را مشاهده مي کنيد . در مورد  عملکرد آن ها توضيح دهيد؟
      ( اين دوازرويه هاي ذخيره شده (stored procedure) سيستمي هستند که بعدا با نحوه ايجاد ومديريت اين رويه ها              آشنا مي شويد .)
4- الف- اسکريپت زير  را به يکباره اجرا کنيد ويک فايل را به عنوان محل ذخيره خروجي ها تعريف کنيد . ( دسته              مجموعه اي  از دستورات T-SQL است که  همگي به يکباره به موتور پايگاه ارسال مي شوند و کامپايل وبهينه سازي و       اجرا مي شوند. اسکريپت نيزمجموعه اي از يک يا چند دسته است که به صورت گروهي ذخيره مي شوند. از اسکريپت       ها براي مثلا بخشي از کار بارگذاري داده ها (Data overloading )يا نگهداري پايگاه داده استفا ده مي شود. مثلا         اگر نياز به انجام چندکارمستقل باشد، اسکريپتي از چنددسته مي نويسيم و براي مشخص کردن دسته ها از هم از Goدر       بين آنها استفاده مي کنيم. بدين ترتيب خطاهاي روي هر دسته اعم از کامپايل ياخطاهاي زمان اجرا ، اجراي دسته هاي        قبلي وبعدي را مختل نمي کند . )
Use pubs
Select *  from authors
Go
Use Northwind
Select EmployeeID from Employees
where City='London'
 
ب-  در دسته دومEmployeeID  را بهEmployee تغييردهيدواين اسکريپت رااجرا کنيد . آياتغيير يک دسته دراجراي        کل اسکريپت  تاًثير گذار است ؟ توضيح دهيد.
بخش دوم -  ايجاد يک پايگاه داده جديد 
1- اسکريپتي براي ايجاد پايگاه داده اي بانا م Testبا مشخصات زير اجرا کنيد :
يک فايل اصلي با مشخصات اندازهMB 20 باحداکثررشد مساوي 100MBو با رشد 2MBدرهربارودر گروه فايل اصلي
يک فايل ثانويه با مشخصات اندازه  5MBحداکثر اندازه 10MBوبا رشد 1MBو در گروه فايلي با نام test واين گروه فايلي را گروه فايلي پيش فرض قرار دهيد .
يک فايل ثبت تراکنش(log file ) با مشخصات اندازه 10MB حداکثر اندازه 30MBوبا رشد 20%
2- رويه هاي ذخيره شدهsp_helpfilegroup وsp_helpfile را روي پايگاه داده اي که ايجاد کرده ايد اجرا کنيد .   چه خروجي هايي مشاهده مي کنيد ؟
3- اسکريپتي را اجرا کنيد که گروه فايلي test وفايل هاي آن را حذف کند . (اصولا براي حذف هر گروه فايلي ابتدا گروه     فايلي ديگري رابه عنوان گروه فايل پيش فرض تعريف ميکنيم در صورتي که گروه فايلي حذف شوند پيش فرض            باشد سپس تمام فايل هاي آن گروه فايلي وبعد خودآن را حذف مي کنيم .)
4- پايگاه داده فوق را به registration تغيير نام دهيد .(از رويه sp_renamedb استفاده کنيد .)
5- کليه جداول پايگاه داده  registrationراکه درزيرمشخص شده، باتوجه به محدوديت هاي موردنظرتعريف کنيد .(کليه     اسکريپت هاي نوشته شده را ذخيره کنيد .)
جداول موردنيازدرآزمايشگاه :
 

  )STD  (     فايل اطلاعات دانشجو

قيود

کليد خارجي

و ارجاع

کليد اصلي

امکان null

نوع داده اي

نام فارسي

نام لاتين   

1-   ازنوع clusteredتعريف شود،

2-   رقم اول هرشماره از1تا9 ،بقيه ارقام از0تا9

 

×

 

Int

شماره دانشجويي

S#

 

 

 

 

Varchar(16)

نام

Name

 

 

 

 

Varchar (20

فاميل

Family

رقم اول بين1تا9 ،رقم دوم بين0تا9

 

 

 

Tinyint

رشته تحصيلي

Field

  F:زن     ,   M:مرد

Check (sex=’M’ or sex=’f’)

 

 

 

Char(1)

 

جنسيت

)F-M)

Sex

 

 

 

×

Dec(5,2)

معدل کل

Gpa

 

 

 

×

Varchar(40)

آدرس

Address

 

 

 

 

Int

کدشهر

Citycode

رقم اول هرشماره از1تا9 ،بقيه ارقام از0تا9

 

 

×

Int

شماره تلفن

TelNo

 

1-ازنوع uniqueتعريف شود،

-2رقم اول هرشماره از1تا9 ،بقيه ارقام از0تا9

 

 

 

 

Bigint

شماره شناسايي ملي

Ssno

 

 

 

 

Datetime

تاريخ تولد

Birthdate

 

فايل درس            (   CRS   )

قيود    

کليد خارجي

و ارجاع

کليد اصلي

امکان null

نوع داده اي

نام فارسي

نام لاتين   

رقم اول هرشماره از1تا9 ،بقيه ارقام از0تا9

 

×

 

Char(7)

شماره درس

C#

 

 

 

 

Varchar (30)

نام درس

Cname

 

 

 

 

Dec(2,1)

تعداد واحد درس

Unit

Check

(0=<passgrade <=20)

 

 

 

 

Dec(5,2)

حداقل نمره قبولي

دردرس

Passgrade

  ‘p’=  وعملي‘t’=تئوري

Check(Crstype=’t’ or

      crstype =’p’)

 

 

 

 

Char (1)

نوع درس

(تئوري – عملي)

Crstype

 

  )                                                                                                                   STDTRM       فايل ترم دانشجو        (

قيود                                

کليدخارجي

و ارجاع

کليد اصلي

امکان null

نوع داده اي

نام فارسي    

نام لاتين   

رقم اول بين3تا9 ،رقم دوم وسوم  بين0تا9 ورقم چهارم بين1تا3

 

 

×

 

 

 

Char(4)

شماره ترم

TrmNo

 

STD(S#)

×

 

Int

شماره دانشجويي

S#

 

 

 

×

Dec(5,2)

معدل ترم    

TrmGpa

 

       )                                                                                                                       REG      (               فايل ثبت نام

قيود    

کليد خارجي

و ارجاع

کليد اصلي

امکان null                  

نوع داده اي

نام فارسي    

نام لاتين

رقم اول بين3تا9 ،رقم دوم وسوم  بين0تا9 ورقم چهارم بين1تا3

 

STDTRM(S#,TRMNO)

 

×

 

 

 

Char(4)

شماره ترم

 

TrmNo

 

 

STD(s#)

STDTRM(S#,TRMNO)

×

 

Int

شماره دانشجويي

S#

 

CRS(c#)

×

 

  Char(7)

شماره درس

C#

Check(0=<Grade<=20)

 

 

×

Dec(5,2)

نمره دردرس

Grade

 

    )                                                                                                                   PREREQ (      فايل پيش نياز          

قيود                        

کليد خارجي

و ارجاع

کليد اصلي

امکان null                  

نوع داده اي

نام فارسي    

نام لاتين

 

CRS(c#)

×

 

Char(7)

شماره درس

C#

 

CRS(c#)

×

 

 

Char(7)

شماره درس

 پيش نياز

Cp#

 

Check(1=<seqno <=5)

 

×

 

 

Tiny int

شماره چندمين

 پيش نيازيا هم نياز

SeqNo

 

   )                                                                                                                     COREQ  (       فايل هم نياز         

قيود                           

کليد خارجي

و ارجاع

کليد اصلي

امکان null                  

نوع داده اي

نام فارسي    

نام لاتين

 

CRS(c#)

×

 

Char(7)

شماره درس

C#

 

CRS(c#)

×

 

 

Char(7)

شماره درس

هم نياز

Cc#

Check(1=<seqno<=5)

 

×

 

 

Tiny int

شماره چندمين

 پيش نيازيا هم نياز

SeqNo

 

   )                                                                                                                      CODEFILE     (          کد فايل

قيود                     

کليد خارجي

و ارجاع

کليد اصلي

امکان null                  

نوع داده اي

نام فارسي    

نام لاتين

 

 

×

 

varchar(8)

رشته تحصيلي 

Field

 

 

×

 

Varchar(4)

          نوع

   Type

 

 

×

 

 

Varchar(30)

شرح

Desc


سوال :

1- آيا روي هر جدول محدوديتي روي تعداد ايندکس هاي قابل تعريف وجود دارد؟

 2-آيا ساخت فهرست به طور نامحدود مشکلي براي سيستم (ازنظر زمان عمليات ) روي هريک ازعمليات select,insert,delete,update     ايجاد مي کند؟
بخش سوم – آشنايي با نحوه حذف يک پايگاه داده وجداول 

    براي حذف اشياءيک پايگاه داده از دستور  dropاستفاده مي کنيم.

۱-  پايگاه داده جديدي با نام test تعريف کرده وجدول مثال زده شده در قسمت پيش مطالعه را براي آن تعريف کنيد .

۲-  با استفاده از دستور Alter table  ستون نگهدارنده SSNO را(از جدول STD) حذف کنيد .با چه خطايي برخورد            مي کنيد .چرا؟

۳- بعد از حذف محدوديت ايندکس گذاشته شده بر روي SSNO ,خود SSNOراحذف کنيد .

۴- اطلاعات دانشجويي مجازي را در جدول STDوارد کنيد .

۵- اطلاعات دروس مجازي با شماره هاي 1024345و1025123و861026را در جداول CRS وPREREQوCOREQوارد کنيد . (فرض کنيد  درس 1024345پيش نيازدرس 1025123وهم نياز درس861026 است .) 

۶- سعي کنيد درس  1027456را براي تنها دانشجوي موجود در جدول STDدر ترم 3832ثبت نام کنيد .آيا اين کار امکان پذير است چرا؟ با اين کار کدام يک از قواعد جامعيت داده ها  نقض مي شود؟ آيا در اين مرحله امکان ثبت نام درس1025123 براي اين دانشجو امکان دارد ؟

۷- ستون حذف شده SSNOر ابه جدول STDبا محدويت کليد ثانويه يا ايندکس غير خوشه اي بودن و غير قابل تهي          بودن براي اين جدول تعريف کنيد ؟با چه خطايي برخورد مي کنيد؟

۸- با استفاده از عبارت WITH NOCHECKمرحله قبل را تکرار کنيد .

۹- حال با استفاده از دستور update يک شماره شناسايي ملي براي دانشجوي مورد نظر وارد کنيد . 

۱۰- درس شماره 1024345را براي دانشجوي فوق ثبت نام کنيد؟

۱۱- در اين مرحله سعي کنيد جدول STDراdropکنيد ؟آيا اين کار امکان پذير است؟چرا؟

۱۲- تمامي رکوردهاي موجوددرجداول STDو REGراحذف کنيد؟ اين کار به چه ترتيبي بايد انجام شود؟

13-  با استفاده از فرمان Alter tableدو ستون با عنوان هاي TotpassunitوTotregunitکه به ترتيب نگهدارنده تعداد       کل واحد گذرانده وتعداد کل واحد اخذ شده هستند را به جدول STDاضافه کنيد .

 

 

0 نظر

نظر محترم شما در مورد مقاله های وب سایت برنامه نویسی و پایگاه داده

نظرات محترم شما در خدمات رسانی بهتر ما را یاری می نمایند. لطفا اگر مایل بودید یک نظر ما را مهمان فرمائید. آدرس ایمیل و وب سایت شما نمایش داده نخواهد شد.

حرف 500 حداکثر