Knowledge Of MS SQL Server

برای هرچیزی زکاتی است وزکات علم نشر آن است

Knowledge Of MS SQL Server

برای هرچیزی زکاتی است وزکات علم نشر آن است

constraint

يكشنبه, ۳۱ شهریور ۱۳۹۲، ۱۰:۲۴ ب.ظ

Primary key constraint:

این محدودیت  به دو صورت Column Level (در سطح ستون ) و Table level (در سطح جدول) پیاده سازی می شود.

Column Level :یک Primary Key برای یک ستون ایجاد می شود

Table Level : دراین حالت هرگاه بخواهیم چند ستون را با یکدیگربه صورت ترکیبی یک Primary Key در نظر بگیریم پس از پایان تعریف ستون های جدول این Constraint را تعریف میکنیم.


Constriant  ConstraintName     Primary Key(Coulmn1,Column2,…)


مثال:

فرض کنیم جدولی به نام Student با ستون های Id,Student Id,Name ایجاد کردیم وبعد از تعریف ستون ها Constraint مورد نظر را تعریف می کنیم:


Constriant  Student Pk  Primary Key(Id,StudentId)


 

Unique Constraint:

فرض کنید می خواهیم سیستم یک دانشگاه طوری باشد که نتوان شماره شناسنامه های یکسان را وارد کرد.چون شماره شناسنامه تکراری داریم برای جلوگیری از این تکرار از Unique Constraint استفاده می کنیم.این Constraint هم مانند Primary key ،هم به صورت Column Level و هم به صورت Table Level می باشد.

نحوه تعریف این Constriant  مانند Primary Key هست فقط با این تفاوت که به جای کلمه کلیدی   Primary Key ازUnique استفاده می کنیم.

 

نکته ای که باید در اینجا به آن توجه داشته باشیم این است که دریک جدول تنها می توانیم یک Primary Key ولی چندین Uniqueداشته باشیم .

 

Foreign Key Constraint:

برای پیاده سازی Reference ویا Integriety به کار می رود ودر دو نوع Table Level و Column Level می باشد.

 

مثال زیر  کاربرد این Constraint را در نوع Column Level نشان می دهد.

 

create table person

)

Id int not null primary key,

Isn char(10) not null,

name nvarchar(50)not null,

Addressesid int references Addresses(id),

(


 

در سطح Table level دو نکته لازم است :

1.در پیاده سازی جداول ابتدا باید جدول Parent را ایجاد کنید وسپس Detail

2. ستون Foreign Key می تواند با ستون Primary Key جدول Parent همنام نباشد اما باید حتما هم Type باشد.

نحوه تعریف این Constraint درپایان وبعد از تعریف ستون های جدول می باشد که به صورت زیر می باشد

Constraint   Name  Foreign Key   ChildTableName (FieldsName) References  ParentTableName (FieldsName)

 

 

۲ نظر موافقین ۳ مخالفین ۰ ۳۱ شهریور ۹۲ ، ۲۲:۲۴
فائزه فاضلی

Create Database & Table

جمعه, ۱۸ مرداد ۱۳۹۲، ۰۲:۴۴ ق.ظ

ایجاد Database


نحوه ایجاد دیتابیس بدون استفاده از کد:

ابتدا روی نام دیتابیس کلیک راست نموده وگزینه NEW DATABASE را انتخاب می کنیم،پنجره زیر ظاهر می شود:



در قسمت Database name نام دیتابیس را تایپ کرده وسپس روی گزینه ok را کلیک می کنیم.

در اینصورت دیتابیس موردنظر ایجاد شده و با کلیک روی کادر کوچک کنار کلمه  Database می توان دیتابیس ایجاد شده را دید.

 

ایجاد دیتابیس با استفاده از کد:

به عنوان مثال فرض کنید دیتابیسی به نام library می خواهیم ایجاد کنیم،داریم:

create database library

on

(

name=m_library,

filename='d:\library\m_library.mdf',

size=10,

maxsize=50,

filegrowth=5

)

log on

(

name=l_library,

filename='d:\library\l_library.ldf’,

size=10,

maxsize=50,

filegrowth=5

)

 


ایجاد Table

 

 ایجاد Table بدون استفاده ازکد:

دیتابیس مورد نظر را انتخاب کرده وزیر شاخه های آن را باز می کنیم ، مطابق شکل زیر روی Table کلیک راست نموده وسپس گزینه Table New را انتخاب می کنیم.

 


بعد از انجام این مراحل پنجره زیر ظاهر می شود.در قسمت Column Name نام ستون مورد نظر،در قسمت Data Type نوع داده را مشخص میکنیم ودر قسمت Allow Null مشخص می کنیم که دیتای ما می تواند null باشد یاخیر .




سپس اگر پنجره بالا را ببندیم ویا ctrl+s را بزنیم پیغام save  میدهد که با انتخاب یک نام  table موردنظر را save می کنیم.

حال اگر زیرشاخه های Tableرا باز کنیم باید نام Table ایجاد شده را ببینیم.

 

ایجاد Table با استفاده از کد:

                                           

create table[tablename]

(

[filename] [datatype nullable],

(primary)

) on[filegroupname]


مثال 


create table person

(

Id int not null primary key,

Isn char(10) not null,

FirstName nvarchar(50) not null,

LastName nvarchar(50) not null,

)

۵ نظر موافقین ۵ مخالفین ۰ ۱۸ مرداد ۹۲ ، ۰۲:۴۴
فائزه فاضلی

طراحی دیتابیس ونرمال سازی

سه شنبه, ۱۸ تیر ۱۳۹۲، ۱۲:۴۶ ق.ظ

 برای طراحی دیتابیس ابتدا سناریوی کاملی را بر اساس مصاحبه انجام شده،تهیه می کنیم وسپس  موجودیت ها(Etity) را در متن سناریو مشخص می کنیم وزیر آن ها خط می کشیم.

Entity: موجودیتی محلی است که برای ذخیره Instance هایی(نمونه ها) از جنس خودش به کار می رود.Instance ها بر اساس  Attributeها(تشریح کننده) درون خود Entity  شکل می گیرند.برای شناسایی Entity ها از اسامی اشخاص ،مکان ها،مفاهیم وگاها افعال استفاده می کنیم ودر متن سناریو زیر آن ها خط می کشیم. بعد از مشخص کردن Entityها برای هر Entity یک جدول ایجاد می کنیم و جدول را باAttribute های لازم برای هر Entity  پر می کنیم.وسپس روابط بین جداول را ایجاد می کنیم.

در طراحی دیتابیس باید توجه داشته باشیم که دیتابیس ایجاد شده باید نرمال باشد وافزونگی دیتا نداشته باشیم. در نهایت در بانک اطلاعاتی نرمال شده داده ها از جدول بزرگتر به تعداد زیادی جدول کوچکترتقسیم شده اند. بدین منظور که داده های تکراری حذف شده اند ،صرفه جویی در فضا ایجاد شده است،عملکرد افزایش یافته است وجامعیت داده ها نیز افزایش یافته است.در حقیقت فرم نرمال بدین معنی است که داده ها به فرمت منطقی غیرتکراری تجزیه می شوند.

مفاهیم نرمال سازی به شدت وابسته به مسائلی پیرامون تعریف کلید اصلی وستون های وابسته به آن است.

هر جدول باید یک وفقط یک موجویت را تعریف کندو هر جدول تنها باید یک کلید اصلی داشته باشد.

مراحل نرمال سازی بانک اطلاعاتی:

·         اولین شکل نرمال تماما درباره حذف کردن گروه های تکراری داده ها وتضمین یونیک بودن آن ها است.این شکل نرمال در سطح بالایی با ایجاد کلید اصلی ،سپس جابه جاکردن تمام گروه های داده تکراری به درون جدول جدید، ایجاد کلید های جدید برای جداول دیگر کار می کند.

·         دومین شکل نرمال سازی،جدا سازی جداول از یکدیگر است.شکل دوم نرمال دو قانون دارد:

1.      جدول باید قوانین مربوط به شکل اول نرمال را تأمین کند.

2.      هر ستون باید وابسته به کلید اصلی باشد.

·         شکل سوم نرمال سازی با این مسأله سروکار دارد که کاری کنیم که همه ستون ها در جدول فقط وابسته به چیزی نباشند بلکه وابسته به چیز درستی باشند. درواقع این فاز نرمال ساختن کلید اصلی برای مجموعه های (جداول) تفکیک شده است.شکل سوم نرمال سه قانون دارد:

  1.جدول باید در مرحله دوم نرمال باشد.

  2.هیچ ستونی نمی تواند به ستون غیرکلیدی دیگری وابستگی داشته باشد.

  3.نمی توانیم داده های مشتق شده داشته باشیم.

 

هر جدول ایجاد شده عبارت است از مجموعه نمونه هایی از داده ها که صفات عمومی یکسانی دارند.این نمونه داده ها به صورت ردیف ها وستون ها ی داده ها سازماندهی می شوند.

جدول باید نمایانگر مجموعه دنیای واقعی از داده ها ودارای روابطی با اطلاعات درون جداول دیگر باشد.به جداول نیز می توان عنوان موجودیت داد.

ERD(Entity Relationship Diagram): ترسیمی از روابط موجودیت های مختلف است.

روابط بین جداول:

کلید روابط موفق این است که نقش هر دوطرف را بشناسیم واین که هر کسی  حدود قوانین رابطه ای که در آن قرار دارد را درک کند.همین اصول درباره روابط پایگاه داده نیز صادق است.

سه نوع رابطه اصلی برای جداول وجود دارد:

·         یک به یک: همان طور که از نام آن پیداست این رابطه ،رابطه ای است که در آن رکوردی دریک جدول دقیقا یک رکورد متناظر در جدول دیگر دارد.درواقع در این نوع رابطه یک Entity تنها با یک Entity دیگر در ارتباط است.

 

·         یک به چند: در این نوع رابطه یک Entity  یا instance با چندEntity یا instance  دیگر می تواند رابطه داشته باشد.به این رابطه ،رابطه پدر وفرزند نیز می گویند.

·         چند به چند: در این رابطه هر دوطرف رابطه ممکن است چندین رکورد متناظر داشته باشند.به عنوان مثال رابطه محصولات وسفارش را در نظر بگیرید،یک سفارش مشخص می تواند محصولات بسیاری داشته باشد و به همین ترتیب هر محصول مشخص نیز می تواند چندین بار سفارش شود.

 

 

 

۲ نظر موافقین ۲ مخالفین ۰ ۱۸ تیر ۹۲ ، ۰۰:۴۶
فائزه فاضلی

پایگاه داده

جمعه, ۷ تیر ۱۳۹۲، ۱۲:۲۳ ق.ظ

پایگاه داده چیست؟

پایگاه داده مجموعه ای از داده ها با ساختار منظم است.در واقع بانک اطلاعاتی است که شامل مجموعه ای از اشیای جدول ،اشیایدیگر نظیر دیدگاه ها ورویه های ذخیره شده است که به گروه بندی خاصی از داده ها که در جداول پایگاه داده ذخیره شده اند مربوط می شود. اصلی ترین شئ هر پایگاه داده جدول است.جداول نقش اصلی تشکیل یک پایگاه داده را دارند.

چهار پایگاه داده اولیه سیستم عبارتند از:

·         Master

·         Model

·         Msdb

·         Tempdb


Master

هر اس کیوال سروربدون توجه به نسخه تغییرات سفارشی دارای پایگاه داده master است.این پایگاه داده حاوی مجموعه ای خاص از جداول سیستم است که در کل سیستم را ردیابی می کند.برای مثال هنگام ایجاد یک پایگاه داده جدید در سیستم ورودی در جدول پایگاه داده اصلی قرار می گیردوتمام رویه های ذخیره شده وتوسعه یافته بدون توجه به پایگاه داده به کار رفته در آن پایگاه داده ذخیره شده اند.این پایگاه داده برای سیستم بسیار مهم است زیرا هرچیزی که سیستم را توصیف می کند در این پایگاه داده موجود می باشد.

Model

این پایگاه داده مدلی است که بر اساس آن می توان کپی را ایجاد کرد والگویی را برای هر پایگاه داده جدید که ایجاد می کنیم به وجو می آورد.

Msdb

جایی که فرایندSql Agent  تمام وظایف سیستم را ذخیره می کند.اگر عملیات پشتیبان گیری را طوری زمانبندی کنیم که به طور شبانه اجرا شود یک ورودی در Msdb ایجاد خواهد شد؛همچنین اگر رویه ذخیره شده ای را برای یک بار اجرا زمانبندی کنیم یک ورودی در Msdb خواهیم داشت.

Tempdb

این پایگاه داده با سه پایگاه داده دیگر متفاوت است.چون هم خودش وهم داده های آن موقتی می باشند وتنها پایگاه داده ای است که پس از هر باراجرای اس کیوال سرور مجددا ساخته می شود.

۳ نظر موافقین ۳ مخالفین ۰ ۰۷ تیر ۹۲ ، ۰۰:۲۳
فائزه فاضلی