پایگاه داده

درس پایگاه داده استاد دقاق زاده

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

دادِگان (پایگاه داده ها یا بانک اطلاعاتی) به مجموعه ای از اطلاعات با ساختار منظم و سامانمند گفته می شود. این پایگاه های اطلاعاتی معمولاً در قالبی که برای دستگاه ها و رایانه ها قابل خواندن و قابل دسترسی باشند ذخیره می شوند.
 
البته چنین شیوه ذخیره سازی اطلاعات تنها روش موجود نیست و شیوه های دیگری مانند ذخیره سازی ساده در پرونده ها نیز استفاده می گردد. مسئله ای که ذخیره سازی داده ها در دادگان را موثر می سازد وجود یک ساختار مفهومی است برای ذخیره سازی و روابط بین داده ها است.

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

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

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

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

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

+ نوشته شده در  دوشنبه دهم بهمن 1390ساعت 18:9  توسط نرگس  | 

ازترکیب گزینش وپرتو میتوان اطلاعات بیشتری به دست اورد

 مثال:ستون های شماره دانشجو،نام،کددانشکده ومیانگین دانشجویانی که معدل انها بالای 15 است

 

 

عملگرهای مجموعه:

عملگر اجتماع اشتراک وتفاضل.ورودی هر کدام دورابطه وخروجی انها یک رابطه است.روابط ورودی باید همتا باشند

·       تعداد صفتهای دورابطه مساوی باشند

·       صفت ها به ترتیب دارای دامنه یکسان باشند

مثال:لیست نام همه ی افراد یکه دانشکده ها هستند

 

 

 

 

مثال:لیست نام اساتیدی که رئیس دانشکه نیستند

 

 

 

مثال:لیست اسامی دانشجویان واساتنی همنام

 

+ نوشته شده در  شنبه سیزدهم خرداد 1391ساعت 11:5  توسط نرگس  | 

گزینش و پرتو

گزینش وپرتو

سطرهای ازجدول راانتخاب می کندنام جدول جلوی علامت گزینش در پرانتز وشرط انتخاب زیر ان می اید همه ستون های ان داخل جدول می ایند

مثال:تمام ستون های جدول دانشجو که شهر ان یزد است وشماره ی دانشکده انها 4است

     دستور:

خروجی:

 

 

 

 

پرتو:

ستون های ازجدول راانتخاب میکند وهیچ گونه شرطی اعمال نمی شودچون خروجی یک رابطه است واز تئوری مجموعه ها پیروی می کند ودرمجموعه عضو تکراری معنا ندارد.سطرهای تکراری پرتو حذف میشوند

 مثال:ستون های شماره دانشجو،نام،وکددانشجو ازجدول دانشجو

    دستور:

 

   خروجی:

 

 

مثال:شهرهای مختلف محل تولد دانشجویان

   دستور:

 خروجی:

 

 

+ نوشته شده در  شنبه سیزدهم خرداد 1391ساعت 9:55  توسط نرگس  | 

جامعیت

جامعیت دامنه ای :Domain integrity

 یعنی تمام صفات درتمامی رابطه هاازنوع دامنه خود باشند(مثال ۱/۷۴به عنوان شماره دانشجوی که عدد صحیح است پذیرفته نشود

جامعیت درون رابطه ای:Intra-relation integrity

یعنی هر رابطه به تنهایی صحیح باشد.مثلا عضو تکراری نداشته باشدوکلیدهایش درست باشند کلید هادارای مقدارتهی یاتکراری نباشد

جامعیت ارجاع: Referential  integrity

یعنی کلید خارجی درست تعریف شده باشدمثلا کلید خارجی دریک رابطه حتما دررابطه دیگر کلید باشد

+ نوشته شده در  چهارشنبه دهم خرداد 1391ساعت 17:6  توسط نرگس  | 

انواع کلیددر مدل رابطه ای

کلید
در مدل رابطه ای هیچ دو سطری در جدول نباید مشابه باشند. این در واقع یک ویژگی اساسی جدول است. اگر دو سطر دو نمونه موجودیت متفاوت را دردنیای واقعی نشان دهند به نحوی باید از هم متمایز شوند تا به هر کدام در جدول بتوان جداگانه رجوع کرد. بنابراین حداقل یک مقدار منحصر به فرد باید وجود داشته باشد که باعث متمایز شدن سطرها از یکدیگر شود. ستونی که حاوی این مقدار است کلید نامیده می شود.
کلید داری دو خاصیت را باید دارا باشد؛ منحصر به فرد بودن و غیر تهی بودن(قانون اول جامعیت).
در یک رابطه انواع مختلفی از کلید ممکن است وجود داشته باشد:
* کلید کاندید
* کلید ترکیبی
* کلید اصلی
• کلید خارجی
کلید کاندید
از مجموعه صفات خاصه یک رابطه آنهایی که دارای دو ویژگی زیر هستند به عنوان کلید کاندید (candid key) در رابطه مذکور مطرح می شوند:
* منحصر به فرد و غیر تهی بودن
غیر قابل کاهش بودن، یعنی هیچ زیر مجموعه مناسبی از صفات خاصه تشکیل دهنده کلید، دارای خاصیت منحصر به فرد بودن نباشد.
مثال. شماره دانشجوئی و کد ملی کلیدهای کاندید در جدول مشخصات دانشجو در دانشگاه می توانند باشند.
کلید ترکیبی
کلید ترکیبی (compound key) کلیدی است که از ترکیب چند صفت خاصه ساخته می شود.
مثال. در رابطه دانشجو مجموعه نام و شماره شناسنامه می توانند به عنوان کلید ترکیبی در نظر گرفته شوند.
کلید اصلی
کلید اصلی (primary key)، کلید کاندیدی است که توسط طراح پایگاه داده انتخاب و معرفی می شود. به عبارتی طراح بانک، یکی از کلیدهای کاندید را به عنوان کلید اصلی بر میگزیند.
در تعیین کلید اصلی از بین کلیدهای کاندید باید دو ضابطه زیر را در نظر گرفت:
* اهمیت کلید اصلی نسبت به سایر کلیدهای کاندید در پرس و جوها
کوتاهتر بودن طول کلید کاندید از نظر تعداد بایت
نکته. هر جدول تنها یک کلید اولیه دارد اما به این معنی نیست که تنها یک شناسه منحصر به فرد دارد.
نکته. کلید می تواند صفات طبیعی موجودیت انتخاب شود، ولی اگر هیچ کدام از صفات خاصه مناسب نبودند یک کلید جانشین نسبت داده شود (مانند شماره کارمندی برای جدول کارمند).
نکته. در جدول، زیر کلید اولیه یک خط کشیده می شود.
نکته. اگرچه در مدل رابطه ای کلیه جداول باید دارای کلید اولیه باشند، ولی تعدادی از RDBMS ها اجباری در تعیین کلید برای هر رابطه نمی کنند، در اینصورت ترکیب کلیه صفات خاصه به عنوان کلید درنظر گرفته می شود.
مثال. شماره دانشجوئی در جدول مشخصات دانشجو را می توان به عنوان کلید اصلی انتخاب کرد.
کلید خارجی
کلید خارجی (foreign key) صفت خاصه ای در یک جدول است که در جدول دیگر نقش کلید اصلی یا کاندید را بازی کند. کلید خارجی ارتباط بین دو جدول را برقرار می کند.
کلید خارجی بر خلاف کلید اصلی می تواند تکراری یا null باشد و ممکن است در یک جدول بیشتر از یک کلید خارجی وجود داشته باشد.
جدول شامل کلید خارجی را گاهی جدول فرزند و جدولی که به آن ارجاع دارد را جدول والد می نامند.
مثال. شماره مشتری در جدول SALE کلید خارجی است زیرا در جدول CUSTOMER کلید اصلی است. شماره مشتری که در جدول فروش بدست می آید در جدول مشتری جستجو می شود تا تعیین شود محصول به کدام مشتری فروخته شده است.
خواص مدل
مدل رابطه ای دارای ویژگی های زیر است:
* متداول ترین مدل است
* بر اساس تئوری ریاضی است
• داده ها و ارتباطات بین آنها در پایگاه داده به صورت مجموعه ای از جداول دیده می شود
* هیچ جدولی دارای سطرهای تکراری نیست
* ترتیب سطرها و ستون ها در هر جدول مهم نیست
* ستون ها اتمیک هستند یعنی مقادیر ستون ها غیر قابل تجزیه اند
• هر مقدار که در دو رکورد مختلف واقع می شود رابطه ای را بین دو آن رکورد می فهماند
* ارتباط رابطه ها با یکدیگر از طریق صفات خاصه مشترک انجام می گیرد
• ایجاد، دسترسی و توسعه آن آسان است. بعد از ایجاد پایگاه داده اولیه، جداول جدید می توانند اضافه شوند بدون اینکه نیاز به تغییر کاربردهای موجود باشد
• مدل دید کاربر است نه روشی که داده بطور داخلی سازماندهی می شود
نرمال سازی
نرمال سازی (normalization) با نحوه تقسیم جداول در پایگاه داده رابطه ای سروکار دارد. نرمالسازی فرآیند تغییر ساختار پایگاه داده به منظور اجرای بهتر و راحتی کارکردن با داده است. فرم های مختلف نرمالسازی که روی پایگاه داده اعمال می شوند را فرم های نرمال می نامند.
تبدیل نمودار ER به مدل رابطه ای
هر موجودیت در مدل ER به یک جدول در مدل رابطه ای تبدیل می شود. صفات خاصه موجودیت ستون های جدول و هر نمونه موجودیت سطرهای آنرا را می سازند.
قبل از اینکه فرآیند تبدیل انجام شود باید مطمئن شویم که مدل ER تا حد ممکن ساده شده است.
مثال. موجودیت دانشجو را درنظر بگیرید.
+ نوشته شده در  چهارشنبه سیزدهم اردیبهشت 1391ساعت 10:33  توسط نرگس  | 

انواع نوع داده ای درSQL Server

DataType:

Binary Data این نوع فیلد‌ها برای نگهداری اطلاعات بصورت بایناری مانند تصاویر مناسب هستند و شامل چهار نوع به شرح زیر می‌باشد:

  • Binary
    این نوع فیلد‌ها، از 1 تا 8000 بایت را در خود جای می‌دهند.
  • Var Binary
    این نوع فیلد‌ها هم از 1 تا 8000 بایت را در خود جای می‌دهند
  • VarBinary(Max)
    این نوع Datatype در SQL 2005 معرفی شده و تقریباً همانند داده‌های Image هستند.

Unicode Data:

  • nChar
    در این نوع داده، اطلاعات از 1 تا حداكثر 4000 حرف با طول ثابت ذخیره می‌شود.

  • nVarChar
    در این نوع داده، اطلاعات از 1 تا حداكثر 4000 بایت با طول متغیر ذخیره می‌شود.
  • Char
    این نوع فیلد‌ها، اطلاعات متنی با طول ثابت از 1 تا حداكثر 8000 حرف را در خود ذخیره می‌كنند.

  • VarChar
    این نوع فیلد‌ها اطلاعات متنی با طول متغیر از 1 تا حداكثر 8000 حرف را در خود ذخیره می‌كنند. فرق بین Char و VarChar در این است كه در Char، طول رشته ثابت است. یعنی اگر یك فیلد را از نوع Char(20) معرفی كرده و در آن كلمه Orion را قرار دهیم، عین 20 حرف استفاده خواهد شد. یعنی 5 كاراكتر اول را كلمه مربوطه اشغال كرده و 15 كاراكتر باقی‌مانده، Blank خواهند بود. اما در VarChar اینگونه نیست.
  • Integer Data
    این نوع فیلد برای نگهداری اعداد صحیح و بدون اعشار استفاده می‌گردد و دارای 4 نوع به شرح زیر است. در ضمن این نوع فیلد‌ها رتبه یك سرعت در نوع فیلد‌های عددی را دارد.

    • Int
      یك عدد چهار بایتی است كه می‌تواند اعداد بین مثبت و منفی 2 میلیارد را در خود ذخیره كند.
    • TinyInt
      یك بایت را اشغال می‌كند و می‌تواند از 0 تا 255 را در خود ذخیره كند.

     

    • BigInt
      یك عدد 8 بایتی است كه می‌تواند اعداد بین مثبت و منفی 4 میلیارد را در خود ذخیره كند.

    Approximate Data

    این نوع فیلد‌ها برای نگهداری اعداد غیر صحیح با تعداد ارقام اعشار متغیر و یا تخمـینـی استفاده می‌شود.

    • Float
      یك عدد 8 بایتی كه اعداد بصورت توانی از 10 نگهداری می‌شوند.
    • Real
      یك عدد 4 بایتی است كه اعداد بصورت توانی از 10 نگهداری می‌شوند.

     

    Other DataTypes

    • Bit
      یك فیلد دو بیتی است و می‌تواند 0 و 1 و Null را ذخیره كند.كاربرد آن در زمان‌هایی است كه دو حالت وجود داشته باشد. مانند جنسیت زن و مرد.
    • Table
      این نوع فیلد را هم در زمان آموزش Functionها خواهید آموخت
    • XML
      این فیلد بیشتر برای انتقال اطلاعات و دستورات تحت web استفاده می‌شود و شامل انواع MetaData های مختلف است. این فیلد در SQL 2005 معرفی گردید.
    • ‍Cursor
      این فیلد مربوط به كنترل Cursor است كه در آینده توضیح میدم

    Date/Time

    • SmallDateTime
      این نوع فیلد، 4 بایتی است و از سال 1900 تا 2079 را با دقت هزارم ثانیه ذخیره می‌كند.
    • DateTime
      این نوع فیلد، 8 بایتی است و از سال 1700 تا 9999 را با دقت هزارم ثانیه ذخیره می‌كند




     







     



     

    + نوشته شده در  سه شنبه دوازدهم اردیبهشت 1391ساعت 12:26  توسط نرگس  | 

    eilqm0bd85zbsh581k.jpg

    + نوشته شده در  دوشنبه چهارم اردیبهشت 1391ساعت 16:22  توسط نرگس  | 

    مشارکت اجباری و اختياری

    مشارکت اجباری و اختياری

     

    يک موجوديت در يک ارتباط می تواند به صورت اجباری (mandatory) يا اختياری (optional) شرکت کند.

    اگر يک نمونه از يک موجوديت هميشه در يک رابطه مشارکت کند مشارکت اجباری است. اگر وجود يک نمونه موجوديت در ارتباط الزامی نباشد مشارکت اختياری است.

    در نمودار ER، روی خط ارتباط، مشارکت اختياری توسط يک دايره در کنار موجوديتی که بطور اختياری در ارتباط شرکت کرده و مشارکت اجباری توسط يک خط عمودی در کنار موجوديتی که الزامی شرکت کرده نشان داده می شود.

     مثال. هر پروژه بايد توسط يک شعبه مديريت شود. ممکن است شعبه ای باشد که پروژه ای را انجام نمی دهد.

     

    0vgnb5prgtfsxz4dadwa.jpg

    + نوشته شده در  دوشنبه چهارم اردیبهشت 1391ساعت 16:18  توسط نرگس  | 

    کاردینالیتی

    کاردینالیتی

    کارديناليتی (cardinality) در يک ارتباط تعداد ماکزيمم و مینيمم نمونه های يک موجوديت که در يک ارتباط مشارکت می کنند را مشخص می کند. به بيان ديگر چند و چون تناظر بین عناصر مجموعه نمونه های یک نوع موجودیت با عناصر مجموعه نمونه های نوع موجودیت دیگر در يک ارتباط را بیان می کند.

    کاردینالیتی یک ارتباط حالت های زير را ممکن است داشته باشد:

    • ارتباط یک به یک (1:1)
    • ارتباط یک به چند (1:m)
    • ارتباط چند به چند (m:n)

    روی یک نمودار ER اگر انتهای خط ارتباط مستقیم باشد نشان دهنده "يک" است و اگر چند شاخه باشد نشان دهنده "چند" است.

    ارتباط يک به يک

    ارتباط يک به يک (1:1) وقتی است که دقيقا يک نمونه از موجوديت A مربوط به دقيقا يک نمونه از موجوديت B شود.

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

     

     

     

    mvzqfe23l5xfhlogovbh.jpg

     

     

    ارتباطات يک به چند

    يک ارتباط يک به چند (1:n) وقتی است که يک نمونه از موجوديت A به چندين نمونه از موجوديت B مربوط شود اما برای هر نمونه موجود در B تنها يک نمونه از A وجود داشته باشد.

    مثال. در یک رشته تعدادی دانشجو مطالعه می کند. هر دانشجو تنها می تواند در یک رشته درس بخواند.

     

     

    d9fyh3n9p78tso1plla.jpg

     

     

    ارتباطات چند به چند

    ارتباط چند به چند (m:n) وقتی است که يک نمونه موجوديت A به چند نمونه موجوديت B مربوط شود و يک نمونه موجوديت در B به چند نمونه موجوديت در A مرتبط شوند.

    مثال: هر استاد چند درس را ارائه می دهد و هر درس می تواند توسط چند استاد ارائه شود.

     

     kxe8x3n2cvnq2e5mwcnj.jpg

     

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

    نکته. کارديناليتی ارتباط توسط قوانين حاکم بر سازمان تعیین می شوند.

    + نوشته شده در  شنبه دوم اردیبهشت 1391ساعت 16:1  توسط نرگس  | 

    ارتباط

    ارتباط

    موجودیت های هر محیط عملیاتی با هم ارتباطاتی دارند. ارتباط وابستگی بین چند موجودیت را نشان می دهد. یک ارتباط (relationship) یک وابستگی معنی دار بین دو يا چند نوع موجودیت مختلف است.

    ارتباطات معادل افعال یا مفاهيمی نظیر خرید کردن، تعمیر کردن، عضو بودن، رئیس یک سازمان بودن هستند.

    ارتباط در نمودار ER توسط خطوط مشخص می شود. نوع ارتباط ممکن است روی خط يا درون يک لوزی نوشته شود.

    ممکن است موجودیت هائی داشته باشیم که توسط دو یا چند ارتباط متفاوت بهم مربوط شده اند.

     

     مثال. استاد درس را تدريس می کند. درس توسط استاد تدریس می شود. تدريس ارتباط بين موجوديت استاد و درس را مشخص می کند.

     

    x0v7ma5y8zpuj4n28yb.jpg

     

     

     

    درجه ارتباط

    تعداد موجودیت هائی که در یک ارتباط شرکت می کنند درجه ارتباط (degree) نامیده می شود.

    اگر دو نوع موجودیت به هم مربوط شوند ارتباط از درجه دو است و ارتباط دوتائی (binary) ناميده می شود

     

    ارتباطات دوتائی معمولترين نوع در دنيای واقعی هستند.

    اگر سه نوع موجودیت درگیر باشند ارتباط از درجه سه است و ارتباط سه تائی (ternary) نامیده می شود. ارتباطات سه تائی اکثرا به دو يا چند ارتباط دوتائی تجزيه می شود

     

    مثال. يک فروشنده محصولی را به يک مشتری می فروشد. اين يک ارتباط از درجه 3 است.

     

     

    isfpoxh361j8wehyw70.jpg

     

     

    اين ارتباط سه تائی را می توان به چند ارتباط دو تائی تجزيه کرد. موجودیت جدیدی را با نام فروش جایگزین ارتباط می فروشد می شود. حالا فروشنده می تواند به مشتری پیوند بخورد.

     

     

    lv1t0o7yhjj2wj3qv0i.jpg

     

     

     

    يک ارتباط بازگشتی وقتی اتفاق می افتد که يک موجوديت به خودش مربوط می شود.

     

    مثال. کارمندان با کارمندان همکاری می کنند.

     

    uyewzadtm3ft9d0dxe8l.jpg

    + نوشته شده در  شنبه دوم اردیبهشت 1391ساعت 15:46  توسط نرگس  | 

    مطالب قدیمی‌تر