بخشی از پاورپوینت

اسلاید 1 :

آزمایشگاه پایگاه داده ها

ایجاد جدول در پایگاه داده در SQL Server

اسلاید 2 :

جزئیات پایگاه داده

هر پایگاه داده دارای اجزای مختلفی می تواند باشد که مهمترین آنها جداول هستند. برای دیدن تمامی اجزای پایگاه داده در SSMS کافیست نمایش درختی یک پایگاه داده را گسترش دهید (Expand کردن علامت +).
لیست جداول موجود در پایگاه داده در قسمت Tables قرار دارد. با گسترش دادن این گزینه لیست جداول قابل مشاهده خواهد بود. شاخه System Tables مربوط به جداول سیستمی است و بقیه لیست جداول معمولی پایگاه می باشند.

اسلاید 3 :

جداول در پایگاه داده SQLServer

قبل از ایجاد یک جدول باید با برخی از مفاهیم آشنا شوید. همانطور که می دانید یک جدول از یکسری سطر و ستون تشکیل شده است. در مطالب آکادمیک برای سطر و ستون اسم های زیادی عنوان شده است که عبارتند از:

ستون: Column, Field, Attribute,…، به ستون فیلد یا صفت هم می گویند چون هر صفت از یک موجودیت یا رابطه یک ستون از یک جدول را تشکیل خواهد داد.

سطر: Row, Record, Tuple، به یک ردیف از جدول رکورد یا تاپل هم می گویند که رکورد عمومیت بیشتری دارد. هر رکورد از یک جدول به مشخصات یک نمونه از اعضای مجموعه موجودیت یا مجموعه رابطه اشاره دارد.

نکته دیگر این است که برای هر جدول یک شِمای (Schema) متنی وجود دارد. مثال: شمای متنی موجودیت دانشجو
Student(sid: string , name: string , age: int , avg: float);

اسلاید 4 :

جداول در پایگاه داده SQLServer
همانطور که در شمای متنی می بینیم ابتدا نام رابطه (موجودیت یک رابطه است) و بعد در دو پرانتز باز و بسته نام صفات رابطه به همراه نوع هر صفت بیان شده است. نوع هایی که برای هر صفت قید می شوند و نام هایی که به کار برده می شود چه برای صفات و چه برای خود رابطه در در هر DBMS دیگر و خود SQLServer دارای قوانین مشخصی است که قبل از ایجاد یک جدول در پایگاه داده باید آنها را دانست.
همچنین در مورد هر جدول مفاهیمی مثل درجه و Cardinality مد نظر است که باید با این مفاهیم نیز آشنا شوید.
در زیر نمای جدولی، رابطه داشنجو را می بینید.

اسلاید 5 :

جداول در پایگاه داده SQLServer

درجه جدول (Degree):
مساوی است با تعداد فیلد های آن جدول. به طور مثال در جدول زیر درجه جدول 4 است.

تعداد رکوردها (Cordiality):
مساوی است با تعداد رکورد های موجود در یک جدول، به طور مثال در جدول زیر کوردینالیتی برابر 2 است.
نکته: درجه جدول در زمان طراحی و زمان به کارگیری جدول مطرح است اما کوردینالیتی یک جدول فقط در زمان به کارگیری و تزریق داده به جدول مد نظر است و در هنگام طراحی بررسی نمی شود.

اسلاید 6 :

قوانین نام گذاری شناسه ها
در فرآیند نام گذاری هر مفهوم در SQLServer مثل پایگاههای داده، جداول، فیلدها و . باید شرایط زیر مد نظر قرار بگیرد:
طول هر شناسه 1 تا 128 کارکتر.
نخستین کارکتر باید حرف یا یکی از علامت @ , # یا _ باشد.
علائم @ , # , _ را می توان پس از کارکتر نخست بکار برد.
@ به عنوان متغیر های محلی به کار می روند.
# اشیا موقت را نشان می دهد.

اسلاید 7 :

انواع داده در SQLServer
نوع داده (Data Type) یا دامنه (Domain) یک فیلد اشاره به محدودیت هایی مشخص برای ورود مقادیر به آن فیلد دارد. مثلاً ما می توانیم مشخص کنیم که مقادیر یک فیلد فقط اعداد باشند و یا فقط قالب خاصی از متون مثلاً فقط تاریخ و یا زمان وارد یک فیلد شوند.

در SQL انواع داده به سه دسته تقسیم شده اند که عبارتند از:

Predefined: یعنی داده های از پیش تعریف شده که انواع رایج هستند و خود به پنج دسته رشته ای (String)، عددی (Numeric)، تاریخ و زمان (DateTime)، فاصله ای یا وقفه ای (Interval) و بولی (Boolean) تقسیم می شوند.

Constructed: انواع پیچیده تر از انواع از پیش تعریف شده هستند و می توانند داده های چندگانه و متفاوت را در خود ذخیره کنند.

User Defined: این نوع ها بر پایه انواع از پیش تعریف شده یا صفات خاص می باشند که توسط کاربران تعریف و ایجاد می شوند.

اسلاید 8 :

نوع داده رشته ای String در SQLServer
این نوع داده مقادیر محدود به مجموعه های کاراکتری (رشته ها) و یا داده های بیتی را مشخص می کند. SQL چهار گروه از انواع داده رشته ای را معرفی کرده است:

Character Strings: این نوع داده مشخص کننده مقادیر محدود به کاراکتر های استاندارد می باشد و خود شامل 3 عضو Character, Character Varying و Character large object می باشد.

National Character Strings: این نوع داده مانند قبلی است با این تفاوت که از کاراکتر های ملی امریکا تبعیت می کند و خود شاکل 3 عضو می باشد مثل قبلی با یک کلمه National اضافه شده به اول هر کدام.

Bit Strings: این نوع داده مقادیر را به رشته های بیتی محدود می کند. یعنی داده ها در این نوع یا صفر هستند یا یک و بر دو نوع Bit , Bit Varying می باشد.

Binary Strings: این نوع داده بر خلاف قبلی مقادیر را به رشته های بایتی (Octets) محدود می کند یعنی رشته هایی از صفر و یک با طول معمول 8 بیت. این گروه فقط یک نوع داده دارد: Binary Large Object

اسلاید 9 :

نوع داده رشته ای String در SQLServer

اسلاید 10 :

نوع داده عددی Numeric در SQLServer

Integer Data: این نوع داده برای نگهداری اعداد صحیح و بدون اعشار استفاده میگردد و دارای 4 نوع به شرح زیر است. در ضمن این نوع فیلدها رتبه یك سرعت در نوع فیلدهای عددی را دارد.

Tinyint: یك بایت را اشغال میكند و میتواند از 0 تا 255 را در خود ذخیره كند.

Smallint: یك عدد دو بایتی است و میتواند از 32767 منفی تا 32767 مثبت را در خود ذخیره كند.

int: یك عدد چهار بایتی است كه میتواند اعداد بین مثبت و منفی 2 میلیارد را در خود ذخیره كند.

Bigint: یك عدد 8 بایتی است كه میتواند اعداد بین مثبت و منفی 9,223,372,036,854,775,807 را در خود ذخیره كند.

اسلاید 11 :

نوع داده عددی Numeric در SQLServer

Approximate Data: این نوع فیلدها برای نگهداری اعداد غیر صحیح با تعداد ارقام اعشار متغیر و یا تخمـینـی استفاده میشود. این نوع دادهها رتبه سوم سرعت در بین انواع دادههای عددی دارند و استفاده از آنها به دلیل كندی، توصیه نمیگردد. مگر در مواقع لزوم.

Real: یك عدد 4 بایتی است كه اعداد بصورت توانی از 10 نگهداری میشوند. (تعداد اعشار مشخص نیست).

Float: یك عدد 8 بایتی كه اعداد بصورت توانی از 10 نگهداری میشوند. (تعداد اعشار مشخص نیست).

Decimal: این نوع فیلد برای نگهداری اعداد اعشاری با تعداد اعشار مشخص استفاده میگردد. این نوع فیلدها بسیار كند بوده و استفاده از آنها توصیه نمیگردد. فرمت اینگونه دادهها به شكل زیر است:

كه در آن Precision به معنای تعداد كل رقمهای عدد و Scale تعداد ارقام اعشار را مشخص میكند. مثلاً اگر فیلدری بصورت Decimal(6,2) تعریف شود، حداكثر آن برابر 9999.99 میباشد.

اسلاید 12 :

نوع داده عددی Numeric در SQLServer

Money Data: این نوع فیلد برای نگهداری اعداد غیر صحیح با تعداد ارقام اعشار ثابت 4 رقمی استفاده میشود. این نوع فیلدها، دارای رتبه دوم سرعت در بین انواع دادهی عددی است.

SmallMoney: یك عدد 4 بایتی است كه میتواند 6 رقم صحیح و 4 رقم اعشار را در خود ذخیره كند.

Money: یك عدد 8 بایتی است كه میتواند 15 رقم صحیح و 4 رقم اعشار را در خود ذخیره كند.

اسلاید 13 :

نوع داده تاریخ و زمان DateTime در SQLServer

Date/Time: این نوع فیلدها برای نگهداری تاریخ میلادی و ساعت استفاده میشود و برای تاریخ شمسی كاربرد ندارد.

SmallDateTime: این نوع فیلد، 4 بایتی است و از سال 1900 تا 2079 را با دقت هزارم ثانیه ذخیره میكند.

DateTime: این نوع فیلد، 8 بایتی است و از سال 1700 تا 9999 را با دقت هزارم ثانیه ذخیره میكند.

اسلاید 14 :

دیگر انواع داده در SQLServer
برخی از انواع فیلدهای خاص را در این قسمت به اختصار توضیح میدهیم:

TimeStamp: در این فیلد 8 بایتی، تایم لحظهای اجرای دستور نگهداری میشود و كاربرد آن كنترل بروزرسانی همزمان (Concurrency) اطلاعات توسط چند كاربر است. البته در تعداد ركوردهای پایین به كار نمیآید و بیشتر زمانی مورد نیاز است كه تعداد ركوردها خیلی زیاد باشد مثلاً 100 میلیون ركورد!

UniqueIdentifier: این فیلد 16 بایتی، به ما كدی unique یا تك میدهد كه به اصطلاح GUID میگویند. یكی از كاربردهای آن در Replication است.

Sql_variant: این نوع فیلد برای نگهداری انواع داده استفاده میشود و نوع آن با توجه به اولین مقداری كه در آن قرار میگیرد تعیین خواهد شد. چون نوع و حجم فیلد مشخص نیست، لذا تنها یك اشارهگر 16 بایتی در آن قرار گرفته و داده اصلی در فایل جداگانه نگهداری میشود. استفاده از این نوع فیلد، توصیه نمیگردد.

Cursor:این فیلد مربوط به كنترل Cursor است كه در آینده توضیح میدم.

Table: این نوع فیلد را هم در زمان آموزش Functionها خواهید آموخت

XML: این فیلد بیشتر برای انتقال اطلاعات و دستورات تحت web استفاده میشود و شامل انواع Metadata های مختلف است. این فیلد در SQL 2005 معرفی گردید.

اسلاید 15 :

مهمترین انواع داده در SQLServer 2008

اسلاید 16 :

ایجاد جدول با استفاده از امکانات آماده SSMS

برای ایجاد یک جدول در پایگاه داده از طریق خود SSMS باید مراحل زیر را انجام دهید.
زیر مجموعه پایگاه داده مورد نظر را گسترش داده و گزینه Tables را پیدا کنید.
بر روی گزینه tables راست کلیک کنید. و گزینه New Table را انتخاب کنید.
یه تب به محیط ویرایشگر اضافه می شود که می توان در آن فیلدهای جدول جدید را تعریف کرد که خود این محیط شامل 3 ستون Column Name, Data type و Allow Nulls می باشد.

اسلاید 17 :

ایجاد جدول با استفاده از امکانات آماده SSMS
تصویری از محیط تعریف جدول:
Column Name: برای تعیین نام فیلد.
Data Type: برای تعیین نوع داده فیلد.
Allow nulls: اگر این گزینه تیک داشته باشد. فیلد در هنگام نزریق داده می تواند مقادیر خالی یا همان Null را بپذیرد.

اسلاید 18 :

ایجاد جدول با استفاده از امکانات آماده SSMS
در هنگام تعریف هر فیلد در قسمت Column Properties می توان مشخصات کامل آن فیلد را بر اساس نوع داده انتخاب شده مشاهده کرد.

اسلاید 19 :

ایجاد جدول با استفاده از امکانات آماده SSMS

گزینه Allow Nulls كه البته در كنار Data Type هم میتوان آنرا تعیین كرد، مشخص میكند كه آیا آن فیلد خاص میتواند مقدار (Null) یا همان هیچی را بپذیرد یا خیر.

یكی دیگر از این موارد، مشخص كردن مقدار اولیهی فیلد مورد نظر هستش. برای این كار در مقابل عبارت Default Value or Binding مقدار اولیه رو وارد میكنید. مشخص كردن مقدار اولیه به این درد میخورد كه مقدار فیلد ما مثلاً در هنگام Insert یك ركورد جدید به جدول، در صورت مشخص نبودن مقدار، Null نشود.

اسلاید 20 :

ایجاد جدول با استفاده از امکانات آماده SSMS

اگر با بانك اطلاعاتی Access آشنا باشید، یكی از انواع دادهها، Auto Number بود كه در Data Typeهای SQLServer وجود نداشت. برای پیادهسازی AutoNumber به این صورت عمل میكنیم: اگر روی علامت مثبت كنار Identity Specification كلیك كنیم، سه گزینهی دیگر نمایش داده خواهند شد. (شكل زیر)

اگر برای فیلدهای عددی غیر اعشاری، Is Identity برابر Yes شود، در اینصورت این فیلد بصورت اتوماتیك در هنگام درج ركوردهای جدید، اضافه خواهد شد. مقدار شروع در قسمت Identity Seed و میزان افزایش در هر دفعه، در قسمت Identity Increment قرار خواهد گرفت. ضمناً برای استفاده از این امكان، باید در قسمت Default Value مقدار پیشفرض تعیین نگردد و حتماً Allow Null هم نباشد.

در متن اصلی پاورپوینت به هم ریختگی وجود ندارد. برای مطالعه بیشتر پاورپوینت آن را خریداری کنید