sql- server- 001

Views:
 
Category: Entertainment
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Slide 1: 

مهندس اسفندياري تئوري اساسي بانكهاي اطلاعاتي : يكپارچگي روابط Referential Integrity و نرمال سازي بانك اطلاعاتي

Slide 2: 

تاريخچه سيكوال - SQL 1978 Dr.Codd Data Relationship Model for Large Common Databases 1979 IBM Dr.Codd => IBM SQL 1979 Relational Software Co. ORACL درآينده اين شركت به نام اوراكل تغيير نام داد 1986 American National Standards Institute (ANSI) ANSI SQL TODAY Sellers SQL

Slide 3: 

نيازهاي نرم افزاري SQL SERVER 2000 داراي نگارشهاي اصلي زير مي باشد: 1- MSDE / 2- Personal / 3- Server لذا جهت نصب و به كارگيري بر روي سيستم هاي عامل Windows 98 ، Windows ME و Windows XP از نگارشهاي 1 و 2 و براي نصب بر روي Windows NT و Windows Server2000 از نگارش 3 استفاده مي گردد. توجه داشته باشيد Windows Vista و Windows 7 از انواع SQL Server 2000 پشتيباني نمي كنند لذا اقدام به نصب بر روي آن ننماييد نيازهاي سخت افزاري P III 128 MB Ram CD ROM 250 MB HD Free حافظه بيشتر و پردازنده قويتر پيشنهاد مي گردد

Slide 4: 

Setup SQL Server 2005

Slide 5: 

نصب Setup SQL Server 2000 ( كارگاه عملي )

Slide 6: 

بانكهاي اطلاعاتي موجود در SQL SERVER 2000 MASTER : بانك اطلاعات سيستمي جهت اجراي SQL شامل پيامها و رويه هاي ذخيره شده... MODEL : قالبي از بانك اطلاعات نمونه كه زمان ايجاد بانك جديد مورد استفاده قرار مي گيرد... MSDB : جهت پشتيباني و ذخيره از عمليات انجام شده توسط SQL به كار مي رود ... TEMPDB : فضاي موقتي براي هربار اجرا و عمليات SQL با قضاي تثريبي 9MB ... NORTHWIND:نمونه آموزشي از بانك اطلاعات كه از سوي فروشنده ارائه شده است...(شركت فرضي ) PUBS : نمونه آموزشي از بانك اطلاعات كه از سوي فروشنده ارائه شده است... (ناشرين)

SQL Server يك سيستم مديريت بانك اطلاعات مي باشد ، بدين معني كه نه تنها اطلاعات را ذخيرهمي نمايد ، بلكه ابزارهاي لازم براي مديريت اطلاعات ، مانند : قابليت جستجو ، مرتب سازي ، ويرايش اطلاعات و مانند آن را نيز در اختيار قرار مي دهد. از سوي ديگر ، SQL Server يك سيستم مديريت بانك اطلاعات رابطه اي يا Relational Database Management System مي باشد كه به اختصار RDBMS به شمار مي رود. عبارت رابطه اي يا Relational بدين معني است كه مي توان بين اطلاعات مختف روابطي را تنظيم نمود. : 

SQL Server يك سيستم مديريت بانك اطلاعات مي باشد ، بدين معني كه نه تنها اطلاعات را ذخيرهمي نمايد ، بلكه ابزارهاي لازم براي مديريت اطلاعات ، مانند : قابليت جستجو ، مرتب سازي ، ويرايش اطلاعات و مانند آن را نيز در اختيار قرار مي دهد. از سوي ديگر ، SQL Server يك سيستم مديريت بانك اطلاعات رابطه اي يا Relational Database Management System مي باشد كه به اختصار RDBMS به شمار مي رود. عبارت رابطه اي يا Relational بدين معني است كه مي توان بين اطلاعات مختف روابطي را تنظيم نمود. SQL Server به عنوان RDBMS

بسياري از شركت ها به مشتريان خود يك شماره حساب ( شماره مشتري ) اختصاص مي دهند و اين شماره حساب را به همراه نام و نام خانوادگي ، نشاني و تلفن مشتري در يك جدول ذخيره مي نمايند. به همين روش مي توان در يك جدول مربوط به فاكتورهاي دريافتي شامل شماره حساب ، تاريخ فاكتور ، مبلغ و موارد ديگر را ذخيره نمود. اين روش به شما امكان مي دهد اطلاعات مشتريان را به اطلاعات فاكتور مربوط سازيد. بنابر اين مي توانيد فهرست مشترياني كه در پرداخت صورت حساب خود بيش از مدت مشخصي ( مثلا سه ماه ) تاخير دارند را مشخص كرد. ( مثال كلاسي ) : 

بسياري از شركت ها به مشتريان خود يك شماره حساب ( شماره مشتري ) اختصاص مي دهند و اين شماره حساب را به همراه نام و نام خانوادگي ، نشاني و تلفن مشتري در يك جدول ذخيره مي نمايند. به همين روش مي توان در يك جدول مربوط به فاكتورهاي دريافتي شامل شماره حساب ، تاريخ فاكتور ، مبلغ و موارد ديگر را ذخيره نمود. اين روش به شما امكان مي دهد اطلاعات مشتريان را به اطلاعات فاكتور مربوط سازيد. بنابر اين مي توانيد فهرست مشترياني كه در پرداخت صورت حساب خود بيش از مدت مشخصي ( مثلا سه ماه ) تاخير دارند را مشخص كرد. ( مثال كلاسي ) طرح يك مثال براي روشن شدن واژه ارتباط در بانك اطلاعات

اولين شي بانك اطلاعاتي كه بايد به آن بپردازيد جدول يا TABLE است چرا كه اين شي محل نگهداري اطلاعات بوده و از آن گذشته بدون وجود TABLE ، ساير اشياي بانك اطلاعات قابل استفاده نخواهد بود. قبل از ايجاد يك جدول بايد آن را طرحي نمود و در صورت به كارگيري از ساير جداول مجموعه جداول طراحي و ارتباط في مابين آن به صورت تئوري مشخص گردد تا هنگام عمل با حداقل مشكل در سطح طراحي مواجه شويم.تعاريف : فيلد (ميدان) – ركورد (سطر جدول) – فقره اطلاعاتي – جدول – بانك اطلاعات يادآوري : در اينجا يادآوري مي شود كه عبارت اختصاري بانك اطلاعات را از اين پس بجاي بانك اطلاعات رابطه اي و يا مديريت بانك اطلاعات رابطه اي به كار برده خواهد شد. : 

اولين شي بانك اطلاعاتي كه بايد به آن بپردازيد جدول يا TABLE است چرا كه اين شي محل نگهداري اطلاعات بوده و از آن گذشته بدون وجود TABLE ، ساير اشياي بانك اطلاعات قابل استفاده نخواهد بود. قبل از ايجاد يك جدول بايد آن را طرحي نمود و در صورت به كارگيري از ساير جداول مجموعه جداول طراحي و ارتباط في مابين آن به صورت تئوري مشخص گردد تا هنگام عمل با حداقل مشكل در سطح طراحي مواجه شويم.تعاريف : فيلد (ميدان) – ركورد (سطر جدول) – فقره اطلاعاتي – جدول – بانك اطلاعات يادآوري : در اينجا يادآوري مي شود كه عبارت اختصاري بانك اطلاعات را از اين پس بجاي بانك اطلاعات رابطه اي و يا مديريت بانك اطلاعات رابطه اي به كار برده خواهد شد. آشنايي با شي TABLE در بانك اطلاعات

آيا ساختار پيشنهادي مربوط به اين بانك اطلاعات مي باشد؟ ( جداول انبار – جداول پرسنل )- چه نوع اطلاعاتي بايد در جدول قرار بگيرد؟ ( طراحي بانك براي هدفي خاص )- اندازه جداول تا جاي ممكن بايد كوچك بوده و از تكرار اطلاعات در آن بايد پرهيز گردد.<< آناليز فيلدهاي در طراحي جدول: بهتراست از فرمهاي خاص جهت طراحي استفاده گردد.- از چه فيلدهايي براي طراحي يك جدول استفاده نمود كه با موضوع جدول انطباق دشته باشد.آيا لازم است نام و نام خانوادگي را در دو فيلد جداگانه قرار دهيم؟ آيا فيلد نشاني نيز نياز به تقسيم بندي دارد ؟ در اينجا به بررسي نواع فيلدهاي مورد نياز نير مي پردازيم به عنوان مثال اگر فيلدهايي به ظاهر عددي مي باشند ولي بر روي آن محاسبات رياضي صورت نمي گيرد ( مانند شماره ملي ) آن را از نوع رشته اي در نظر مي گيريم نه عددي و يا اگر از فيلد تاريخ تولد استفاده مي شود نيازي به استفاده از فيلد سن نمي باشد زيرا تاريخ تولد خود مي تواند سن را توليد نمايد. همچنين فيلدي به عنوان رديف نياز نمي باشد و مانند آن ... - تعيين فيلدي به عنوان كليد اصلي / كليد فرعي ( يا كليد خارجي ) : 

آيا ساختار پيشنهادي مربوط به اين بانك اطلاعات مي باشد؟ ( جداول انبار – جداول پرسنل )- چه نوع اطلاعاتي بايد در جدول قرار بگيرد؟ ( طراحي بانك براي هدفي خاص )- اندازه جداول تا جاي ممكن بايد كوچك بوده و از تكرار اطلاعات در آن بايد پرهيز گردد.<< آناليز فيلدهاي در طراحي جدول: بهتراست از فرمهاي خاص جهت طراحي استفاده گردد.- از چه فيلدهايي براي طراحي يك جدول استفاده نمود كه با موضوع جدول انطباق دشته باشد.آيا لازم است نام و نام خانوادگي را در دو فيلد جداگانه قرار دهيم؟ آيا فيلد نشاني نيز نياز به تقسيم بندي دارد ؟ در اينجا به بررسي نواع فيلدهاي مورد نياز نير مي پردازيم به عنوان مثال اگر فيلدهايي به ظاهر عددي مي باشند ولي بر روي آن محاسبات رياضي صورت نمي گيرد ( مانند شماره ملي ) آن را از نوع رشته اي در نظر مي گيريم نه عددي و يا اگر از فيلد تاريخ تولد استفاده مي شود نيازي به استفاده از فيلد سن نمي باشد زيرا تاريخ تولد خود مي تواند سن را توليد نمايد. همچنين فيلدي به عنوان رديف نياز نمي باشد و مانند آن ... - تعيين فيلدي به عنوان كليد اصلي / كليد فرعي ( يا كليد خارجي ) آناليزفيلدهاي بكارگرفته شده جهت طراحي جدول

Slide 11: 

تعيين فيلدي به عنوان كليد اصلي كليد اصلي : Primary key كليد ثانويه يا كليد خارجي : Foreign Key كليد اصلي فيلدي منحصر به فرد براي هر ركورد ميباشد بنابر اين مقدار آن براي هر ركورد گوناگون است. در يك جدول دو كليد اوليه با مقدار يكسان نبايد وجود داشته باشد. تعيين كليد اوليه براي هر جدولي ضروري نبوده ولي توصيه مي گردد ( مثال : شماره شناسنامه - شماره پلاك خودرو ها - شماره پرسنلي ) كليد ثانويه فيلدي از نوع كليد اصلي است كه در جدول فرزند قابليت تكرار دارد و از طريق ارتباط اين فيلد به فيلد كليد اصلي در جدول پدر يك ارتباط بر قرار مي گردد.

مثال : طراحي يك جدول - بررسي معايب: افزونگي اطلاعات ، حجم اطلاعاتطراحي جدول سفارش مشتريمثال : طراحي جداول مناسب : تقسيم بندي جداول ، كليد ثانويهجدول سفارش مشتريجدول جزئيات سفارش: كد كالا كليد ثانويه است كه به جدول كالا اشاره مي كند( جداول را رسم كنيد ) : 

مثال : طراحي يك جدول - بررسي معايب: افزونگي اطلاعات ، حجم اطلاعاتطراحي جدول سفارش مشتريمثال : طراحي جداول مناسب : تقسيم بندي جداول ، كليد ثانويهجدول سفارش مشتريجدول جزئيات سفارش: كد كالا كليد ثانويه است كه به جدول كالا اشاره مي كند( جداول را رسم كنيد ) تقسيم اطلاعات در جداول گوناگون – آناليز فيلدها و مفهوم رابطه

1- ارتباط يك به چند (One to Many ) ( مثال سفارش مشتري )2- ارتباط چند به چند (Many to Many ) مفهوم Junction Table3-ارتباط يك به يك (One to One ) استفاده در حالت خاص : 

1- ارتباط يك به چند (One to Many ) ( مثال سفارش مشتري )2- ارتباط چند به چند (Many to Many ) مفهوم Junction Table3-ارتباط يك به يك (One to One ) استفاده در حالت خاص انواع رابطه بين جداول

2- ارتباط چند به چند (Many to Many ) Junction Table : 

2- ارتباط چند به چند (Many to Many ) Junction Table انواع رابطه بين جداول

3-ارتباط يك به يك (One to One ) استفاده در حالت خاص : 

3-ارتباط يك به يك (One to One ) استفاده در حالت خاص انواع رابطه بين جداول

در تئوري بانك اطلاعاتي ، قواعد يكپارچگي روابط ، جهت اطمينان از صحت روابط بين ركوردهاي دو جدول مرتبط شده بكار برده مي شود. با به كارگيري اين قواعد مي توانيم مطمئن باشيم با حذف يا تغيير اطلاعات ، با ركورد ها يي خارج از تئوري بانكهاي اطلاعات رابطه اي مواجه نخواهيم شد. حال به بررسي اين تئوري مي پردازيم : 

در تئوري بانك اطلاعاتي ، قواعد يكپارچگي روابط ، جهت اطمينان از صحت روابط بين ركوردهاي دو جدول مرتبط شده بكار برده مي شود. با به كارگيري اين قواعد مي توانيم مطمئن باشيم با حذف يا تغيير اطلاعات ، با ركورد ها يي خارج از تئوري بانكهاي اطلاعات رابطه اي مواجه نخواهيم شد. حال به بررسي اين تئوري مي پردازيم

تئوري اساسي بانك اطلاعات : يكپارچگي روابط – Referential Integrity در فيلدهاي ارتباطي، هيچگاه نبايد در جدول فرزند اطلاعاتي وجود داشته باشد كه در جدول والد وجود ندارد. در اين صورت ركوردهاي يتيم يا ORPHAN ايجاد مي گردد و وجود آنها با تئوري رابطه اي مغاير است.

چگونگي جلوگيري از نقض قواعد يكپارچگي روابط 1- فيلد برقراركننده ارتباط در جدول پدر يك Primary Key بوده و يا داراي مقداري يكتا (unique) باشد. 2- فيلدهاي برقرار كننده ارتباط در هر دو جدول داراي نوع يا Data Type يكسان باشند. 3- هر دو جدول مربوط به يك بانك اطلاعاات SQL Server قرار داشته باشند.

مواردي كه پس از اعمال قواعد يكپارچگي روابط بايد اعمال گردد 1- در فيلد Foreign Key يا كليد فرعي ( كليد خارجي ) جدول فرزند نبايد مقاديري را وارد كرد كه در فيلد متناظر جدول پدر ( والد ) وجود ندارد. 2- نمي توانيم از جدول پدر ركوردي را حذف كنيم كه ركوردهاي متناظري را در جدول فرزند دارد. 3- نمي توانيم از جدول پدر مقدار Primary Key را تغيير دهيم در صورتيكه ركوردهاي متنناظري از آن در جدول فرزند وجود دارد.

Slide 20: 

نرمال سازي بانك اطلاعاتي به كارگيري تئوري اساسي يكپارچگي روابط ، جلوگيري از نقض آن و به كارگيري قواعدي كه پس از يكپارچه سازي بايد اعمال گردد همچنين آناليز فيلدها در طراحي جداول، را نرمال سازي مي نامند.

Slide 21: 

آغاز كار عملي با SQL ايجاد بانك اطلاعاتي ( ويا ايجاد كليه اشيا ... ) به كمك Database Wizard به كمك Enterprise Manager به كمك دستورات SQL ( در محيط Query Analyzer يا برنامه هاي كاربردي )

Slide 22: 

ساخت يك جدول به كمك دستور SQL create table mytable001 ( nam varchar(10), fam varchar(20), CAL varchar(14), Mob varchar(11) )

Slide 23: 

CREATE DATABASE DB1 نام بانك اطلاعاتي ON ( NAME = DB1_DAT , FILENAME = 'C:\DB1.MDF‘ , فايل داده اصلي SIZE = 10 , در نظر گرفته مي شود MB مشخص نشده KBيا MB چون مقدار MAXSIZE = unlimited , FILEGROWTH = 5 ) LOG ON ( NAME = 'DB1_LOG‘ , فايل داده كمكي FILENAME = 'C:\DB1.LDF’ , SIZE =10MB, MAXSIZE = 25MB, FILEGROWTH = unlimited ) GO

Slide 24: 

CREATE DATABASE DB1 ON ( NAME = DB1_DAT , FILENAME = 'C:\DB1.MDF‘ , SIZE = 10 , MAXSIZE = 50 , FILEGROWTH = 5 ) LOG ON ( NAME = 'DB1_LOG‘ , FILENAME = 'C:\DB1.LDG’ , SIZE =10MB, MAXSIZE = 25MB, FILEGROWTH = 5MB ) GO

Slide 25: 

كار روي ستون هاي جدول به كمك دستورات SQL 1- برنامه اي بنويسيد كه به جدول mytable001 فيلد كد ملي به نام ID را به طول 11 اضافه نمايد ALTER table mytable001 Add ID numeric (9) ----> در اكسس ----> add ID number (9) 2- برنامه اي بنويسيد كه در جدول mytable001 فيلد كد ملي به نام ID را به طول 11 اصلاح نمايد. ALTER table mytable001 ALTER ID nvarchahr (11) ----> در اكسس ----> add ID text (11) 3- برنامه اي بنويسيد كه از جدول mytable001 فيلد كد ملي به نام ID حذف نمايد ALTER table mytable001 drop column ID

Slide 26: 

HOMEWORK كار روي ستون هاي جدول به كمك دستورات SQL آشنايي با دستور Select Select فيلد1, فيلد2 , … From جدول Select فيلد1, فيلد2 , … From جدول where شرط دستور SELECT در جاي خود بطور كامل تدريس مي گردد.

Slide 27: 

پايان ارائه نخست

authorStream Live Help