پایگاه داده - Reza Samizadeh Site
Download
Report
Transcript پایگاه داده - Reza Samizadeh Site
1
2
• از نظر اهمیت:
– در هر سال شاید بیشتر از یکصد و پنجاه هزار صفحه مطلب آکادمیک در این زمینه منتشر
میشود ,دهها نرم افزار سیستم مدیریت پایگاه داده به بازار مصرف عرضه شده,تعداد زیادی
کتاب درسی یا مرجع در این زمینه نوشته شده است.
• از نظر مفهوم:
– هر سیستمی که به کاربر امکان دهد تا اطالعات خود را ذخیره,بازیابی و پردازش کندو یا
احیانا اطالعات جدیدی را تولید نماید.
3 | 70
• عمل ذخیره و بازیابی:
– مجموعه ای از الگوریتمها و تکنیکها که در ذخیره سازی ،بازیابی و پردازش اسناد،
مدارک ،متون ،تصاویر و اصوات به کار میروند و این گونه دادهها ممکن است ساختمند،
نیم ساختمند و یا حتی ناساختمند باشند.
4 | 70
.1
سیستم فایلینگ
.2
سیستم مدیریت دادهها
.3
سیستم مدیریت پایگاه دادهها سیستم های متعارف
.4
سیستم مدیریت پایگاه شناخت دانش
.5
سیستم مدیریت پایگاه دادههای شیی گرا شیی گرا
.6
سیستم هوشمند مدیریت پایگاه دادهها
.7
سیستم معنایی مدیریت پایگاه دادهها
5 | 70
.8
سیستم مدیریت دادههای زمانمند
.9
سیستم مدیریت پایگاه دادههای نیم ساختمند و ناساختمند
.10سیستم مدیریت پایگاه دادهها نیم ساختمند و ناساختمند
.11سیستم مدیریت چند پایگاهی
.12سیستم اطالعات اجرائی
6 | 70
.1
سخت افزار پایگاه داده
.2
نرم افزار مخصوص پایگاه داده ها
.3
کاربر سیستم های پایگاه داده ها
.4
داده در محیط های پایگاهی
7 | 70
.1
مدلسازی معنایی داده ها -مفاهیم مدل رابطه ای ،دید های رابطه ای ،پایگاه داده های
رابطه ای
.2
پایگاه داده ها در محیط انتزاعی
.3
معماری پایگاه داده ها معماری سیستم پایگاه داده ها
.4
سیستم مدیریت پایگاه داده ها DBMS
.5
مدیر پایگاه داده ها
.6
مزایا و معایب تکنولوژی پایگاه داده ها
.7
طراحی فیزیکی پایگاه داده
8 | 70
.1
مدل انتزاعی پایگاه داده ها یا به طور خالصه مدل داده ای الگوی کاری کاربران پایگاه
دادهها را در سطح منطقی مشخص میکند.
.2
لا به صورت مجموعهای
یک مدل دادهای تنها شیوه ساختمان بندی دادهها نیست بلکه معمو
از عملیات ها که میتواند روی دادهها اجرا شود تعریف میشوند.
9 | 70
.1
مدل تخت
.2
مدل سلسله مراتبی
.3
مدل شبکهای
.4
مدل رابطهای
.5
پایگاه دادههای چند بعدی
.6
پایگاه دادههای شی گرا
برای دیدن اطالعات کامل هر کدام از مدلها بر روی
آن کلیک نمایید
10 | 70
• مدل تخت یا جدولی تشکیل شده است از یک آرایه دو بعدی با عناصر دادهای
که همه اجزای یک ستون به صورت دادههای مشابه فرض میشود و همه
عناصر یک سطر با هم در ارتباط هستند.
• این مدل پایه برنامههای محاسباتی است.
• پایگاه داده با فایل های تخت به سادگی توسط فایل های متنی تعریف میشوند.
• هر رکورد یک خط است و فیلد ها به کمک جدا کنندههایی از هم مجزا
میشوند.
• مثال:
در ستون هایی که برای نام کاربری و رمز عبور در جزئی از سیستم
های پایگاه دادهای امنیتی مورد استفاده قرار میگیرد هر سطر شامل رمز
عبوری است که مخصوص یک کاربر خاص است.
11 | 70
• در این مدل اطالعات بوسیله اشاره گرهایی که توسط کاربر و در سطح فیزیکی
تعریف میشوند به هم متصل میشوند.
• اطالعات در این مدل به شکل یک درخت شبیه سازی میشوند.
• طراحی چنین پایگاهی بسیار مشکل است .با وجود تمام معایبی که دارد کارایی
این مدل از فایل های تخت بسیار بیشتر است.
• مثال:
اگر هنگام طراحی کالس در سطح بالی دانشجو قرار گیرد ،از هر دانشجو تعدادی
اشاره گر به کالسهایی که وی در آن ثبت نام کرده است ،اشاره خواهند کرد .بنابراین
زمان گزارش گیری نامتقارن خواهد شد و زمان پیدا کردن کالسهایی که یک دانشجو
دارد بسیار کوتاه و زمان پیدا کردن دانشجویانی که در یک کالس ثبت نام نموده اند
بسیار طولنی خواهد بود.
12 | 70
• مدل شبکهای بر پایه دو سازه مهم یعنی مجموعهها و رکوردها ساخته میشود و
برخالف روش سلسله مراتبی که از درخت استفاده میکند ،گراف را به کار
میگیرد.
• مزیت این روش بر سلسله مراتبی این است که مدلهای ارتباطی طبیعی بیشتری
را بین موجودیتها فراهم میکند.
13 | 70
• علی رغم این مزیتها به دو دلیل اساسی این مدل با شکست مواجه شد:
.1شرکت IBMبا تولید محصوالت IMSو DL/Iکه بر پایه مدل سلسله مراتبی است این مدل را
نادیده گرفت.
.2سرانجام مدل رابطهای جای آن را گرفت چون سطح باالتر و واضح تر بود .تا اوایل دهه ۸۰به
علت کارایی رابطهای سطح پایین مدل سلسله مراتبی و شبکهای پیشنهاد میشد که بسیاری از
نیازهای آن زمان را برطرف میکرد .اما با سریعتر شدن سختافزار به علت قابلیت انعطاف و
سودمندی بیشتر سیستمهای رابطهای به پیروزی رسیدند.
14 | 70
• رکوردها در این مدل شامل فیلدهایی است و ممکن است همچون زبان COBOL
به صورت سلسله مراتب اولویتی باشد.
• مجموعهها با ارتباط یک به چند بین رکوردها تعریف میشود :یک مالک و چند
عضو.
15 | 70
• عملیاتهای مدل شبکهای از نوع هدایت کنندهاست :یک برنامه در موقعیت
جاری خود باقی میماند و از یک رکورد به رکورد دیگر میرود هر گاه که
ارتباطی بین آنها وجود داشته باشد.
لا از اشاره گر ها( )pointersبرای آدرس دهی مستقیم به یک رکورد در
• معمو
دیسک استفاده میشود .با این تکنیک کارایی بازیابی اضافه میشود هر چند در
نمایش ظاهری این مدل ضروری نیست .
16 | 70
• این مدل اساس کار سامانه مدیریت پایگاه دادههای امروزی است.
17 | 70
• پایگاه دادههای رابطهای توانست به سرعت بازار را تسخیر كند.
• به كارگیری كلیدها در چند ركورد مرتبط به هم و در چند پایگاه داده مشترك،
كندی سیستم را موجب میشد.
برای نمونه برای یافتن نشانی كاربری با نام دیوید ،سیستم رابطهای باید نام وی
را در جدول كاربر جستجو كند و كلید اصلی را بیابد و سپس در جدول نشانیها،
دنبال آن كلید بگردد.
18 | 70
• راه كار این مشكل این است كه پایگاه دادهها اطالعات صریح درباره ارتباط بین
دادهها را ذخیره نماید.
• این سیستم در هنگامی كه از مجموعه دادههای بزرگ استفاده میشود ،بسیار
سودمند خواهد بود .از آنجاییكه این سیستم برای مجموعه دادههای بزرگ به كار
میرود ،هیچگاه در بازار به طور مستقیم عمومیت نخواهد یافت.
19 | 70
• اگر چه سیستمهای چند بعدی نتوانستند بازار را تسخیر نمایند ،اما به توسعه
سیستمهای شی گرا منجر شدند.
• این سیستمها كه مبتنی بر ساختار و مفاهیم سیستمهای چند بعدی هستند ،به كاربر
امكان میدهند تا اشیاء را به طور مستقیم در پایگاه دادهها ذخیره نماید.
• نتیجه:
بدین ترتیب ساختار برنامه نویسی شیء گرا ( ) object orientedرا میتوان به
طور مستقیم و بدون تبدیل نمودن به سایر فرمتها ،در پایگاه دادهها مورد استفاده
قرار داد.
20 | 70
• این وضعیت به دلیل مفاهیم مالكیت در سیستم چند بعدی ،رخ میدهد.
• مثال:
در برنامه شی گرا ،یك شی خاص "مالك " سایر اشیا در حافظه است ،مثالا دیوید
مالك نشانی خود میباشد .در صورتی كه مفهوم مالكیت در پایگاه دادههای
رابطهای وجود ندارد.
21 | 70
22
صفحۀاولیهبرایورودبهمحیطبرنامه
اختیار نوع ویندوز
اختیار نوع برنامه
23 | 70
• با انتخاب گزینه در اختیار نوع ویندوز ،نیازی به شناسۀ کاربری
و رمز ورود نمی باشد .
• با انتخاب گزینه در اختیار نوع برنامه ،مدیر به کاربر شناسۀ
کاربری و رمز ورود یکتا تخصیص می دهد.
24 | 70
در ابتدای ورود به برنامه نوع پایگاه داده مورد نظر و زبان آن
پایگاه به صورت پیشفرض انتخاب شده است .این گزینه توسط
کاربر قابل تغییر می باشد.
25 | 70
26 | 70
27 | 70
صفحهیاولیهنرمافزارشاملتمامابزارهایمدیریتی
در قسمت چپ برنامه تمام ابزار مورد نیاز
به صورت درختی قابل دسترسی میباشد.
28 | 70
صفحهیاولیهنرمافزارشاملتمامابزارهایمدیریتی
پایگاه های داده ی موجود در برنامه شامل
پایگاه داده نرم افزار و پایگاه های داده ی
ساخته شده توسط کاربر
29 | 70
پایگاه داده سیستم شامل تمامی اتصاالت و
رویه های پیش فرض برای اجرای برنامه
پایگاه داده ایجاد شده توسط کاربر برای انجام
پروژه به نامهای AminD888و project
30 | 70
قسمت امنیت برنامه شامل اعطای شناسه
کاربری و میزان دسترسی کاربر به فایل ها
و عملیات مدیریتی
31 | 70
شناسه کاربری فراهم آمده توسط کاربر
32 | 70
اشیای فراهم امده توسط برنامه برای تسهیل
مدیریت داده ها ،شامل انواع ویوها و
اس پی های ساختاری
33 | 70
34 | 70
35 | 70
36 | 70
37
ابتدا باید بر روی گزینه Database
کلیک راست کرده سپس از منو باز شده
گزینۀ New Databaseرا انتخاب کنید
38 | 70
تمام ساختارها و جزئیات مربوط به database
را مانند حجم مورد نیاز و نام و غیره را در این
قسمت مشخص می کنیم.
39 | 70
• جداولمهمترینعناصرسیستمهایپایگاهدادههستند،کهبرایذخیرهو
نگهداریسازمانیافتهاطالعاتمورداستفادهقرارمیگیرند.
• جدولهادارایسطروستونهستندوتوسطیکناممنحصربهفرددرسطح
برنامهشناسایيمیشوند.
• بهسطرهايیکجدولرکوردوبههریکازخانههایستونیکجدولفیلد
میگویند.
• هررکوردمحجموعهایازاطالعاتطبقهبندیشدهدربارهیکموجودیت
خاصاستوهرفیلدیکیازخصوصیاتآنموجودیترابههمراهمقدارآن
مشخصمیکند.
40 | 70
• موجودیتپدیده،شییافردیدرمحیطپایگاهدادهاستکهمیخواهیم
اطالعاتمربوطبهآنرانگهداریکنیم.
• مثال :بهطورمثالدرمحیطپایگاهدادهدانشگاه،انواعموجودیتهاعبارتند
از :دانشجو،درس،استاد،دانشکدهو. ...
• هرفیلددربرگیرندهیکصفتوویژگیبرایموجودیتمیباشد،کهدارای
2جزءاصلیاست :اسمصفتخاصه :نامصفتموردنظرراتعیینمیکند.
برایمثالفیلدنام،نامخانوادگی،شمارهدانشجویيو ...درجدولاطالعات
مربوطبهدانشجو.
• مقدارصفتخاصه :دربرگیرندهمقداربرایصفتموردنظراست .برای
مثالمقدار" احمد" بهعنوانمقداربرایفیلدنام.
41 | 70
بر روی گزینه ”“New Table
کلیک کنید
42 | 70
مشخصات ستونهای تشکیل دهنده جدول و فرمت
هر یک را در این محل مشخص میکنیم
43 | 70
در این محل کلید اصلی که شناسه دسترسی ماست را به ستون مربوطه اختصاص میدهیم
همچنین کلید خارجی را برای ارتباط با سایر جداول اختصاص میدهیم
44 | 70
بعد از ساختن جداول برای دسترسی به اطالعات هم میتوان از
دستورات استفاده نمود و هم موثرترین راه برای درخواست های
پرتکرار استفاده از View & structure procedureمی باشد
که ما در ادامه نحوه ی ساختن هر یک را شرح می دهیم.
45 | 70
بر روی گزینه ی viewاز زیر شاخه ی
data baseکلیک راست میکنیم و گزینه ی
new viewرا انتخاب میکنیم.
46 | 70
نام جدولی که viewاز ان گرفته میشود و یا
جداولی که viewبا استفاده از کلید های
خارجی به صورت توام کرفته میشوند در این
صفحه مشخص میشود
47 | 70
ستون های مشخص شده در viewدلخواه را از
بین تمام ستون های جدول مربوطه عالمت زده ،
مشخص میکنیم.
48 | 70
برنامه به طور هوشمند دستور t SQLمربوطه
را در پایین صفحه درج مینماید.ما میتوانیم با
درج این دستور در قسمت ، new query
viewدلخواه را مستقیما مشخص کنیم
49 | 70
در این قسمت پس از مشخص شدن تمام ستون ها
و نوع داده ی هر کدام ستون idبه عنوان کلید
اصلی برای دسترسی به اطالعات هر رکورد
مشخص می نماییم.
50 | 70
• از پرس و جو برای ایجاد یک پرسش و جستجو در جدول و استخراج اطالعات
مورد نظر استفاده می شود .نتایج حاصل از یک پرس و جو در یک جدول
موقت که دارای فیلد ها و سطر های واجد شرایط جستجو است ،نمایش داده
می شود .
• مثال :به عنوان مثال می خواهیم ،مشخصات دانشجویانی که در ترم دوم سال
تحصیلی 86 - 85موفق به گذارندن درس پایگاه داده شده اند را از جدول
دانشجویان استخراج کنیم .برای این منظور از یک پرس و جو استفاده
می کنیم .عمده دستورات نرم افزار برای ایجاد و مدیریت پرس و جو استفاده
می شوند.
51 | 70
طریقه ی نوشتن یک queryجدید
نتیجه ی حاصل از runکردن یک queryدر
پایین صفحه مشخص میشود
52 | 70
• برای عملیات با تکرار بال به منظور جلوگیری از کدنویسی اضافه و همچنین
افزایش سرعت برنامه از رویه های ساختار یافته استفاده میکنیم ،در ادامه نحوه
ی ساختن رویه های ساختار یافته را نشان میدهیم.
53 | 70
ساختار اصلی رویه های ساختار یافته
54 | 70
رویه های ساختار یافته سیستمی برای راه
اندازی پایگاه داده
55 | 70
30
قسمت مشخص شده با رنگ ابی محل نوشتن دستورات مورد
نظر ائم از دستورات فراخوانی و یا دستورات تغییر در داده
ها میباشد ،بعد از مشخص شدن نام رویه به جای تکرار در
نوشتن کدها رویه ی مورد نظر فراخوانی میشود.
56 | 70
T SQL
:دستوراتساختاریافتهشامل
Select
Where
Insert
Join
Delete
57 | 70
بر روی گزینه ” “Script Table asکلیک کنید.
گزینه ” “Insert toکلیک کنید.
Queryروی
بر
“New
بر روی گزینه ”Window Editor
کلیک کنید.
نحوه ی دسترسی مستقیم به هر یک از دستورات فوق
58 | 70
دستور SELECT
اولین نیاز ما انتخاب اطالعات از یک جدول است .در دستور زیر یک ستون از
یک جدول را انتخاب میکنیم .
قالب دستور SELECT "column_name" FROM "table_name" :
59 | 70
: فرض کنید جدولی مانند زیر داریم: مثال
Table Store_Information
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
SELECT store_name FROM Store_Information
نتیحه
Los Angeles
San Diego
Los Angeles
Boston
60 | 70
دستور WHERE
ممکن است گاهی بخواهیم اطالعات را طبق پارامتر خاصی استخراج کنیم :
"SELECT "column_name
"FROM "table_name
"WHERE "condition
61 | 70
جاهایی که فروش بیش از هزار دالر. فرض کنید جدولی مانند زیر داریم: مثال
:است را می خواهیم
Table Store_Information
store_name Sales Date
Los Angeles $1500 Jan-05-1999
San Diego $250 Jan-07-1999
Los Angeles $300 Jan-08-1999
Boston $700 Jan-08-1999
SELECT store_name
FROM Store_Information
WHERE Sales > 1000
نتیجه
store_name
Los Angeles
62 | 70
این دستور برای وارد کردن و ایجاد یک رکورد جدید در جدول استفاده می شود .
شکل کلی این دستور به شرح زیر است :
نام جدول Insert into
)مقدار ، 1مقدار Values ) ... ، 2
*می توان تعیین کرد که مقادیر مورد نظر به ترتیب به کدام ستون های جدول
وارد شوند .برای این منظور ابتدا نام ستون های مورد نظر را به ترتیب جلوی
نام جدول در یک پرانتز وارد کرده و با کاما از هم جدا می کنیم .سپس مقادیر
متناظر را به
همان ترتیب پس از واژه مقادیر در پرانتز وارد می کنیم .
نکته :چنانچه برای فیلد یا فیلدهایی مقداری در نظر گرفته نشود ،جای آنها در
جدول خالی می ماند .فقط باید به ترتیب نام ستون ها و مقادیر دقت کرد .
63 | 70
مثال :مشخصات نام و نام خانوادکی را برای یک دانشجو به نام امید صفوی را
در جدول Studentوارد کنید :
) Insert into Student ( Name , Family
) "Values ( "Omid" , "Safavi
64 | 70
Delete
از این دستور برای حذف اطالعات یک رکورد در جدول استفاده می شود .
شکل کلی این دستور به شکل زیر است :
نام جدول Delete From
نام و مقدار یک فیلد از رکورد مورد نظر Where
65 | 70
مثال :رکورد اطالعات دانشجو به شماره دانشجویي 10724113را حذف کنید:
Delete From Students
" Where StudentID = "10724113
66 | 70
این دستور برای تغییر اطالعات موجود در یک فیلد و جایگزینی آن با یک مقدار
جدید به کار می رود .
شکل کلی این دستور به صورت زیر است :
نام جدول Update
نام فیلد = مقدار جدید Set
نام فیلد = مقدار قبلی Where
67 | 70
مثال :نام دانشجو احمد رضایي را به علی رضایي تغییر دهید:
Update Student
" Set Name =" Ali
" Where Name = " Ahmad
همچنین می توان برای تعیین رکوردی که می خواهیم تغییر دهیم ،از مقدار یک -
فیلد دیگر به غیر از فیلدی که می خواهد تغییر کنید استفاده کنیم .در این حالت از
فیلد مذکور ،برای آدرس دهی رکورد مورد نظر استفاده می شود.
" Update Student Set Name = " Ali
" Where StudentID = " 41252214
68 | 70
.1ویکیپدیا ،دانشنامه آزاد.
69 | 70