Professional Documents
Culture Documents
لکچر نوت •
Modern Database Management System (Jaffery A. Hoffer) •
Step by Step Courseware M.S Access (Microsoft Access •
2002) – Microsoft
Microsoft Access 2003 •
Database 1 Chapter •
:• ادرس های انترنتی
http://www.istutorials.com/database-tutorials.htm •
http://db.grussell.org •
Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
اهداف و دست اورد از این کورس
اساسات دیتابیس
موضوع :تعریفات و مفاهیم دیتابیس
استفاده و دانستن تکنالوژي دیتابیس ،امروزه یک جزء مهم تمامي امور در زندگي را تشکیل •
میدهد .دیتابیس ها در اکثریت مواردقابل استفاده میباشد .
دیتابیس در عصر تکنالوژی امروزی در زندگی بشر بی تاثیر نیست زیرا اگر ما متوجه شویم •
به اشکال مختلف با دیتابیس سروکارداریم.
طورمثال: •
اگر به خاطر دریافت و یا پس انداز پول به بانک مراجعه میکنیم، •
اگر به پوهنتون ها به خاطر دریافت نتایج امتحانات(ترانسکرپت) مراجعه میکنیم . •
سروي تعداد استفاده کننده گان دیتابیس Facebookاضافه تر از 25میلیون نشان میدهد . •
• .....
• این همه کار ها بیدون دیتابیس امکان پذیر نیست.
Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
سیستم مدیریت دیتابیس یكي از سیستمهاي
.ذخیره و بازیابي اطالعات است
• دیتا ساخته شده از Textتصاویر و ویدیو و آواز است که میتواند توسط کمپیوتر
تحت پروسس قرار گیرد.
• و یا به عبارت دیگر معلومات به شکل خام
()information in row formatعبارت از دیتا است.
• یا معلومات که پروسس نشده باشد عبارت از دیتا است.
سیستم دیتابیس اساسا ً یك سیستم ثبت معلومات به شكل كمپیوتري یا - Computerized •
Record keeping Systemمیباشد.
مجموعه ترتیب شده دیتا های مرتبط به شکل منظم را دیتابیس گویند . •
یا •
در مورد یک یا چند شی مجموعه دیتا های با هم ارتباط یافته را دیتا بیس گویند . •
مجموعه دیتا که به شکل منظم ترتیب و ذخیره شده باشد و در صورت ضروت به اسانی در •
دسترس قرارگرفته ،تجدید و اداره شده بتواند.
DBMSضرورت است
? برای این همه کار ها به
Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
موارد استفاده دیتابیس
peace Search
جستجو B0117955
Said kamal
***********
Enter
• مثآلیک پوهنتون دیتا بیس به نام ( )University Databaseرا برای محصلین داشته میباشد که
ممکن در آن معلومات راجع به محصلین کورسهای محصلین و درجه هر محصل موجود میباشد
که در ذیل ان معلومات را بشکل دیتابیس در اورده که بعضی معلومات ها هم در آن عالوه
نموده ایم .در این دیتابیس همه معلومات را در 5فایل ( ) Tableگنجانیده ایم که هر یک از این
فایل ها معلومات های هم نوع را در ریکارد ها ) )Recordsجابجا میسازد.
ممكن یك شركت ساختماني معلومات پروژهاي خود را در دیتابیس ثبت نماید.
ممکن پولیس تفصیالت در مورد جرایم مجرمان را در دیتابیس ذخیره نماید.
ممکن یک مکتب معلومات راجع به شاگردان ،کارمندان و استادان خود در دیتابیس ثبت
نماید.
ممکن یک شفاخانه معلومات راجع به مریضان ،داکتران ،ومصارف خود ثبت نماید.
ممکن حکومت ها معلومات راجع به مالیات مردم ثبت نماید.
ممکن یک بانک معلومات راجع به حساب داران خود در دیتابیس داشته باشد.
ممکن پوهنتون معلومات راجع به محصلین ،استادان ،دیپارتمنت ها ،کورسهای موجود در
هر دیپارتمنت ،سکشن های موجود در اکادمی وبالخره معلومات راجع به تمام کارمندان خود
در یک دیتابیس ذخیره نماید…….
Database Application
DBMS
Database
:Systemشخصی که مسوءلیت دیزاین نمودن سافت ویر و دیتابیس را داشته باشد. • Developer
:Database designerشخصی که مسوءلیت مشخص کردن دیتا برای دیتابیس و تعین نمودن ساختار دیتابیس •
برای ذخیره دیتا را به عهده دارد .
) :System Analyst(Software Engineerشخصی که وظیفه آن تعین و جمع آوری معلومات و دانستن •
ضرورت های استفاده کننده ()End Userمیباشد.
hardware resources
سیستمهاي مدیریت دیتابیس را ميتوان به چندین صورت دستهبندي نمود این دستهبنديها در ذیل آمدهاند:
از نظر مودل دیتا
• سیستم رابطهاي
• سیستم سلسله مراتبي(درختی)
• سیستم شبكهاي
Applications
Applications
Database Components
• دیتای که تشریح کننده خصوصیات و صفات دیتا های دیگر باشند .
• دیتا که ساختار یک دیتابیس را تشریح میکند به نام Metadataیاد میشود.
• مانند:
• نام جدول ها .
• نام ستون ها .
• مشخصات یا ) (propertyجدول ها Column،ها وغیره
StudentFName // 30 ولد
StudentGFName // 35 ولدیت
اساسات دیتابیس
:به صورت عموم دیتابیس ها به سه نوع ذیل تقسم بندی شده است
Oracle
Microsoft SQL Server
My SQL Server
• دیتابیس که بشکل منطقی یک ،ولی بشکل فزیکی در نقاط مختلف ساحه جغرافیایی
در کمپیوتر های مختلف پخش شده باشد .
اساسات دیتابیس
دیتابیس های Relationalنمیتواند که دیتا های مغلق وپیچیده مثآل اواز (، )Sound
ویدیو ( ) Moviesوغیره Multimediaرا به شکل درست Proceessو اداره نماید
به این ملحوظ یک نوع جدید از ترکیب مودل مرتبط( )Rlationalو Object
relationalاست که میتواند دیتا های مغلق و پیچیده را پروسس و باالی ان با اسانی
عملیات را انجام دهد DBMSهای که به اساس همین مودل کار میکند عبارت از
ODB2, UniSQL ،Oracleو غیره میباشد.
اساسات دیتابیس
Analysis
Logical Design
Implementation
Maintenance
Implementation
Maintenance
Implementation
Maintenance
Logical Design
Logical Design
Physical Design
Implementation
Maintenance
Logical Design
Physical Design
Physical Design
Implementation
Maintenance
Physical Design
Implementation
Implementation
Maintenance
Logical Design
Physical Design
Implementation
Maintenance
Maintenance
برای مودل سازی روش های مختلفی استفاده شده میتوانند که مشهورترین روش های قرار ذیل اند
• روش موجودیت -ارتباط ()ER
• روش لسان عمومي مودلسازي ()UML
صفت ()Attribute
ارتباط
) موجودیت،(هویتEntity •
)(صفتAttributes •
) (شناسهIdentifiers •
) (وابستگیRelationships •
) (حد اعظمی و اصغریCardinality •
) (هویت ضعیفWeek Entities •
رشته تحصیلي
ER رسم نمودار
Attributeها دارای نوع دیتا یا ) )Data typesو Propertiesهای مشخص میباشد . •
مثال برای Data typesعبارت از Character ,Number, Date, Currencyو غیره میباشد. •
Attributeها دارای یک Domainاند Domain .عبارت از ست عناصر ممکنه برای یک Attributeمیباشد. •
Propertiesیا مشخصات برای یک Attributeدر مرحله اول دیزاین دیتابیس تعین میشود •
Propertiesشرایط برای گرفتن دیتا در Attributeها را وضع مینماید همچنان تعین مینماید که یک Attribute •
بصورت Defaultکدام دیتا داشته باشد و قا بلیت گرفتن دیتا خالی ( )Nullرا داشته باشد و یا خیر و غیره.
STUDENT
• باید نام ( Entityبعضی وقت ها به نام Entity Typeهم یاد میگردد) یک نام منفرد ( Singular
)nounباشد مثال STUDENT,CUSTOMAR, EMPLOYEEو غیره.
• اگر برای نام Entityاز ترکیب چنیدین نام استفاده مینمایم مثآل اسم شاگرد( ) Student Nameباید
انرا طوری نوشته کرد که اولین نام هر کلمه کالن و متباقی حروف آن کوچک تحریر گردد طور
مثآل StudentNameویا EmployeeAddressویا ، EmpAddressباید یاد اور شود که بین
نام فاصله داده نشود مثآل اگر تحریر گردد که ( )Student Nameیا ( )Emplyee Nameپس
به این شکل درست نیست بعضی وقت ها در صورت اجرای دستور های SQLغلطی رخ میدهد و
لی میتواند به عوض فاصله از عالمه ( _ ) استفاده کرد مثآل ، Emolyee_Name
Database Fundamentals I--Copyright © 2011 / CS department Student_Gradeو غیره.
M.Arif Ahmadzai
نام گذاری و مشخص نمودن نام برای Entityو Attributeها
• نام Entityباید مطابق به مشخصات و قوانین آن اداره که برای انها دیتابیس دیزاین میگردد
باشد مثآل ممکن یک کمپنی یک Entityرا بنام EMPLOYEEودیگر کمپنی به نام
CLIENTیاد نماید و همچنان باید از دیگر Entityها تفاوت داشته باشدیعنی مثآل اگر دو
Entityبه نام های CUSTOMER ORDERو PURCHASE ORDERداشته باشیم
پس هر دو باید تنها به نام ORDERیاد نه گردد.
• اگر یک نام برای Entityیک دفعه استعمال میگردد باید در تمام دیتابیس و حتی در تمام
( Organizationاداره) از همان نام استفاده گردد.مثآل Customerو Client ,Employee
• اگر به عوض نام مکمل یک Entityاز مخفف ان استفاده میگردد باید قوانین باال را مراعات
نماید مثآل Empو یا Custو غیره.
Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
Weak Entity
• این نوع Attributeمتکی به موجودیت دیگر میباشد یعنی وجود این نوع
Attributeمربوط به Attributeدیگری میباشد یا به عبارت دیگر در
صورت ناموجودیت Attributeقوی Attribute ،ضعیف موجود شده
نمی تواند
نوت :توجه داشته باشید که Weak Entityدر چوکات های دو خطه نشان داده میشود.
Entity Class
Employee
STUDENT
Employee
STUDENT
CityName
Student_Address StreateName
Student_Name
Student_Age
Sudent_ID StreateNo
Student
Flight_No Date
Flight_ID No_Of_Passengers
FLIGHT
Multi valued Attributeیا فیلد های چندین قیمته :عبارت از -B
Attributeهای است که میتواند برای هر Instanceیا به عبارت دیگر برای یک ریکارد قیمت
های مختلف داشته باشد مثآل یک استاد میتواند چندین درجه تحصیلی (…)BBA, MBA,DBA
داشته باشد یا مثآل یک شخص متواند دارای چندین نمبر تلفون باشد وغیره .
Department_ID Department_Name
است که ازیکRelationship • عبارت از
باInstance یک، جانب یک جدول 001 kabul
در ارتباطInstance جانب دیگر با یک
.میباشد 002 herat
Manager
003 mazar
Manager_ID Manger_Name Department_ID 004 konar
1
Sls100 Ali 01
Mnanager_ID
Sls200 Ahmad 02 Department_Name
Manager_Name
Sls300 Rafi 04
Manager Departmen
Sls400 javed 03 1
t
Department_ID
Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
One to many
ارتباطInstance با طرف دیگر با چندینInstance است که در ان از یک طرف یکRelationship عبارت از •
Sub_Code .میگیرد
Course_Name
Sub_Name
Subject Course
1
Course_Code
∞
Subject Course
CHILD QUOTATION
• Minimum Cardinalityبه اشکال مختلف نشان داده میشود .از جمله برای نمایش حد اقل
یک ، Entityیک خط عمودی در کنار Entityبروی خط Relationshipگذاشته میشود و
برای نمایش حد اقل صفر ( Entityیعنی که موجودیت Entityدر Relationshipاختیاری
است) یک بیضوی کوچک بشکل عمودی درکنار Entityبروی خط Relationshipدیاگرام
آن رسم میشود .
و یا هم میتوان به شکل N:Mستفاده کرد. و یا • برای نمایش چندین سمبول
دریک پروژه باید حتمآ حد اقل یک کارمند کارنماید یک کارمند میتواند در چندین پروژه ثبت گردد ولی
ولی میتواند چندین کارندان در یک پروژه کارنماید میتواند در هیچ پروژه ثبت نشود
• این مادل شکل توسعه یافته از مادل ERDمیباشدکه دارای بعضی ساختمان یا
سمبول های خاص میباشد.
بعضی مفاهیم:
( Super Classکالس عمومی) یا ( :)Super Typeعبارت از یک صنف از موجودیت
( )Entity Classعمومی است که با یک یا چندین کالس دیگری ارتباط داشته باشد.
.2در صورت که یک گروپ فرعی به یک Entity Classدیگر ارتباط داشته باشد مثآل برای
دیتابیس یک شفاخانه ممکن مریض ها به دو نوع باشدکه عبارت از مریضان
داخل( )RESIDENTPATIENTبستر و مریضان خارج بستر ()OUTPATIENT
میباشدGeneralization های خاص یک کالس عمومی به میان اوردن عبارت از پروسهEntity Class از چندین •
EmploeeNumber ParkingNumber
EmployeeName 0....1 1....1 Location
OfficePhone OtherAttribute
EmailAddress
EmployeeNumber is ParkingNumber is
Identifier Identifier
ITEM QUOTATION
ItemNumber QuotationID
Description QutationDate
1....1 0...*
Category Quantity
RetailPrice
STUDENT COURSE
StudentID
StudentName CourseID
0....* 1....*
StudentPhone CourseName
EmailAddress OtherAttribute
StudentID is Course is Identifier
Identifier
PATIENT PRESCRIPTION
PrescNo
Name Date
1
Phone 0....* PrescDetail
PrescriptionID
اساسات دیتابیس
• Primary Key
راnull عبارت از یک یا چندین کالم بوده که از تکرار ریکارد جلوگیری میکند و قیمت
.هم قبول نمیکند
یک Relationمانند جدول عبارت از ساختاردو بعدي (بعد اول ان عبارت ازقطارهای •
عمودی یا کالم ها وبعد دوم ان قطار های افقی یا سطر ها میباشد ) با مشخصات ذیل میباشد .
سطر ها ) (Rowsنشان دهنده دیتا در مورد Entityمیباشد . •
ستون ها )(Columnsنشان دهنده Attributeهاي Entityمیباشد. •
خانه های ) (Cellsیک جدول ) (Tableهر کدام یک قسمت مشخص دیتا را دارا میباشد . •
هر ستون داراي یک نام مشخص میباشد . •
ترتیب قرار گرفتن ستون ها در جدول غیر مشخص است . •
ترتیب قرار گرفتن سطر ها در جدول غیر مشخص است . •
دو سطر داراي عین محتویات بوده نمیتوانند . •
دیتا در هر سطر مربوط به یک ( entityشی ،شخص یا موقعیت ) میباشد •
اساسات دیتابیس
:Primary
• یک Attributeیا Attributeها که و قوع یک Entity instanceرا به شکل
غیر تکراری تعریف نماید عبارت از Primary Keyاست.
• یا به عبارت دیگر :عبارت از یک Attributeیا چندین Attributeاست که از
تکرار ریکارد ها جلوگیری میکند.
• Primary keysتنها بخاطر داشتن دیتا غیر تکراري مهم نبوده بلکه بخاطر ایجاد
پیوند یا Relationshipنیز مهم میباشند .
• محتواء Primary Keyرا به منظور هاي مختلف دیگر نیزاستفاده مینمایند .مثال
براي تنظیم نمودن Relationدر داخل دیتابیس تهیه Indexها بخاطر دستیابي
فوري به دیتا ،برای جلوگیر از تکرار و غیره .
Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
Primary key Attribute
: دارای خواص ذیل اندPrimary key Attribute •
. (خالی ) داشته باشدNull نمیتواند قیمت •
.) را قبول نمینمایدDuplicate( قیمت تکراری •
: ها به دو نوع استPrimary key
است که کههPrimary key عبارت از: Atomic or simple Primary Key .1
Atomic بهه طهور اختصهاری، ) باشهدAttribute یهاColumn(تنها دارای یک سهتون
Atomic PK عبارت ازStudID مثاآل. هم نوشته میگردPK به شکلPrimary key
.است
داشتن، مهم نیست بلکه شرط مهمForeign Key وPrimary Key • داشتن عین نام براي
. عین گروپ عناصر (دیتا ) میباشد
• ایننن کلینند از تکننرار و اضننافه نویسنني دیتننا تننا اننندازه زیننادي جلننوگیري
. مینمایند
بنه صنورتAutoNumber • پروگرام اکسنس ینک سنتون را در فارمنت
. اتومات به جدول اضافه مینماید
: Entity Integrity .1این قانون بیان مینماید که هر رلیشن باید یک ستون که
ازتکرار جلوگیری نماید یعنی Primary keyداشته باشد و هیچ کلید اصلی
( )Primary keyنمیتواند nullباشد.
: Referential Integrity .2این قانون بیان مینماید که هر قیمت که در ستون
کلید خارجی ( ) Foreign keyداخل میگیرد باید قبالً در ستون primary key
موجود بوده و با آن مطابقت داشته باشد ،کلید خارجی میتواند قیمت خالی (null
) به خود بگیرد.
Referential Integrityدر پروگرام اکسس به دو نوع است:
Cascade Update Related Fields (a
Cascade Delete Related Field (b
:Cascade Update .Aبه این معنی که اگر دیتا از ریکارد طرف جدول یک ( one
) sideتغیر داده شود باید در طرف جدول چندین ( )many sideنیز باید به شکل خود
کار تغیر نماید.
:Cascade delete .Bاگر ریکارد از one sideاز بین برود باید دیتا مربوطه در
many sideنیز باید به شکل خودکار از بین برود.
:Domain Integrity .3عبارت از محدود کردن ساحه و اندازه برای یک
Attributeمیباشد یعنی باید متیقین شویم که معلومات ویا دیتا که در یک کالم
اضافه میگردد درست و مطابق اندازه که برای کالم تعین شده مطابقت دارد.
(b)
Foreign key
Composite primary
key
Emp No
Employee
has
Employee (Emp_No, ….(
Depd Name
Dependent
FK
Gender
Dependent( Emp_No , Depd_Name, Gender, DOB, Relation)
Relation DOB
Composite primary key
Foreign key
Foreign key
Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
Example of mapping an M:N relationship
a) Completes relationship (M:N)
Foreign key
New
Foreign key intersection
relation
(b)
EMPLOYEE
relation with
recursive
foreign key
(a) Bill-of-materials
relationships (M:N)
CUSTOMER
ORDER
ORDER_DETAIL
PRODUCT
هر مرحله نارمالیزیشن به نام Normal formیاد میگردد و هرنارمل فارم آن
دارای شرایط خاص نیز میباشد اگر شرط در یک Normal formتطبیق شود
همان مرحله تکمیل شده و مرحله بعدی شروع میگردد.
فرض شود اینکه اگر تعداد کتابها در اکادمی 15میلیون باشد و این کتابها توسط 10هزار مطابع () Publishers •
چاپ شده باشد ،پس ادرس های این مطابع باید در 15میلیون سطر نوشته گردد ،که در این حالت اگر به طور
متوسط تعداد هر ادرس 50کرکتر باشد ،مقدار حافظه که برای ذخیره ادرس مطبعه به کار است طور ذیل معلوم
میگردد:
(15000000-10000)*50=749500000 •
فرض شود که اگر هر کرکتر در حافظه دو بایت(در سستم ) Unicdeفضا را اشغال مینماید ،در این صورت تنها در •
ستون 1.4GB، Addressحافظه را ضایع میکند که این در خود عیب دیتابیس است
Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
نواقص Flat database
در دیتابیس Library flat databaseسه نوع بی ترتیبی ( )Anomalyواقع میگردد •
:Update Anomalyاگر در دیتابیس نمبر تیلفون یک مطبعه تغیر بخورد پس در چندین سطرکه این نمره قرار .1
دارد باید تغیر داده شود ،اگر احیانآ کدام سطر سهوآ خطا شود یک غلطی به وجود میاآید که عبارت از Update
Anomalyاست.
: Insertion Anomalyفرض کیند که ستون ISBNبه حیث primary keyتعین شده باشد ،اگر معلومات در .2
مورد یک مطبعه را درجدول عالوه میکنیم و کتابهای مربوط به این مطبعه به ما معلوم نباشد در این صورت چون
معلومات در مورد هر مطبه در سطر جداگانه نوشته میکنیم ،مجبورآ باید دیتا مربوط به کتاب در هر سطر باید خالی
بگذاریم و از طرف دیگر هر ستون ISBNدیتا تکراری را نمیگیرد پس یک بی نظمی واقع میگردد که به نام
Insertion Anomalyیاد میگردد.
:Deletion anomalyاگر خواسته باشیم که در جدول باال ،تمام ریکاردها در مورد کتابها از بین برده شود ،در این .3
صورت تمام معلومات در مورد Publisherهم از بین میرود که عبارت از Deletion Anomalyمیباشد.
Database Fundamentals I--Copyright © 2011 / CS department M.Arif Ahmadzai
Functional dependency
مثال دوم
ITEM (ItemCode, WHCode, Quality)
.) میباشدItemCode,WHCode( Composite Attribute متکی بهQuality ، Attribute در انیجا هم
• هر جدول که شرایط باال دران صدق نه نماید ،باید به دو یا اضافه از دو جدول تقسیم شود تا
اینکه هر Determinantیک Candidate keyرا تمثیل نماید.