لوا لصف تیریدم رب یرورم یتاعلاطا...

165
1 اول فصل بر مدیریتوری مرعاتینک اط با

Upload: others

Post on 16-Feb-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

1

فصل اول

مروری بر مدیریت

بانک اطالعاتی

Page 2: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

2

Air# Date Time Source Distination Type Service Ticket Price

ردرکو، Row 100.000

150.000

551

531

C5

C2

Msh

Teh

23:00

04:15

02.12.02

13.09.12

A120

B452

کلید اصلی

مقدمه(1-1

پیوتری نگهداری رکوردها به طور عمومی یک سیستم کامData Base ) (سیستم بانک اطالعاتی یا پایگاه داده

.می باشد

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

در نوان فیلدهای آن رکوردها به عکوردهای فایل و ستون های جدول ر و سطرهای این جدولدول می نامند ج

.ه می شودنظر گرفت

و حذف ) Update (، ویرایش)Select(،بازیابی )Insertسیستم بانک اطالعاتی می تواند عملیات افزودن)

(Delete داده )م دهد.کاربران انجاتوسط ها و فایل ها )جداول(را

دهد. را نشان می هوایی ( جدول پروازهای خطوط1-1شکل)

( جدول پروازهای خطوط هوایی1-1شکل)

Shiraz

جدول

(Table)

فیلد، Attribute، property

Data

Page 3: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

3

( DBSسیستم بانک اطالعاتی ) ( 1-2

نگهداری رکوردها است . به ، یک سیستم کامپیوتری برای Database Systemسیستم بانک اطالعاتی یا

یک سیستم کامپیوتری شده که هدف اصلی آن ذخیره اطالعات وفراهم نمودن امکاناتی برای عبارتی دیگر،

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

( Software)(، نرم افزار Data (چهار عنصر اصلی داده ها سیستم بانک اطالعاتی از ، (1-2مطابق شکل)

تشکیل شده است . (Userو کاربران ) ( ،Hardwareسخت افزار )

ی( اجزای سیستم بانک اطالعات1-2)شکل

DBMS

End-User

Application

Programs

DBA

End-User

DBP

Tables

Page 4: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

4

داده 1-2-1.

سیستم ها یا تک ، داده در نظر می گردد. بر اساس کاربران ، یا سازمان با ارزش باشدهرچیزی که برای یک فرد

کاربره سیستمی است که در هر ( هستند. سیستم تک Multi User( یا چند کاربره )Single Userکاربره )

چند نفر هر لحظهدر سیستم چند کاربره ، در لیو ،فقط یک نفر می تواند از بانک اطالعاتی استفاده کند لحظه

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

دهد از آن به عنوان یک سیستم تک کاربره استفاده نماید.

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

که در ادامه توصیف می شوند :(Integration & Sharing)اشتراکی هستند

:(Integration) جامعیت

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

وی از پردازش ها و پیرت داده ها،، جامعیت به معنای صحدیدگاه های دیگرازاز بین آنها حذف شده است .

تواند بانکی نباید منفی باشد و یا شخص نموجودی واقعی حساب های مقررات سیستم می باشد . بعنوان مثال ،

بیش از موجودی خود از حسابش برداشت کند.از دیدگاه های دیگر، نوعی جامعیت به نام

که اقالم داده در کل سیستم با هم در تضاد مرسوم است و به معنای این است (Consistencyهمخوانی)

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

متفاوت نباشد.

: (Sharing)اشتراک

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

Page 5: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

5

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

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

پدید نیاید.

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

اگر بانک اطالعاتی مشترک نباشد،بانک اطالعاتی شخصی یا کاربر ویژه نامیده .در تعامل است بانک اطالعاتی

می شود.

(Software. نرم افزار ) 1-2-2

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

(Windows,Linux,… ، ) سیستم مدیریت بانک . یدبرنامه های کاربر وسیستم مدیریت بانک اطالعاتی

الیه ای از نرم افزار بین داده ها ی فیزیکی DBMS (Data Base Managernent System )یا اطالعاتی

گفته می ( Database Serverکارگزار بانک اطالعاتی ) که به آن ذخیره شده و کاربران سیستم می باشد

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

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

سیستم مدیریت از Informixو SQL ،Oracle ،DB2سخت افزاری حمایت می کند. شدن با جزئیات سطح

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

( و تصمیم گیرنده Transactionalعبارتند از تراکنش گر )سیستم مدیریت بانک اطالعاتی بطور کلی انواع

(Decision Supplyهمانند بروزرسانی موجودی کا . ) ال که یک تراکنش است و گزارش آماری برای کمک به

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

Page 6: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

6

)می توان از Host Languageمدیر تراکنش ، برنامه های کمکی توسط می توان بهبانک اطالعاتی

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

(Hardware. سخت افزار ) 1-2-3

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

ا ،پردازنده هبانک اطالعاتی متشکل از : حافظه های جانبی،قطعات سخت افزاری سیستمServer . ... و

توپولوژی آن ، نحوه اتصاالت و ارتباطات وشبکه .

منابعResource)) مورد استفاده در شبکه مانندScanner ،Printer ، Barcode reader . ... و

(Users. کاربران ) 1-2-4

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

(Data Base Programmersکاربردی )برنامه نویسان الف (

(Procedureروال) مسئول نوشتن برنامه های کاربردی مورد نیاز یک بانک اطالعاتی می باشند. مانند

بروزرسانی موجودی کاالهای یک انبار پس از خارج کردن کاالها از انبار.هدف این برنامه ها این است که کاربر

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

این برنامه ها با زبان های .( را اجرا نماید Offline( یا درون خطی )Batch( یا دسته ای )Onlineپیوسته)

)زبان های نسل چهارم( پیاده Delphi ، VB، Cobol ،PL1 ،C++ ،Java ،SQL ، Oracleبرنامه نویسی مثل

سازی می شود.

Page 7: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

7

(End Userکاربران نهایی )ب (

دسترسی دارند.در حقیقت یک کاربر ی یا ترمینال های متصل به بانک اطالعاتیاز طریق ایستگاه های کار

و از طریق یکی از برنامه های با بانک اطالعاتی در تعامل است (Interface Userواسط کاربر)نهایی از طریق

یا رابطی که به عنوان بخش داخلی نرم افزار سیستم بانک اطالعاتی فراهم می شود)مانند کاربردی درون خطی و

SQL) به بانک اطالعاتی دسترسی داشته باشد. قادر است

(Data Base Adminstratorبانک اطالعاتی ) ج ( مدیر

چه داده هایی این است که تصمیم بگیرد در مرحله اولDA(Data Adminstrator)یا وظیفه مدیر داده ها

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

یکی از این خط مشی ها می تواند تعیین این مسئله باشد که چه کسی چه اعمالی را روی چه داده هایی و تحت

یت کنترل مرکزی داده ها و سیاست امنیت را بر عهده در واقع مسئول مدیر داده ها چه شرایطی انجام دهد.

دارد.

داده است. مسئول پیاده سازی تصمیمات مدیر DBA(Data Base Administrator)مدیر بانک اطالعاتی یا

ایجاد بانک اطالعاتی واقعی و پیاده سازی کنترل های مورد نیاز جهت اعمال خط مدیر بانک اطالعاتیوظیفه

و همچنین ایجاد امنیت بر روی داده ها و عملیات می باشد. ده هامدیر دامشی های

. بانک اطالعاتی1-3

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

است.حاالت نمایش فیلدهای ذخیره شده در بانک اطالعاتی عبارتند از :

: دودویی ، دهدهی و ممیز شناور. مانند: استفاده از مبنای مناسبداده های عددی

Page 8: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

8

داده های کاراکتری : استفاده از روشهای کدگذاری مختلف همانندASCII وUnicode .

.واحدهای داده ای عددی : همانند سانتی متر و کیلوگرم ، برای طول و وزن

سال ، ماه های سال ،و نوع سرویس های کدگذاری داده ها : برای داده های مجموعه ای همانند فصول

خدماتی.

داده های بانک اطالعاتی پایدار است، چون وقتی داده ها توسط سیستم مدیریت بانک اطالعاتی برای ورود به

سیستم مدیریت بانک بانک اطالعاتی پذیرفته شد ، فقط در صورتی می تواند حذف شود که درخواستی به

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

تواند به صورت زیر باشد.

( که توسط برنامه های کاربردی در بعضی از موسسات Persistent Dataمجموعه ای از داده های پایدار )

اه )داده های دانشجویان( مورد دانشگو همانند بیمارستان )داده های بیماران(،بانک )داده های حسابداری(

استفاده قرار می گیرند.

Decision Support) بانک های اطالعاتی در حال حاضر در کاربردهای پشتیبانی تصمیم گیری

Systemبانک اطالعاتی مجزا هستیم که یکی حاوی داده های یعنی دارای دو د.نگیرمی (مورداستفاده قرار

( نامیده می شود.انبار داده ها حاوی اطالعات Data Warehouse)اده های می باشد و دیگری انبار داتیعمل

میانگین ها(می باشد، به نحوی که اطالعات خالصه به نوبه خود به صورت دوره ای و مجموع همانند خالصه )

یک بار در روز (از بانک اطالعاتی گرفته می شود.مثال )

ظت داده ها در برابر خطرات مانند آتش سوزی، خرابی محافامنیت ، امور مربوط به ( :Securityامنیت)

Server استفاده ازبانک اطالعاتی می باشدو جلوگیری از دستیابی غیر مجاز کاربران به .(رمزPasswordو )

Page 9: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

9

اقالم داده با الگوریتم های خاص، از روشهای متداول برای جلوگیری از دستیابی غیر مجاز به داده ها می تغییر

باشند.

بانک های اطالعاتی واع ان

بطور کلی طبقه بندی زیر را می توان برای بانکهای اطالعاتی در نظر گرفت.

1- Workgroup DB در نظر گرفته برای استفاده همزمان با بانک اطالعاتیکاربر : تعداد مجاز و محدودی

.(نفر 05کمتر از ) می شود

2- Enterprise DB از بانک اطالعاتی اسنتفاده می کنند. : کل بخشهای یک سازمان بطور همزمان

3- Centralized DB داده ها روی یک :Server یک(DBMSدر حالت متمرکز ) می شوند ذخیره سازی .

4- Distributed DB داده ها روی چند :server چند(DBMSدر حالت توزیع شده ) می ذخیره سازی

.شوند

ERD (Entity- Relation Diagram) رابطه یا – موجودیت یاگرامد.1-4

هر شیء قابل تشخیصی که در یک بانک اطالعاتی قابل ارائه باشد و در مورد آن اطالعاتی )صفات موجودیتها(

( Relationتباط بین موجودیت ها را رابطه )ار . می گویند ( Entityموجودیت یا نهاد )وجود داشته باشد را

درجه هر رابطه برابر است با مجموع تعداد موجودیت های است و (Degree)هر رابطه دارای درجه . می گویند

. می باشد 3حداکثر درجهمعموالرابطه ها رابطه-دیاگرام موجودیت در به آن رابطه . مرتبط

Page 10: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

10

رابطه از بانک اطالعاتی یک سیستم انتخاب واحد را به نمایش می –(بخشی از دیاگرام موجودیت 1-3شکل )

گذارد.

واحده از بانک اطالعاتی سیستم انتخاب ساد رابطه –دیاگرام موجودیت یک (3-1) شکل

نهاد ( قویstrong Entity ):

است که وجودش مستقل از وجود موجودیتهای دیگر می باشد . موجودیتی

( نهاد ضعیفWeak Entity : )

( ، یک Family( ، نهاد خانواده)4-1مطابق شکل ) . وابسته به نهاد دیگری باشد است که وجودش موجودیتی

( وجود یک نهاد و رابطه ضعیف را نشان میدهد.1-4شکل )ضعیف می باشد. نهاد

شامل نهاد ضعیف رابطه –دیاگرام موجودیت ( : یک 1-4شکل )

واحدرابطه انتخاب

Registration

موجودیت دانشجو

Student

درس جودیتمو

Course

موجودیت

دانشجو

Student

موجودیت

خانواده

Family

Fund رابطه کمک

هزینه

نهاد قوی

نهاد ضعیف

عیفرابطه ض

Page 11: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

11

: موجودیتخواص یا ت اصف (1-4-1

( صفات مختلفی از موجودیت ها را در 1-5شکل ) . می گویند (Attribute)صفتخصوصیت بارز هر شی ء را

صفات را می توان به گونه های زیر طبقه بندی نمود رابطه نشان می دهد . بطور کلی ، –یک دیاگرام موجودیت

:

اتمیک (Atomic ): کاراکتری رشته های ، همانند اعداد و صفتی است که تجزیه پذیر نباشد

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

صفت مرکب(Complex Attribute:) یک رکورد ، همانند تجزیه پذیر است صفت مرکب

صفات مرکب جایی ندارند و باید نرمال های توسعه یافته رابطه –دیاگرام موجودیت داده . در مدل

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

) پالک ، خیابان ، محله ، شهر ( ، ... (آدرس ) نام ، نام خانوادگی ( ، نامدانشجو ) شماره دانشجویی ،

صفت تک مقداری (Single Value Attribute ):

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

صفت چند مقداری( Multi Value Attribute) :

مدرک تحصیلی ) یک شخص می همانندد. ند داشته باشنچند مقدار می توان صفت چند مقداری

تواند چند مدرک تحصیلی داشته باشد ( .

صفت مشتق شده Derived Attribute) ( :

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

این نوع صفات را با نقطه چین به نهاد وصل می کنیم. رابطه –دیاگرام موجودیت درمی آید. بدست

Page 12: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

12

( کلیدهای اصلیPrimary Key( و کلیدهای خارجی )Foreign Key از کلیدهای پرکاربرد در )

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

مشخص شوند.

( صفات مختلف موجودیت دانشجو1-0شکل )

مربوط به سیستم بانک اطالعاتی دانشگاه رابطه –دیاگرام موجودیت نمونه ( یک 1-4-2

( چهار موجودیت قوی دانشجو ، گروه های آموزشی ، استاد ، درس و یک نهاد ضعیف خانواده و 6-1در شکل )

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

#Std#,Crs#,Lec#,Grp#.Famکلید های اصلی :

صفات مرکب : صفت

(. Lecturer( و استاد )Student(در موجودیت های دانشجو ) Nameنام)

Education

Name Brt_Date

Average Score

Complex Attribute

Primary Key

Student

Fname

ID-stud

Lname

Complex Attribute

Derived Attribute

Entity

Multi value Attribute

yy mm dd

*

Page 13: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

13

(. Lecturer(در موجودیت استاد ) Educationصفت چند مقداری : صفت مدرک تحصیلی )

مربوط به سیستم انتخاب واحد یک دانشگاه رابطه –دیاگرام موجودیت : (1-6شکل)

دانشجو

Student گروه های آموزشی

Group

استاد

Lecturer

شماره گروهGrp #

شماره درسCrs #

شماره پرسنلیLec#

کمک هزینه

خانوادهFamily

سنAvg

شماره پرسنلیLec #

نامName

مدرک تحصیلیEducation

تاریخ تولدBrth - Date

نام اولFname

نام خانوادگیLname

ارائه درس

Present

درسCourse

پیشنیازPre

شماره دانشجوییStd#

نامName

معدلAvg

نام خانوادگیLname

نام اولFname

Std # نمره

Score

شماره گروه آموزشی Grp #

انتخاب واحد

Registration

Std #

Fam #

Fam # حقوق

Salary

شرایطCond

حقوقSalary

Crs # Grp #

{ Crs# , … } { Crs# , … } Crs #

حصیلینیمسال ت Current Semester

شماره درسCrs #

تعداد واحدNo-Credit

نامName

Page 14: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

14

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

( می گویند . بعنوان مثال دانشجو ، استاد و کارمندان در سیستم دانشگاهی Inheritanceخاصیت وراثت)این

( نشان داده شده است :7-1هستند که در شکل ) ( Person) انسانیاهمه متعلق به کالس شخص

( : وراثت در موجودیت ها7-1شکل)

Lname

نام خانوادگی

Fname

نام اول

Birth- Date تاریخ تولد

Age

Person سن

انسان -شخص

سمت

Student دانشجو

Lecturer استاد

Employee

کارمند

Std# رسنلیشماره پ

Major تحصیلی رشته

...... Lec #

شماره پرسنلی......

Salary حقوق

Birth-City محل تولد

Address آدرس

Street

Phone

No International-Code کد ملی

Salary حقوق

Emp#

شماره پرسنلی

.....

.

Name نام

Page 15: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

15

( Connectivity & Cardinalityاتصال )و حد( 1-4-3

تا نهاد قوی تر به عبارتی دیگر ، .حالت ضعیف دارد و دیگری قوی تر است طهیک طرف راب، در یک رابطه

مینیمم و ماکزیمم تعداد موجودیت های موجود در ارتباط با نهاد ضعیف تر نیز موجودیت پیدا نمی کند. ، نباشد

اگرام موجودیت موجودیتهای دی (یک موجودیت می گویند . b ،aباالیی ) یک رابطه ،به ترتیب حد پایینی و حد

(داشته باشند . N-M( ، و چند به چند)N-1(،یک به چند )1-1رابطه می توانند ارتباطات یک به یک ) -

نشان می دهد . رابطه -دیاگرام موجودیت ( اتصال وحد را در یک نمونه 8-1شکل )

1

رابطه –دیاگرام موجودیت ( نمایش اتصال وحد در یک نمونه 8-1شکل )

subsection) مربوط به سیستم بانک اطالعاتی یک کارخانه تولیدی ERDیک نمونه ( 1-4-4

):

1

1 1

(0,10)

(0,1)

N

استادLecturer

دانشجو

Student

کامپیوترcomputer

اختصاصAllocation

راهنماییSupervisory

Page 16: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

16

یش میدهد . مربوط به سیستم بانک اطالعاتی یک کارخانه تولیدی را نما رابطه -دیاگرام موجودیت ( 9-1شکل )

این کارخانه دارای موجودیت های زیر می باشد :

عرضه ، ( Employeeکارمندان )، (Warehouse)انبارها،( Productمحصوالت )، ( Partمواد اولیه : )

.( Supplierکنندگان )

دستکاری می پایدار داده هایی هستند که کمتر ی داده ها . رابطه را می توان بعنوان یک نهاد در نظر گرفت

با سطح Userنگهداری می شوند تا و رابطه ها های پایدار در موجودیت ها شوند و امکان حذف ندارند. داده

نها دسترسی نداشته باشد.بروز رسانی آپایین برای

Page 17: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

17

Supplier City Parts

Supplier - id (p.K)

Sname

Status

City-Code

City-Code

Country

Distance

Service

Tax

Part – id (p.K)

Prtname

Color

Weight

City-Code

Price

SP- PC Product PT-PC

Supplier - id(F.k)

Product-id(F.k)

No – Product

Product - id(p.k)

Pname

Price

Part –id(F.k)

Products-id(F.k)

No-Products

SP – PT- PC

Part – id(F.k) Supplier – id(F.k) Procut – id(F.k)

Sum of Price

قطعات

مرکبComplex parts

1

کد قطعه کد عرضه کننده کد محصول

مجموع کل قیمت

کد قطعات

نام قطعه

رنگ قطعه

وزن قطعه

کد شهر

قیمت قطعه

عرضه کننده شهر قطعات

کدعرضه کننده

عرضه کنندهنام

وضعیت

شهر

کد شهر

کشور

فاصله تا پایتخت

سرویسهای خدماتی

مالیات مسیر

0

N

0

محصوالت

کد محصول

نام محصول

قیمت محصول

کدعرضه کننده

کد محصول

تعداد محصول

کد قطعه

کد محصول

تعداد کاالهای مصرفی در محصول

N N

قطعه -به سیستم عرضه کنندگان رابطه مربوط -ت دیاگرام موجودی : ( 1-9شکل)

Page 18: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

18

( داده ها و مدل های داده ها 5-1

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

(object .می توان ساختمان داده ها و با عملگرها رفتار را مدلسازی کرد )

یریت بانک اطالعاتیسیستم مدمزایای استفاده از شیوه بانک اطالعاتی و وظایف (6-1

( : Data sharing) اشتراک داده ها -1

نه تنها کاربرهای موجود بلکه کاربرهای جدید نیز می توانند از همان داده های ذخیره شده به طور مشترک

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

اطالعاتی کاربرهای جدید را برطرف کرد. های

( : Data Redundancyکاهش افزونگی داده ها ) -2

در سیستم های غیر بانک اطالعاتی هر سیستم کاربردی فایل های خاص خود را دارد این امر خود باعث تکرار و

ها می توانند به صورت افزونگی قابل توجه در داده های ذخیره شده و اتالف حافظه می گردد که این فایل

مجتمع و یکپارچه در آیند .

( :Data Inconsistencyاجتناب از ناسازگاری داده ها ) -3

اگر افزونگی کنترل شده نباشد و داده های تکراری وجود داشته باشد ودر هنگام به روز رسانی فقط یکی از داده

د می آید . اگر ناسازگاری حذف نشده ولی تحت کنترل ها به روز رسانی شده باشد ،ناسازگاری در داده ها به وجو

Page 19: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

19

باشد ، هر تغییری که بر روی یکی از داده ها اعمال شود به طور خودکار بر روی دیگری هم اعمال خواهد شد . )

( . propagating updateبه روز رسانی انتشاری یا

اعمال حمایت های انتشاری : -4

منطقی از کار است که معموال حاوی چند عملکرد بانک اطالعاتی می ( یک واحد Transactionکنش ) اتر

. اگر کار بر بگویید که این دو عمل Bبه حساب Aباشد . مانند چند عمل به روز رسانی واریز مبلغی از حساب

به هنگام به روز رسانی بخشی از یک تراکنش هستند ، سیستم می تواند تضمین کند که یا هر دو انجام می

وند یا هیچکدام انجام نمی شوند .ش

یا جامعیت داده ها: اعمال یکپارچگی -5

بین دو ورودی مپالی از عدم جامعیت است . کنترل متمرکز بانک اطالعاتی می تواند از بروز چنین ناسازگاری

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

محدودیت ها هر زمان که یک عملکرد به روز رسانی صورت می گیرد ، کنترل و تست می گردند . جامعیت

داده ها در یک بانک اطالعاتی نسبت به محیطی با فایل های اختصاصی از اهمیت بیشتری برخوردار است ، زیرا

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

ا و نیروی کار :عدم هدر رفتن فض -6

عدم ذخیره یک قلم داده در چند جای مختلف و هدر رفتن فضای حافظه و نیروی کار

سه نوع ناهنجاری شامل ناهنجاری های اصالحعدم بروز انواع ناهنجاری ها : -7

(Modification Anomaly. ( حذف ، )Deletion A ( و درج )Insertion A. )

Page 20: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

20

اصالح : ناهنجاری

: ناهنجاری درج

جدید ضروری اطالعات استاد راهنمای پروژه نیز درج شود حتی اگر قبال ج هر پروژهیعنی در

اطالعات استاد در پروژه های دیگر درج شده باشد

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

: ناهنجاری حذف

Studennt

Ali Babaii 628090 .....................

Fname Lname

Phone.No

تغییر شماره تلفن دانشجو Changing

تغییر در فایل امور مالی

امور آموزشی تغییر در رکورد دانشجو

ضروری

تغییر در پروژه های اخذ شده از دانشجو

100 project Ali

100 changing phone.No

Propagating Modification

اصالح انتشاری

Page 21: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

21

برای جلوگیری از ناسازگاری وجود رکورد های پروژه بدون استاد راهنما حذف رکورد یک استاد

پروژه 1داده ها بایستی کلیه پروژه های با این استاد راهنما حذف شود . به طور خاص اگر یک استاد تنها

ربوط به استاد نیز حذف می گردد .در اختیار دارد . با حذف این دانشجو ،اطالعات م

(: Backup & Recoveryمدیریت تهیه نسخه پشتیبان و ترمیم بانک اطالعاتی ) -8

)هر روز( ،اگر روزی سیستم دچار خرابی داده ای شود ، با ترمیم بانک و بازسازی داده ای بانک backupبا تهیه

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

( :Data Securityاعمال محدودیت های امنیتی ) -9

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

تعریف کند تا 1میتواند محدودیتهای امنیتی یا قواعدی DAدر جهت خواسته های DBAمناسب باشد .

محدود نماید . DBداده های حساس را مثل بازیابی ، حذف ، اضافه و بروز رسانی در دستیابی به

متعادل نمودن نیازمندیهای متضاد : -11

می توان نمایش فیزیکی را در حافظه طراحی نمود که برای بعضی از سیستم ها و برنامه های کاربردی مهم ،

صورت گیرد .ابی کندتر دستیابی سریع و برای دیگر سیستم ها کم اهمیت تر دستی

اعمال استانداردها : -11

اسنادهای قابل اعمال در نمایش داده ها ، استاندارد های نامگذاری و مستند سازی داده ها

( : Structural Dependenceکاهش وابستگی ساختاری ) -12

Page 22: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

22

در ساختار فایل ) وابستگی ساختاری در لزوم تغییر کد برنامه های مربوط به یک فایل پس از اعمال هر تغییر

اضافه یا حذف فیلد (اطالق می گردد.

(: Data Independencyاستقالل داده ها ) -13

نمایش فیزیکی و روش های دسترسی داده ها را استقالل روش مصونیت برنامه های کاربردی نسبت به تغییر

( استفاده می conceptual Modelداده گویند. هر یک از مدلهای بانک اطالعاتی از یک تجرید یا انتزاع )

کنند . مثال در مدل رابطه ای از انتزاع جدول استفاده می گردد . استفاده کاربران از این جدول هیچ ربطی به

نحوه ذخیره سازی داده ها ندارد . و نحوه زخیره سازی داده ها روی رسانه ها از دید کاربران پنهان می ماند . اگر

شود ) تغییر نوع دیسک ( برنامه های کاربردی هیچ تغییری نمی کنند . به این تغییری در ذخیره سازی داده ها

استقالل فیزیکی داده ها می گویند . اگر به جدول یک ستون اضافه شود ، دیدگاههای قبلی که از این جدول

جدول با استفاده می کنند ، قابل تغییر بودن و هیچ تغییری نمی کنند و می توان دیدگاهها جدیدی از این

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

و عملیاتی که به کاربر ارائه می دهند طبقه اطالعاتی بر حسب ساختمان داده هایبانک

بندی می شوند .

RDB (Relational Database )رابطه ای مدل -1

(Hierarchical DB Modelمدل سلسله مراتبی ) -2

(Network DB Modelمدل شبکه ای ) -3

(Inverted List Modelمدل لیست معکوس ) -4

(object oriented Modelمدل شئ گرا ) -0

استفاده از درخت

استفاده از گراف

مدلهلی قدیمی،با مبنای

رکوردپایه گزاری شده است.

مدل های

معماری بانک

اطالعاتی

Page 23: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

23

: مقایسه مدلهای معماری بانک اطالعاتی

(:HDBMمدل سلسله مراتبی ) -1

درخت : ساختمان داده

، نا مناسب برای روابط چند به چند DBقدیمی ترین مدل

Sup_id Sup_name City

Plat_id name Color SUM

1 N N

N 1 N قطعه

عرضه کننده

P1

p2

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

لیست پیوندی اشاره گرها

( مناسب N_1 (

( مناسب 1_N (

( نامناسب N_N (

Page 24: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

24

: مثال عمل بازیابی ( نام عرضه کنندگانی که قطعه خاصی را عرضه می کنندp2 )

o( n2بر روی هر عرضه کننده بایستی همه قطعات را جستجو نماییم )

: گره فرزند بدون پدر نمی تواند درج شود . قطعه ای که هنوز عرضه کننده عمل درج

می توان درج نمود .ای ندارد را ن

: با حذف یک پدر کلید فرزندان حذف می شوند ) حذف کلید زیر شاخه های عمل حذف

parent ) حذف شده

: تغییر در کلیه آدرس های تغییر آدرس یک عرضه کننده عمل بروز رسانی

ی موجود العرضه کنندگان کا

نامناسب برای روابط چند به چند -1

بودن گزارشات بازیابی وقت گیر-2

ناهنجاری های درج ، حذف و بروز رسانی -3

استفاده از اشاره گر ها و وابستگی به آدرس های فیزیکی ذخیره سازی -4

:ساختمان داده (: NDBMمدل شبکه ای ) -2

گراف ، مناسب برای روابط چند به چند ،عدم وجود ناهنجاری های درج ، حذف و بروز رسانی

به دلیل استفاده از یچیدگی در طراحی و پیاده سازی مدل شبکه ای ، وابستگی به محیط فیزیکی معایب : پ

اشاره گر ها

ساختمان داده : (:RDBMمدل رابطه ای ) -3

معایب مدل

سلسله مراتبی

ناهنجاری

Page 25: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

25

و N_1جدول، عدم وجود ناهنجاری های درج ، حذف و بروز رسانی ، مناسب بر پیاده سازی روابط

N_N وابستگی به محیط فیزیکی . سادگی در طراحی وپیاده سازی ، عدم

ها ساختمان داده ها Objectبهترین روش برای طراحی بانک اطالعاتی روش رابطه ای می باشد . با استفاده از

ها رفتار سیستم را مدل سازی کرد . Functionرا می توان مدل سازی نمود و با عملگرهاو

ابطه ها وجود دارد.معکوس و...(در ر-تعدی -تمام رابطه های ریاضی ) تقارن

Meta Data

Data dictionary : باید در مرحله طراحی بانک اطالعاتی هر گاه طراح برای مفهومی نامی بر می گزیند

آن را در لغت نامه داده ها همراه با معنای آن و فرمت آن و ... وارد کند. این اسامی شامل تمامی نامهای استفاده

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

برای جستجو اسامی در لغتنامه وجود دارد .

System Catalog : دارای اطالعات مربوط به حق دستیلبی افراد به داده های مختلف تاریخ ایجاد و

ازه هر جدول یا شی و ... .بروزرسانی داده ها ، ایجاد کننده پرونده ها ، اند

لغت نامه زیر مجموعه کاتالوگ سیستم است . سیستم بانک اطالعاتی بطور اتوماتیک و به کمک کاربران

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

(ن)دادگا

)فرا داده(

Data Dictionery لغت نامه داده ها

System Catalog تالوگ سیستم کا

: داده در مورد داده

Page 26: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

26

فصل دوم

معماری سیستم

بانک اطالعاتی

Page 27: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

27

ی رج

خاح

طس

E

xte

rna

l L

ev

el

Co

nce

ptu

al L

evel

یوم

فهح م

ط س

Inte

rnal

Lev

el

یخل

داح

ط س

: ANSI-SPARC( معماری 1-2

ANSI/SPARCدر این فصل در مورد معماری . طراحی می گردداز یک نوع معماری تبعیتاطالعاتی با هر بانک

بحث خواهد شد.

ANSI -SPARCمعماری

( American National Standard Institute/Standard planning and Requirements Committee ) این با اکثر

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

نشان داده شده است. (1-2شکل )

HL+ DSL

User A1

HL+ DSL HL+ DSL HL+ DSL HL+ DSL

User A2 User B1 User B2 User B3

Bدیدگاه خارجی External View B

Aدیدگاه خارجی

دیدگاه مفهومی

DBMS

دیدگاه

Data داخلی

داخلی –نگاشت مفهومی

(Transformation )

(Mapping) مفهومی -خارجی نگاشت

System Catalog

فرهنگ داده ها

)شبه داده ها(

End Users

Application Programer

DBA

ANSI - SPARC (: شمای معماری سه سطحی 1-2شکل )

Page 28: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

28

، تصاویر مختلفی از بانک اطالعاتی به شرح زیر ANSI – SPARCدر معماری

وجود دارد :

دی :تصویر خارجی( دگاههای کاربران مختلفview)

(دلی خاصمن توجه به بدواطالعاتی بانک یکلطرح )عام: ادراکیتصویر

(انتخابی در قالب مدلیاطالعاتی بانک یکلطرح ): تصویر ادراکی خاص

: (روی رسانه های ذخیره سازی اطالعاتاطالعاتی بانک یکلطرح )تصویر فیزیکی

: ANSI – SPARC( سطوح معماری 2-2

(، Conceptual level(، مفهومی )External levelخارجی ) به سه سطح ANSI / SPARCمعماری

تقسیم می شود. ( Internal levelداخلی )

:سطح داخلی -1

این به عبارت دیگر ،. که سطح فیزیکی نیز نامیده می شود نزدیکترین سطح به حافظه یا انباره فیزیکی می باشد

از دیدگاه چگونگی ذخیره سازی فیزیکی داده ها روی خیره سازی فیزیکی داده ها سر و کار دارد.سطح با ذ

سیستم بانک اطالعاتی را بطور کلی می توان حافظه های کامپوتر های موجود در یک سیستم بانک اطالعاتی ،

در دوگونه متفاوت در نظر گرفت که عبارتند از :

Ent 2 Ent 1 Relation

Page 29: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

29

i ( بانک اطالعاتی متمرکز ) Centralized DB :)

(قرار دارد و تمامی ذخیره و باز یابی Serverکلیه داده های موجود در بانک اطالعاتی روی تنها یک کامپیوتر )

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

ii ( بانک اطالعاتی توزیع شده )Distributed DB :)

های Server( توزیع شده اند .همه Serverای موجود در بانک اطالعاتی روی چندین کامپیوتر ) کلیه داده ه

موجود در سیستم بانک اطالعاتی از ماهیت داده ها و امکان آنها اطالع دارند .

:سطح خارجی -2

سطحی است که ن دیگربه بیا، که سطح منطقی کاربر نیز نامیده می شود نزدیکترین سطح به کاربران می باشد

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

ذخیره و نمایشبه شکل های مختلف معماریح ودر تمام سط در یک بانک اطالعاتی وجود دارند ،داده هایی که

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

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

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

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

می شوند. اطالعاتی

Page 30: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

30

:سطح مفهومی -3

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

ی که کاربران به دلیل دردیدگاه مفهومی به داده ها به همان شکلی که هستند نگاه می شود نه به شکل

دیدگاه هر هستند. هانآد مجبور به دیدن نمحدودیت های سخت افزاری و زبان های خاصی که در اختیار دار

خواص کاربر برای خودش منحصر به فرد است و سطح مفهومی اجتماع دیدگاههای خارجی است که دقیقا

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

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

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

آن سطح تنها جداول رابطه ای ذخیره شده نیست، بلکه همان نوع ءزیرا اشیا، دیدگاه داخلی رابطه ای نیست

اشاره ،رکوردهای ذخیره شده ماننداشیایی است که در سطح داخلی هر نوع سیستم دیگری یافت می شود.

... .ایندکس ها ،گرها

زبان های برنامه نویسی بانک اطالعاتی ( 3-2

( و یا یک زبان اختصاصی که Cاین زبان یکی از زبانهای برنامه نویسی )مثل ++برای برنامه نویسان کاربردی

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

ن طراحی و توسط جو است یا یک زبان با اهداف خاص مانند یک زبان فرم گرا یا منو گرا که برای نیازهای کاربرا

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

زبان های برنامه نویسی بطور کلی . دنمی باش DSL (Data Sub Language)یا شامل یک زیر زبان داده ها

: بانک اطالعاتی به دو د سته تقسیم می شوند

Page 31: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

31

بانک اطالعاتی می عملیاتزیر مجموعه ای از تمام زبان های مرتبط با اشیاء و : (DSLزیر زبان داده ) -1

باشد .

، ایجاد حلقه ها ، واسط کاربر کنترل تددستورافاق DSLمعموال: HL(Host Language)یا زیان میزبان -2

ی پذیرد .صورت م HLتوسط بطوریکه این عملیات ،تست شرطها و ... می باشد

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

i ) یا زیر زبان تعریف داده هاDDL(Data Declaration Language:) انک تعریف یا اعالن اشیا ب

.اطالعاتی را پشتیبانی می کند

ii ) یا زبان دستکاری داده هاDML(Data Manupulation Language): ط به پردازش و مربو

را پشتیبانی می کند .دستکاری اشیا بانک اطالعاتی

iii ) یا زبان کنترل داده هاDCL (Data Control Language ): مربوط به مدیریت مجوزهای

دسترسی به بانک اطالعاتی است.

( نگاشت های سطوح معماری 4-2

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

(Transformation ) د . این دو نگاشت در ادامه تشریح نداده های بانک اطالعاتی بین این سه سطح می شو

می گردند .

Page 32: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

32

( نگاشت مفهومی / داخلیInternal / conceptual Mapping )

تغییر ه حالت جداول و رابطه ب ( بایستی در سطح مفهومیحافظه) موجود در سطح داخلیداده های فیزیکی

. این نگاشت مشخص می کند که چگونه رکوردها و فیلدهای مفهومی در سطح داخلی نمایش داده می شکل یابد

نگاه نگاشت مفهومی / داخلی می بایست به گونه ای آ، نمایدشوند. اگر ساختار بانک اطالعاتی ذخیره شده تغییر

می مدیر بانک اطالعاتیتغییر بماند. کنترل چنین تغییراتی به عهده تغییر پیدا کند که شمای مفهومی بدون

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

حفظ شوند.

خارجی / مفهومی نگاشت(External / Conceptual Mapping)

د نجداول بایستی توسط واسط کاربر برای کاربران نهایی نمایش داده شو داده های موجود دردر سطح مفهومی ،

سیستم حالت ، دند یعنی گسترش پذیر باشناگر نگاشت ها دینامیک باشبرای آنها قابل دسترسی باشند . و

یستم س در ایجاد نماید . را مورد نیاز دارد تواند هر نوع گزارشی کهکاربر می به عبارت دیگر : دینامیک دارد

ند .دو قابل گسترش نیستنو محدود می باش هتعریف شد گزارشها، استاتیک

5-2 )وظایف (مدیر بانک اطالعاتی DBA )

مدیر بانک اطالعاتی دارای وظایفی به شرح زیر می باشد :بطور خالصه ،

: رابطه . –دیاگرام موجودیت طراحی ادراکی عام و طراحی تعریف سطح مفهومی

ساختار داده ها تعریف گی ذخیره اطالعات وچگون داخلی :تعریف سطح .

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

اطمینان حاصل می کند. ، باشد بانک اطالعاتیقابل دسترسی در طراحی سیستم کاربران

Page 33: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

33

تجامعیت و امنی ، تعریف محدودیت ها

(security ،Integration، Constraint ): و امنیت را جامعیتاست که مدیر بانک اطالعاتی وظیفه

نباید در دسترس کاربر باشد و ( Primary Keyکلید اصلی)، بطور کلی برای برنامه نویس توضیح دهد.

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

تعریف سیستم های ترمیم و پشتیبانی (Recovery & Backup ) : در صورت از کار افتادگی هر

باید قادر به مدیر بانک اطالعاتی قسمت از بانک اطالعاتی )خرابی در سخت افزار یا سیستم عامل (

داده هایی که صدمه ، ای مثالترمیم و جبران داده های مورد نظر با حداقل تاخیر و کوشش باشد. بر

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

( بانک اطالعاتی جهت تهیه پشتیبان و بار کردن dumpروبرداری ) می توان به روال هایسازی نماید.

اشاره نمود . (reloadدوباره بانک اطالعاتی )

باید سیستم را طوری سازماندهی کند که مدیر بانک اطالعاتی ظارت بر کارایی و تغییر نیازها :ن

تنظیم های مناسب را انجام ، بهترین کارایی را داشته باشد و مادامی که نیازمندی ها تغییر می کند

دهد.

سیستم مدیریت بانک اطالعاتی :( 6-2

نرم افزاری است که DBMS(Database Management System) یا سیستم مدیریت بانک اطالعاتی

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

به صورت زیر خالصه کرد:

Page 34: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

34

ی کند. ( درخواست یک دسترسی را مSQLکاربر با استفاده از بعضی زیر زبان های داده )مانند -1

یل می کند. لدرخواست را دریافت و آن را تح سیستم مدیریت بانک اطالعاتی -2

نگاشت ، ن کاربر )نسخه کامپایل شده( آبرای را به ترتیب شمای خارجی سیستم مدیریت بانک اطالعاتی -3

ازرسی می کند. را مرور و بحافظه ارمتناظر و تعریف ساختخارجی / مفهومی متناظر ، شمای ادراکی / داخلی

اجرا میکند. ا بر روی بانک اطالعاتیعملکردهای الزم ر سیستم مدیریت بانک اطالعاتی -4

سیستم مدیریت بانک شمایی از یک سیستم مدیریت بانک اطالعاتی و وظایف آن داده ها باشد . (2-2)شکل

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

( و Built_inزیر زبان تعریف و دستکاری همچنین پردازنده زبان تقاضا ،یک برنامه کاربردی درونی ) دستورات

مدی آروش کار ( optimizer) . بهینه ساز( برای پرس و جوهای پیش بینی نشده است onlineپیوستگی )

می کند. تعیینپرس و جو را برای پیاده سازی

Page 35: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

35

( : شمای سیستم مدیریت بانک اطالعاتی2-2شکل )

DDLپردازنده

DMLپردازنده

پردازنده زبان

تقاضا

ی کامپایل شده درخواستها

بهینه ساز

درخواستهای بهینه شده

مدیر زمان اجرا

شماها و نگاشتهای منبع

کامپایل شده

شماها و نگاشتهای منبع )کامپایل شده (

DMLدرخواست های

برنامه ریزی شده

DMLدرخواست های

برنامه ریزی نشده

گزارشات پیش بینی نشده گزارشات پیش بینی شده

بانک اطالعاتی

داده ها

شبه داده ها /فرهنگ

داده

Page 36: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

36

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

( تعریف داده هاDDL ): شماها را ایجاد کند. باید تمام نگاشت ها وسیستم مدیریت بانک اطالعاتی

( دستکاری داده هاDML ): رخواست های باید قادر باشد که د سیستم مدیریت بانک اطالعاتی

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

جدید را به بانک اطالعاتی انجام دهد.

: چه از نوع برنامه ریزی شده و چه برنامه ریزی دستکاری داده هاواستهای درخ بهینه سازی و اجرا

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

است. ها سازی این درخواست

: بران نظارت خواست های کاررباید بر د سیستم مدیریت بانک اطالعاتی جامعیت و امنیت داده ها

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

جلوگیری کند .این وظایف می توانند در زمان کامپایل اجرا و یا تلفیقی از هر دو انجام ، را برهم می زند

شوند.

: و یا بعضی از نرم افزارهای مرتبط که یسیستم مدیریت بانک اطالعات ترمیم و سازگاری داده ها

معموال مدیر تراکنش یا ناظر پردازش تراکنش نامیده می شوند باید کنترل های خاصی برای ترمیم و

د. نسازگاری فراهم ساز

فرهنگ داده ها (system Catalog ): فرهنگ ایجاد باید امکان سیستم مدیریت بانک اطالعاتی

حاوی یک بانک اطالعاتی در نظر گرفت که فرهنگ داده ها را می توان به عنوانداده ها را فراهم سازد.

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

: را با کارایی ید تمام عملکردهای ارائه شدهبا سیستم مدیریت بانک اطالعاتیبدیهی است که کارایی

هر چه بیشتر اجرا کند.

Page 37: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

37

گونه متفاوت در نظر گرفت :دو در بانک اطالعاتی را می توان های سیستم ، ی دیگراز دیدگاه

i )Server Database Client / : یک سیستم بانک اطالعاتی را می توان به عنوان یک ساختار دو قسمتی

( در نظر گرفت. Clientاز مشتری ها )ای ( و مجموعه serverمتشکل از یک سرویس دهنده )

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

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

کاربرد دارد. ( sequential process) اجرا می شوند . در این معماری پردازش سری مدیریت بانک اطالعاتی

ii ) Distributed Database : سرویس دهنده می سیستم مدیریت بانک اطالعاتیدر این معماری هم

شده توزیحهنده ها روی این سرویس د سرویس دهنده وجود دارد و داده هابا این تفاوت که چندین ، باشد

سیستم مدیریت بانک یک یعنی ،آگاه می باشند از وضعیت یکدیگر سیستم مدیریت بانک اطالعاتیاند .

parallel) پردازش موازی قرار دارد . در این معماری یس دهندهودر کدام سر داده هامی داند اطالعاتی

process ) .کاربرد دارد

Page 38: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

38

فصل سوم :

مقدمه ای بر بانک

اطالعاتی رابطه ای

Page 39: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

39

جنبهریاضی استوار است و از سه روابطبراساس Relational Databaseبانک های اطالعاتی رابطه ای یا

مود بررسی قرار می گیرند :

جنبه ساختاری : داده های بانک اطالعاتی فقط و فقط به صورت جدول در اختیار کاربر قرار می گیرد. -1

.ورده می کنند محدودیت های جامعییت خاصی را بر آجنبه جامعیت : ان جداول -2

ل رابطه ای :جامعیت در مد

( : کلیه صفات در تمامی رابطه ها از نوع دامنه خود باشند . Domain Integrityجامعیت دامنه ای ) -1

(: هر رابطه به تنهایی صحیح باشد. Intra _relation Integrityجامعیت درون رابطه ای ) -2

ه باشد و تهی نباشد .: کلید خارجی درست تعریف شد( Referential Integrityجامعیت ارجاع ) -3

می باشد . DBMSوظیفه ی جامعیت های فوق با *

ن جداول دراختیار کاربر قرار دارند عملگرهایی هستند که یی : عملگرهایی که برای دستکاری آجنبه دستکار -3

سه عملکرد مهم هستند : اج می کنند. از بین این عملگرها جدول های خاصی را از جدول های دیگر استخر

-Restrict .محدودیت (: سطرهای مشخصی رااز یک جدول استخراج می کند(

-Projection .عمل تصویر (: ستون های خاصی از یک جدول را استخراج میکند( :

-Join ) دو جدول را براساس مقادیر مشترک در یک ستون مشترک به هم الحاق می کنند. :)الحاق

عضو تکراری نداشته باشد )کلید اصلی یکسان(

نباشد( Null نباشد ) کلید اصلی Null کلیدهایش

Page 40: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

40

ای یک تئوری به نام مدل رابطه ای داده ها نکته : سیستم های رابطه ای بر من

(RDBM : Relational DB Model) .می باشد

دو جدولCourse وStudent را مستقیما نمیتوان الحاق کرد. الحاق باید توسط یک رابطه انجام

با Studentو Courseشود، در الحاق دو جدول باید با هم اشتراک داشته باشند. برای دو جدول

دو جدول را الحاق کرد. می توان دانشجو را در رابطه قرار دهیم Idدرس و Idاین شرط که

نکات مهم :

( Closure( نتیجه حاصل از هر یک از این عملگرهای رابطه ای جدول دیگری خواهد بود )خاصیت بسیتار 1

( خروجی هر عمل می تواند ورودی عمل دیگری باشد. 2

( Nested Expression) عبارتهای النه ای

.( جدولی که فاقد رکورد باشد معتبر نیست 3

( در سیستم های رابطه ای بانک اطالعاتی به صورت جدول نگهداری می شود. 4

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

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

ارتباط دهد.

ختلفی وجود دارد که عبارت اند ازدر یک جدول کلیدهای م :

1- Super Key : یعنی زیر مجموعه ای از ،اشد )کلید اصلی (بصفات که خاصیت کلید داشته هر ترکیبی از

نیست . Minimal،کمینه ،واند کلید باشد می تآن هم

نام دانشجو ، شماره دانشجویی

شماره دانشجویی

Page 41: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

41

صیت است که سایر خاصیتهای جدول به ان وابستگی تابعی دارد. کلید مجموعه ای از یک یا چند خا * سوپر

2- candidate Key:

ندید ممکن است ساده )یک فیلد منفرد ( یا کلید کا .سطری از یک رابطه یک شناسه منحصر به فرد برای

مرکب )دو ییا چند فیلد ( باشد. هر رابطه باید حداقل یک فیلد کاندید داشته باشد امارابطه ها می توانند بیش از

د اصلی نیز می نگاه به طور خودکار کلیچنانچه تنها یک کلید موجود باشد آیک کلید کاندید نیز داشته باشند

نها را به عنوان کلید اصلی اشد طراح باید یک یا ترکیبی از آشود . چنانچه چند کلید کاندید وجود داشته ب

معرفی کند.

ن وابستگی تابعی کامل ت است که سایر خاصیتهای جدول به آد مجموعه از از یک یا چند خاصییکلید کاند

دارند.

Std# + Sname is not Candidate (bcoz) Sd# is Candidate

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

3- Primary Key:

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

نمی گیرد. Null،کلید اصلی مقدار Auto number نمی گیرد تکراری کلید اصلی مقدار

انتخاب شده است. DBAیکی از کلیدهای کاندید است که توسط

4- Alternative Key (یا کلید فرعی )Secondary Key )کلید کاندیدی است که )کلید ثانویه :

. کاربردهای خاص دارد

Page 42: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

42

کلید اصلی : شماره دانشجویی

کلید فرعی : نام و نام خانوادگی دانشجو

کاربردها : مرتب سازی بر حسب نام خانوادگی *

Super Key S#, Sname , C #, Cname No , (S#)

Candidate Key S# , c# , Caname

Primary key s# , c#

Alternative key sname, cname

Foreign key T#

0-foreign key :

می شوند . همچنین اگر فیلد هایی که در جدول رابط قرار می دهیم برای جدول اصلی کلید خارجی محسوب

و همچنین فیلد در جدول دوم کلید خارجی محسوب می شود . دشفیلدی در جدول اول کلید اصلی با

Teacher

Foreign Key

T#

Course

Primary Key

C # Cname T#

Student

Primary Key

S # sname

Page 43: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

43

می نکته : تمام جداول باید کلید اصلی داشته باشند و حرکت د ربین جداول براساس کلید اصلی صورت

تمام بازیابی ها براساس کلید اصلی صورت می گیرد. .گیرد

ابطه ای مدل ر(RDBM)شامل اجزای زیر می باشد :

.( scalar Typeاع اسکالر )( تعداد نامتناهی ازانو1

کند د رواقع یک کامپایلر می را به مدل رابطه ای تبدیل می SQL( مولد نوع رابطه : برنامه های نوشته شده با 2

باشد.

.ای می باشد( متغیرهای رابطه ای : هر کدام از جداول یک متغیر رابطه 3

I. ( متغیرهای رابطه ای پایهbase relavar متغیرهای رابط : ) ه ای اولیه شامل کلیدEntity ها وحتی

Relation .ها

II. پایه ای می باشند. از جداول متغیرهای رابطه ای مشتق شده که جداول خروجی

یک جدول قرار می دهیم. ( انتساب های رابطه ای : چند داده را به یک متغیر نسبت می دهیم یعنی در 4

های دیگر : نها شامل محدودیت تصویر و الحاق می باشد. )نمونهاصلی ترین آ( عملگرهای رابطه ای : که 0

.درج( بروزرسانی، اصالح ، ،حذف،تقسیم تفاضل ،

الح ریاضی برای جدول است. طرابطه یک اص

بهینه سازی:

واهد به این که این کار چگونه انجام می شود کاری گوید چه می خ یراهبری خودکار : کاربر فقط م

ندارد .

Page 44: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

44

ن آمی باشد که به DBMSمهمی از شتصمیم گیری راجع به چگونگی اجرای راهبری خودکار به عهده بخ

می گویند. (Optimizer)بهینه ساز

ب یک راه مناسب برای ابه عبارت دیگر هر درخواست رابطه ای که از کاربر صادر می شود بهینه ساز وظیفه انتخ

پیاده سازی

ن را دارد. آ

( فرهنگ داده هاcatalog ) : در واقع یکDatabase برای یکDatabase دیگر می باشد و هر

،داخلی ( –مفهومی –می باشد که شامل تمام شماها )خارجی Catalogبانک اطالعاتی دارای یک

ها محدودیت های دیدگاه ،کلیه کاربران ،ایندکس ها تمام متغیرهای رابطه ای و ،تمام نگاشت ها

جامعیت ، محدودیت های امنیت و ... می باشد. کاتالوگ

( می باشد. self descriptorخود توصیف )

نکته : برای گزارشگیری از خود جدول پایه استفاده نمی شود یک جدول براساس یکindex ساخته

ن استفاده می شود. آمی شود و ا ز

نکته : خودCatalog در داخل یکDatabase قرار دارد و دارای متغیرهای رابطه ای می باشد که

مهترین متغیرها

. table, Column , View, domainعبارتندا ز :

System

Page 45: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

45

.............. Id user Rowcount Calcount Tabname

چه کسی جدول را به

وجود آورده است

p.kنام جدول تعداد ستون ها سطرها تعداد

Tabname Calcount Type

Fname p.k تعداد ستون ها Char

Table

Table

Primary Key

Primary Key

Column

Column

Page 46: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

46

( :transaction) تراکنش

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

ش در محیط بانکی در این است که تراکنش همواره به نظام مدیریت معمولی در محیط غیر بانکی با یک تراکن

انداختن و تسلیم می شود و این نظام در اعمال هر گونه کنترل و حتی به تعویق DBMSبانک اطالعات یعنی

ساقط کردن آن آزادی عمل دارد که هدف از این کار ، حفظ جامعیت و صحت بانک اطالعاتی است.

nBegin Transactio؛

update account A ؛

update account B ؛

IF everything worked Fine then

*Normal End * ؛ COMMIT

Else

*normal End bA* ؛ BACKROLL

End IF.

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

: دارای خوا زیر هستند

(خواص ACID )

1- Atomicity ) یکپارچگی( :

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

سیستم در وسط کار پردازش خراب شود .

Page 47: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

47

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

برداشت پول از حساب مبدا ، -1 دو بخش : ؛مثال : انتقال پول از شهر ی به شهر دیگر

ه حساب مقصد .پرداخت پول ب -2

شود . Cancelاگر عمل دوم اتفاق نیافتد مثال قطع ارتباط باید عمل اول

2- Durability ( همخوانی : )

ئله را با موفقیت اجرا نمود این مس commitیعنی تراکنش ها پایدار هستند . یعنی وقتی یک ترکنش دستور

ی اعمال می شود حتی اگر سیستم در ادامه در هر تضمین می شود که به هنگام رسانی آن در بانک اطالعات

نقطه از کار خراب شود .

3-Isolation :

T2توسط تراکنش دیگری مثل T1 تراکنش ها از بقیه جدا هستند یعنی به هنگام رسانی حاصل از تراکنش

به هنگام باعث می شود که Commitرا اجرا کند. commitدستور T1قابل مشاهده نیست تازمانی که

رسانی یک تراکنش برای دیگر تراکنش ها قابل رویت شود.

نها کنترل می شود تا اثر آاثر تراکنش های همروند روی یکدیگر چنان است که همروندی ، بر طبق این خاصیت

می Concurrency Controlمخربی نداشته باشد. که وظیفه این کنترل به عهده واحد کنترل همروندی

باشد .

Page 48: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

48

مثال : رزواسیون بلیط هواپیما

0- Consistency : ) همخوانی (

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

مبلغ برداشت شده با مبلغ واریز شده به حساب دیگر برابر نباشد تراکنش غلط است . هر تراکنش اگر به

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

مالی Transferمثال :

Transaction

Transaction

Time(Sec)

Time(Sec)

T1

T1

T2

T2

2

2

6

6

Sequential پردازش سری

Sequential پردازش سری

T1 : Account(A) -

M : 1000$ برداشت

T2 : Account(B) +

T1 : Account(A) -

M : 1000$ برداشت

T2 : Account(B) +

Begin Transaction Transfer Update Account (A); Update Account (B) ; If everything is fine then Account (A)- 1000$ Account (B) +1000$ Else commit Roll back; End if; End;

Begin Transaction Transfer Update Account (A); Update Account (B) ; If everything is fine then Account (A)- 1000$ Account (B) +1000$ Else commit Roll back; End if; End;

(M)

(M) (M)

(M)

Page 49: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

49

: (Terminology)اصطالحات

* Tupple به سطرها یا رکودهای یک :relation ) گفته می شود )جدول.

می گویند. Body نه( بد relationرا در یک جدول )ها tupple مجموع همه

* Cardinality به تعداد :Tupple های یک رابطه گفته می شود.

* Attribute .هر کدام از ستون ها یا فیلد ها را صفت می گویند :

. (Header)( را مجموعه عنوان می گویند relationمجموع خاصیتهای یک جدول )

* Degree یند. ابطه را درجه می گور : مجموع صفات یک

:( Domain) :* دامنه

مقادیر معتبر برای هر نوع داده است. دامنه غیر از اینکه مقادیر داده را مشخص می کند زدامنه مجموعه ای ا

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

کرد ولی نمی توان ضرب کرد. ( concatenation توان الحاق )

( : Functional Dependenceوابستگی تابعی ) *

حداکثر یک Aوابستگی تابعی دارد اگر به ازای هر مقدار برای خاصیت A خاصیت به B خاصیت در یک جدول

نامیده می شود . Bتعیین کننده A( در اینصورت A B) وجود داشته باشد B خاصیت مقدار برای

مثال :

FD

FD

Std# name,major

Name major

FD

FD

FD

FD

Page 50: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

50

(:Full Functional Dependence )وابستگی تابعی کامل *

وابستگی تابعی کامل دارد Aبه صفت Bدر یک جدول صفت

(A B) اگر صفت،B به تمامی صفاتA وابستگی تابعی داشته باشد.به عبارت دیگر صفتB به صفتA

به هیچ جزئی از Bوابستگی تابعی داشته باشد ثانیا صفت Aبه صفت B وابستگی تابعی کامل دارد اگر اوال صفت

وابستگی تابعی نداشته باشد. Aصفت

مثال :

عملگرهایsemantic :

یا معنا دار عملگرهای هستند که برای هر نوع داده معنا دار باشند. semanticعملگرهای

مقادیر درRDB می باشنددو نوع :

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

( مقادیر غیر اسکالر : مقادیری است که اجزای ان برای کاربر قابل مشاهده می باشد. 2

خواص رابطه ها درRDB :

FFD

FFD

Std# name

Std#,name major

Name,major std#

FFD

FFD

FFD

FFD

FFD

FFD عدم وابستگی تابعی

کامل ، وابستگی تابعی عدم وابستگی تابعی

Std# major

FFD

FFD

جزئیوابستگی

Partial Dependence

Page 51: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

51

1 )tupple . ها فاقد تکرار هستند

2 )Tupple ها فاقد ترکیب هستند.

ب هستند. ( صفات )ستونها( فاقد ترتی3

برای هر صفت دقیقا یک مقدار دارد. Tupple( هر 4

جزء یا جفت های مرتب nمجموعه ای از Tuppleها نتیجه می شود : یک Tuppleاین خاصیت از تعریف

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

(1 NF)

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

Z1 Y1 X1

Z2 Y2 X1

جزئیوابستگی

Relation

Page 52: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

52

Supplier

کننده عرضه

Sp

Parts

قطعات

Sid (P.K)

Sname

Status

City

Sid (p.K)

Pid (p.K)

Qty

Pid (p.K)

Pname

Color

Weight

City

Relation Entity Entity

Page 53: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

53

#Sid #Pid Qty

S1 P1 905

S1 P2 20

S1 P3 -

S1 P4 -

S2 P1 -

S2 P2 -

S2 P3 -

S2 P4 -

S3 P1 -

S3 P2 -

S4 P3 -

#Pid Sname Color Weight City Sqty

P1 - RED 100

P2 - Yelow 20

P3 - - 80

P4 - - 50

P5 - - 75

P6 - - 40

#Sid Sname Status City Sqty

S1 - 100 100

S2 - 80 20

S3 - 120 80

S4 - 65 50

S5 - 87 75

#pid Qty

P1 …….

P2 …….

P3 …….

SP

3 Parts

2

Parts

Supplier

1

Page 54: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

54

: بانک اطالعاتی مرتبط به دانشگاه

مثال :جداول بانک اطالعاتی دانشگاه

Stud(s#,sname,city,avg,clg#) دانشجو

Prof(pname,office,esp,degree,clg#) استاد

Crs(c#,cname,unit,clg#) درس

,pname,score)c#,s#,termSec(sec#, گروه درسی

ن دارد دانشجویی دو ترم درسی را گرفته باشد)حتی شاید نمره یکسانی در هر امکاکلید اصلی: بخاطر اینکه

دو ترم داشته باشد(کلید اصلی با ترم به صورت ترکیبی می آید.

Clg(clg#,clgname,ciy,pnme) دانشکده

Page 55: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

55

فصل چهارم

جبر رابطه ای

Page 56: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

56

جبر رابطه ای مجموعه ای از عملگرهای رابطه ای به عنو(ان عملگرOperator و رابطه ها به عنوان )

رابطه ای می باشد ویک رابطه را به عنوان نتیجه بر می گرداند . در جبر (Operandعملوندها )

است. ورودی و خروجی کلیه عملگرها )عملوندها( از نوع جدول

R1 Operator R2 R3

رابطه ای به صوری زیر می باشد: جبر رابطه ای مشتمل بر دو دسته عملگرهای

( ، تفاضل Intersect( ، اشتراک )Unionعملگرهای مجموعه ای : شامل عملگرهای اجتماع ) -1

(Minus( ضرب دکارتی ، )Times( تقسیم ، )Divide( والحاق )Join روی چند عملوند می تواند (.)

انجام شود .(

( و نامگذاری Project( ، تصویر )Restrictعملگرهای رابطه ای : شامل عملگرهای محدودیت ) -2

(Rename. )روی یک عملوند می تواند انجام شود ( )

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

σ ( Restrictمحدودیت ) عملگرهای ساده : -1

( Projectتصویر )

Extend (Extendبسط )

Summarize (Summarizeخالصه سازی )

Group(Groupگروه بندی )

Page 57: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

57

( Unionاجتماع ) عملگرهای مجموعه ای : -2

( Intersectاشتراک )

(Minusتفاضل )

عملگرهای پیوند : -3

× X ( Timesضرب دکارتی )

𝜃 ( join 𝜃 -پیوند شرطی )

∞ ( Natural – joinپیوند طبیعی )

( Semi - joinنیم پیوند )

عملگرهای خاص : -4

p (Renameنامگذاری )

جایگزینی

( Divideتقسیم )

عملگرهای اصلی و اضافی :

، ، ، ، σ ،πعملگرهای اصلی :

𝜃 ،∞ ، ،p ، ، عملگرهای اضافی :

Page 58: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

58

( اجتماعUnion: ) اجتماع در جبر رابطه ای ، اجتماع ریاضیات معمولی نمی باشد، چرا که الزم است

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

کنندگان ، اجتماع صورت نمی پذیرد .

R1 UNION R2 R3

R1 R2 R3

R1 Union R2 زابطه ای از نوع ،R2 و R1 می باشد بطوریکه بدنهR3 حاوی تمام رکوردهایی می باشد که

خواص جابجایی و شرکت پذیری دارد . Unionباشد . R2یا در رابطه R1در رابطه

R1 R2 = R2 R1

R1 ( R2 R3 ) = ( R1 R2 ) R3

( اشتراکIntersect) اشتراک حاوی تمام رکوردهایی است که هم در رابطه :R1 باشد و هم در

خواص جابجایی و شرکت پذیری دارد. . در اشتراک هم رابطه ها باید همگن باشند . اشتراک R2رابطه

R1 INTERSECT R2 R3

R3 R2 R1

ت( فاضلMinus : ) تفاضل حاوی تمام رکوردهایی می باشد که در رابطهR1 باشد ولی در رابطهR2

باید همگن باشند. R2 و R1نباشد .

همگن

همگن

Page 59: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

59

R1 MINUS R2 R3

R3 R2 R1

تفاضل خواص جابجایی و شرکت پذیری ندارد .

R1 - R2 R2 - R1

R1 – (R2 – R3 ) (R1 – R2 ) - R3

( ضرب دکارتیTimes : ) ضرب دکارتی دو رابطه مجموعه ای از جفت های چندتایی )یا همان رکورد

( می باشد . رابطه حاصل از ضرب دکارتی دو رابطه متشکل از تمام صفاتی است که از هر دو رابطه

ورودی گرفته شده است .

R1 R2 R3

R1 TIMES R2 R3

: در ضرب دکارتی به هیچ عنوان نباید صفت هم نام و مشترک در رابطه نکتهR1,R2 وجود داشته

باشد، ولی عمل الحاق دو جدول بر اساس یک فیلد مشترک می باشد .

و رکورد R1رابطه ای است که شامل رکوردهایی است که رکورد اول در R1 TIMES R2رابطه حاصل از

می باشد. R2وم در د

TIMES ( ضرب دکارتی دو رابطه ناهمگن را نشان می دهد ، همانطور 4-1شرط همگن بودن را ندارد .شکل ،)

می باشد . 2می باشد و درجه رابطه حاصلضرب درجه 1که مشاهده می شود ، درجه رابطه های اولیه

همگن

Page 60: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

60

(: ضرب دکارتی دو رابطه 4-1شکل )

بطور کلی ، در حاصلضرب دو رابطهR2 وR1 : خواهیم داشت

R1 Cardinality (R1) = n

Degree (R1) =

R2 Cardinality (R2) = m

Degree (R2) = 𝛽

X a

Y a

Z a

X b

Y b

Z b

a B

X

Y

Z

= تعداد صفات

تعداد

رکوردها

n + 𝛽 تعداد

صفات

تعداد

رکوردها

n.m 𝛽 تعداد =

صفات

تعداد

رکوردها

m

R1

R2

R3

Cardinality (R3) = m* n

Degree (R3) = + 𝛽

R1 x R2 = R3

Page 61: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

61

باید در مورد این شروط .در عمل محدودیت می توانیم چندین شرط داشته باشیم ( : Restrictمحدودیت )

95مثال رکورد دانشجویانی که سال ورودی آنها . یک رابطه باشد . محدودیت انتخاب یک یا چند شرط است

باشد .

<Relation name> where <condition>

R3 𝜎 (R)

. نکته : سه رابطه زیر هم ارز می باشند

1 𝜎 ( R) (𝜎 (R) ) (𝜎 (R) )

2 𝜎 (R) (𝜎 (R) ) (𝜎 (R) )

3 𝜎 (R) ( 𝜎 (R) )

( تصویرProject : ). انتخاب یک یا چند ستون یا صفت

<Relation name> [attribute 1 , … , attribute n ]

(R) R3 π

Condition

با شرط Rیعنی انتخاب از رابطه

C1&C2

C1 C2

C1&C2

C1 C2

NOT C C

attr 1 , … , attr n

Page 62: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

62

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

شوند .

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

.

: تصویری است که صفتی نداشته باشد . تصویر خالی

دارای رابطه های عرضه کننده-فرض می کنیم بانک اطالعاتی قطعهSp ،p ،S به شرح زیر

باشد :

S ( s# , sname , status , city )

P ( p# , pname , color , weight , city )

SP ( s# , p# , Qty )

تمامی مشخصات کلیه قطعات را پیدا کنید ؟ – 1مثال

آن را می خواهیم پس جواب نداریم چون از کلیه سطرها کلیه ستون های restrictو عمل projectعمل

می باشد. pفقط

شماره و نام کلیه قطعات را پیدا کنید ؟ - 2 مثال

p[pname]داریم . projectفقط عمل

(p) π

نام و وزن قطعاتی که دارای رنگ آبی هستند را پیدا کنید ؟ – 3مثال

P#,pname

Page 63: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

63

. projectداریم بعد عمل restrictهمیشه ابتدا عمل

((p where color = ‘ blue ‘)[pname,weight]

π ( 𝜎 (p) )

و در شهر تهران واقع 155شماره و نام عرضه کنندگانی را مشخص کنید که دارای وضعیت بیش از – 4مثال

هستند ؟

{ s# , sname } مجهول

{ status > 155 & city = ‘ Tehran ‘ } معلوم

((( S where status >= 100 ) intersect ( S where city = ‘ Tehran ‘ )) [ all but

status ]

π ( 𝜎 (S) )

نام قطعاتی که در شهر تهران مورد استفاده قرار می گیرند و دارای رنگ قرمز یا آبی هستند را - 5مثال

مشخص کنید ؟

{ city = ‘ Tehran ‘ & color =’ blue ‘ or ’ red ‘ } معلوم

{ pname } مجهول

π ( ( ( 𝜎 p) ( 𝜎 p ) ) (𝜎 p))

( ( P where city = ‘ Tehran ‘ ) intersect ( ( P where color = ‘blue ‘ )

union ( P where color = ‘red ‘ ) ) ) [ pname ]

Pname , weight Color= ‘ blue ‘

s# ,sname , city status >= 100 city = ‘ tehran ‘

،استدر کل مثالها P،SP،S چون هر دو از جدول

پس همگن است.

باید مشخص کنیم . pاز جدول

pname city = ‘ Tehran ‘ color = ‘blue ‘ color = ‘red ‘

Page 64: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

64

را عرضه می کنند ؟ p2اسامی عرضه کنندگانی را مشخص کنید که قطعه - 6مثال

1 – ( ( SP where p# = ‘p2’ ) join S ) [ sname ] π ( ( 𝜎 SP) ∞ S )

2 – ( SP join S ) where p# = ‘p2’ ) [ sname ] π ( ( 𝜎 ( SP ∞ S ) )

joinرا می دهد، ولی چون دو جدول بزرگ و اطالعاتی که نیاز نداریم را 1، همان گزارش شماره 2شماره

، ابتدا عمل 1اشد . در شماره کردیم ، زمان بیشتری صرف بارگذاری می شود و این حالت بهینه نمی ب

restrict . انجام می شود و حجم داده های بارگذاری شده کمتر می شود

اسامی عرضه کنندگانی را مشخص کنید که حداقل یک قطعه قرمز تولید می کنند ؟ - 7مثال

( ( ( P where color = ‘red’ ) join SP ) join S ) [ sname ]

π ( ( ( 𝜎 P) ∞ SP ) ∞ S )

کیلو را عرضه نکرده اند ؟ 155اسامی عرضه کنندگانی را مشخص کنید که کاالهایی با وزن بیش از – 8مثال

( ( P Minus ( P where weight > 100 ) ) join SP join S ) [ sname ]

π ( ( ( P - 𝜎 P) ∞ SP ) ∞ S)

شماره عرضه کنندگانی را مشخص کنید که تمامی قطعات را تولید می کنند؟ – 9مثال

( S [ s# ] Divided by P[ p# ] per SP [ s# , p# ] )

π S ) (π P)

را ارائه می کنند ، مشخص کنید ؟ p4و p2رضه کنندگانی که قطعات شماره ع -11مثال

sname p# = ‘p2’

sname p# = ‘p2’

sname color= ‘red’

sname weight > 100

S#

π SP s#,p#

p#

Page 65: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

65

( S[ s# ] Divided by ( ( ( P where p# = ‘p2’ ) intersect ( P where p# = ‘p4’ ) )

[ p# ]

per SP [ s# , p# ] )

π S ) (π 𝜎 p) (𝜎 p ) ) )

برای تفهیم بهتر جبررابطه ای ،کلیه عملگرهای رابطه ای توصیف شده بر روی یک بانک اطالعاتی دیگر ) بانک

اطالعاتی دانشگاه (اعمال می گردد .

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

باشد؟ 3د مشهد که شماره دانشکده آنها کلیه اطالعات دانشجویان متول (1

)(3#"" studdgمشهدcity

شماره دانشجویی، نام و کد دانشکده کلیه دانشجویان را نمایش دهید؟ (2

)(lg#,,# studcsnames

شهرهای مختلف محل تولد دانشجویان را نمایش دهید؟ (3

)(studcity

s# p# = ‘p2’ p# p# = ‘p4’

π sp s#,p#

تکراری ندارد چون

این جدول خود یک

رابطه است و فاقد

منطقه های تکراری

رانته

مشهد

اصفهان

تبریز

خروجی

Page 66: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

66

دارند؟ 16یانی که معدل باالی شماره و نام و کد دانشکده دانجو (4

)(lg#,,# studavgcsnames 16

لیست نام همه افرادیکه در انشکده ها، هستند؟ )هم استاد و هم دانشجو( (0

خروجی: نامهای یکسان حذف می گردند

)(,)( profstud pnamesname

نام اساتیدی که رئیس دانشگاه نیستند؟ (6

lg)()( cprof pnamepname

اساتید، همنام را نمایش دهد؟ نام دانشجویان و (7

)(,)( profstud pnamesname

ارائه شده باشد؟ پر هزینه « قربانی»نام و شماره درسی که توسط استاد (8

crs

xcrs

cnameCقربانيPnameC

ccrscghorbanipnameCcrscname

#""#

#.#.sec"".sec#.#

)sec(

sec)(

مشخصات کامل روسای دانشکده ها؟ (9

)(lg)( profcpname

می دهد که در چیست؟ مشخصات دانشجویان و دانشکده کسانی را clg# studخروجی (15

همان شهر محل تولد خود به دانشکده میروند.

صورت می گیرد. joinهم #clgبر اساس

نام دانشجویانی که در درس دانشکده های دیگر نیفتاده اند؟ (11

جواب بهینه نیست اما درست است.

Page 67: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

67

sec)))((( lg#.lg#. crsXstud ccrscstudscoresname 10 . این دستور غلط است

sec))))((( lg#lg#lg#10 crsstudstud cccscoresname جواب بهینه

ذف دروس دانشکده های دیگر می شودباعث ح crs و stud در دو جدول clg #زیرا وجود صفات همنام

#sec)(7711lgخروجی (12 crstermc چیست؟

.شده است ارائه 771ترم اول دقیقا 1دانشکده دروسی که در خروجی ظاهری: اطالعات مربوط به

واقعا چنین نیست.

رد.یمی گرا در نظرنsec مربوط به جدول termدستور باال غلط است

.

(sec))())(( 7711lg# termcnamec crs .بهینه تر

نام اساتیدی که دفتر کارشان مشترک است؟ (13

))(()))((( ,1,1 profprof officepname

pname

pnameofficenameP

همه اساتید با خودشان هم اتاق هستند

مشخصات درسی که توسط استاد قربانی ارائه شده است؟ (14

crstemp

temp pnamecقرباني (sec))( ""#

Page 68: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

68

انشجویانیکه همه درسهای استاد احمدی را گرفته اند؟ د (10

(sec)))(( ""##.sec#. pnamecssstudstudاحمدي

دروسی که توسط همه دانشکده های ارائه می شود؟ (16

lg)(lg##.sec#.,lg#.lglg#. cCrs ccccrsccccrs

tempcrsخروجی (17 چیست؟ دستور غلط است زیرا همه ستونهایclg درcrs .وجود ندارد

دروس افتاده خود را مجددا گذرانده اند؟ که همه نام دانشجویانی (18

(sec))(((sec)))((( #,##,#, 1010 scorecsscorecssname stud

* بهینه سازی پرس و جو:

زمان : Evolutionپارامترهای

فضا

دو ( ارائه شده اند؟ )استفاده 771)کد 77واحدی که در نیمسال اول سال 4مثال: مشخصات دروس

حذف می گردد. term( پس از نیم پیوند صفت secو crsجدول

sec)()771(4 crstermunit ( دستور غلط 1

(sec)))(( 7714 termunit crs ( دستور صحیح 2

(sec))())(( 7714 termunit crs ( دستور صحیح 3

sec)))(())(( ,#7714 termctermunit crs ( دستور صحیح 4

Page 69: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

69

(sec)))())(( 771#4 termcunit crs ( دستور صحیح 0

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

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

سازی پرس و جو: * قواعد بهینه

( را هر چه ممکن است زودتر انجام دهید.گزینش ) -1

( را زود و بعداز گزینش انجام دهید. پرتو ) -2

شرطهای ترکیبی به شرطهای متوالی تبدیل کنید. -3))(()(

)()(

ee

pp

pppp 21218

21

استفاده بهینه از روابط -4

)()( cbacba

abbaبا دانستن سایر جداول، می توان با جایگزینی معادل

نگهداری می گردد که DBMSخبر کم هزینه تری بوجود آورد. سایر جداول نیز در یک رابطه، یک

همواره دستخوش تغییر هستند. این روش قطعا مقرون به صرفه می باشد.

جدول مثال: مشخصات کامل دروس و گروههای درسی آنها؟ )معموال crs بسیار کم حجم وsec بسیار

درست است.1الگریتم پر حجم است(

sec crs 2 الگوریتم ) بهتر است crs sec 1الگوریتم )

را به دفعات وارد حافظه اصلی می کنیم و مقایسه را انجام می دهیم و sec باید سطرهای 1در الگوریتم

بسیار زیادی از

حاصلضرب سایر دو جدول = تعداد دستیاب به دیسک

بطور کامل در حافظه است و همه مقایسه ها crs فقط یکبار به حافظه می آید زیرا جدول sec در

هر سطر 2الگوریتم

Page 70: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

70

secیکبار صورت می گیرد و تعداد دستیاب به دیسک = سایر

:دستورات جبر رابطه ای بروز رسانی

))((

10,4,"","100":)1

10lg#18, studstudgoodstudgood

ccrscrsمتمرکزنااطالعاتبانکInsert

cavgavgsname

)(:)2 18 studgoodstudgoodstudgoodDelete avg

Page 71: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

71

فصل پنجم

SQLمقدمه ای بر

Page 72: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

72

SQLمقدمه ای بر

(STRUCTURED QUERY LANGUAGE) SQL آزادی از جبر رابطه ای است سازیپیاده.

SQL در ارتباط نمی باشد و نیازی به کاربر با سخت افزار باال می باشد و بنابراینن های بسیار سطح زبا جزء

بررسی جنبه مورد دو را از SQL لحاظ فیزیکی در کجا ذخیره می شود، ندارداطالعات از دانستن اینکه

:دهیم می قرار

Data Structure( انواع داده 1

Instruction ( دستورات 2

1-1-5 )SQL پشتیبانی می کند :از دامنه های زیر

اعداد (1

integer رقم( 15)تا منفی و مثبت: اعداد صحیح

smallint [99999 /99999-]: اعداد کوچک صحیح

decimal (p,q) (p مقدار صحیح وq )مقدار اعشار( : )اعداد کوچک اعشاری

numeric (p,q) (p مقدار صحیح وq ( :)اعداد 19مقدار اعشار ،)بزرگ اعشاری رقم: صحیح و اعشار

float ( 19: مقدار اعشاری با ممیز شناور )رقم

Page 73: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

73

رشته های کاراکتری (2

char(n) رشته های کاراکتری با طول ثابت :n .( شماره دانشجویی ) مانند

]2541[ ،n

varchar (n) رشته های کاراکتری با طول متغیر کوچکتر یا مساوی :n.

رشته های بیتی (3

logical :False/ True

bit(n) اعداد مبنای دو :

تاریخ و زمان (4

Time (hh: mm:ss) ; Date (yy/mm/dd)

(time stamp)( مهرهای زمان 5

ورودی ها و خروجی ها را از این نوع تعریف می کنیم )تعداد ورود و خروج و مبدا و

مقصد اگر مهم باشد از این نوع استفاده می کنیم(.

روز –و زمان –ماه –فاصله های سال (6

(interval time stamp)

زمانی را از ورودی دریافت می کنند. این نوع داده ها دو بازه

بخش تقسیم می شود: 3به SQLدستورات در ( 2-1-5

Page 74: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

74

* DDL: Data Declaration Language زبان تعریف داده ها

* DML: Data Manipulation Language هازبان دستکاری داده

* DCL: Data Control Language زبان کنترل داده ها

*DDL دستورات زیر می باشد: شامل

Create table )ایجاد رابطه(

Alter table )تغییر فیلدهای رابطه(

Drop table (رابطه)حذف کل یک

Create domain (جدید )ایجاد دامنه

*DML :شامل دستورات زیر می باشد

Select (داده)بازیابی

Insert (داده )درج

Delete (داده )حذف

Update (داده )ویرایش

: DDLاحکام ( 1-2-1-5

Page 75: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

75

ک اطالعاتی:*تعریف بان

*CREATE DATABASE db-name AUTORIZTION dba- name ;

Create Database University AUTORIZATION Ghaemi; : مثال

:ایجاد دامنه جدید

CREATE DOMAIN name type

[DEAFAULT]

[CONSTRAINT]

CHECK ( Integration rules ) ;

مثال :

Create Domain seasion char (8)

Deafault ’ spring’

Constraint Iranian western

Check (Value in "Spring " , "Summer" , "Falling " , " Winter" ) ;

دامنه تعریف شده را بروزرسانی کرد و با دستور Alter Domainهمچنین می توان با دستور

Drop Domain .آنرا حذف نمود

تعریف یک جدول )رابطه(*

Page 76: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

76

DBMS اجازه درجtupple هایnull .را نمیدهد

CREATE TABLE name

Attribute Domain 1 [NOT NULL] ,

. 2

. 3

. .

Attribute Domain n [ NOT NULL] ,

PRIMARY KEY (…) ,

DBMS از درجTupple .های تکراری جلوگیری می کند KEY FOREIN [ , ])…( [UNIQUE

(…) REFERENCES (…)] ,

, DELETE CASECADE] [ON

, [ON UPDATE CASECADE]

[FOREIN KEY (…) REFERENCES (…)] ,

… ,

[CHECK (Integration rules)];

Page 77: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

77

تعریف create domainمی تواند مجموعه ای از شهرها باشد که قبال نوع آن را باید توسط city*نکته:

(.انجام شود create tableاین تعریف باید قبل از (کنیم

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

CREATE TABLE crs

(c# char (5) NOT NULL,

cname char (30) NOT NULL,

unit Smallint NOT NULL,

clg# smallint,

PRIMARY KEY (c#),

UNIQUE (cname) )کلید فرعی که نمیتواند تکراری باشد و منحصر بفرد است(

FOREIGN KEY (clg ) REFERENCES clg,

ON DELETE CASCADE,

ON UPDATE CASCADE,

حذف یا بروز رسانی می شوند )اگر این کلیدها در جدول اصلی خود، حذف یابروزرسانی شوند، در این جدول نیز

).

CHECK (unit >0 AND unit < 5));

Page 78: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

78

استفاده نمود: ASSERTIONمیتوان جداگانه از دستور CHECK*بجای دستور

*CREATE ASSERTION name CHECK (…);

: مثال

CREATE ASSERTION crs-unit

From Crs CHECK (Not Exists (Select *)) درسی با واحد منفی تعریف نشود

Where(unit<0 and unit>5) .تعریف نشود 0با واحد بزرگتر از درسی

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

1)CREATE TABLE stud

(s# char (8) NOT NULL ,

sname char (30) NOT NULL ,

city char (15),

avg float, Decinal(2,2)

clg# char (3), numeric(2,2)

PRIMARY KEY (s )

قطعات. -عرضه کننده یبانک اطالعاتمربوط به دستورات ایجاد جداول :مثال

Page 79: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

79

Create domain Dcity char (10)

Create table S , Create table P

sname char (10) (p# char (7),

status integer, pname char (10) ,

city Dcity, color char (10) ,

Primary key (s#); weight numeric (5:2),

city D-city,

Primary key (p#)

Create table SP

(s# char (5)

P# char (7)

Qty numeric (5,2),

Primary Key (s# ,p#),

Foreign key (s#) Reference (S),

Page 80: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

80

Foreign key (p#) Reference (P),

*تغییر جداول بانک اطالعاتی:

*ALTER TABLE table – name

MODIFY (col-name type) [Default]; )تغییر نوع داده(

: مثال

ALTER TABLE crs

MODIFY (cname char (40));

چرا که ستون مورد نظر دارای داده می باشد و تغییر نوع آن امکان پذیر نیست. ، *از دستور زیر امتناع می شود

ALTER TABLE crs MODIFY (c# Smallint);

*ALTER TABLE table – name

ADD (col-name type [Default] ); )افزودن صفت(

:مثال

ALTER TABLE crs

ADD (text char (100) Default (-1) );

SQL توان جداول جدیدی ایجاد کرد که . میبه کاربر نمی دهد ( رادادهامکان حذف ستون )دارای مقادیر *

نظر باشند. ستونهای موردفاقد

Page 81: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

81

*DROP table - name [option];

:Restrict جداول پایهDrop نمی شوند

Cascadeپایه می توانند : جداولDrop شوند

همان کلیدهای ثانویه هستند.و برای تسریع جستجو بکار می رود *ایجاد و حذف ایندکس:

Create [Unique] index- name on table-name (attribute) ;

Drop index-name;

: مثال

Create Unique index-names on S (sname) ;

: DMLاحکام ( 2-2-1-5

به دو صورت رج داده :*د

چندسطر با برداشتن از جدول دیگر، انجام می پذیرد وارد کردن ، ووارد کردن سطر به سطر به جدول موردنظر

.

INSERT INTO table – name

Page 82: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

82

VALUES (list of values);

: درج یک رکورد مثال

INSERT INTO crs

VALUES ("10147" , " توزیع شده یبانک اطالعات ;(3,20 و"

: درج چندین رکورد مثال

CREATE TABLE Profession….. ;

INSERT INTO profession

SELECT esp, degree

FROM prof;

*حذف داده ها

DELETE

FROM table-name

WHERE condition

که نمره ندارند انتخاب واحد هاییحذف : مثال

DELETE

Page 83: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

83

FROM sec

WHERE score IS NULL ;

*تغییر و بروز رسانی داده ها:

UPDATE table – name

SET attribute 1 = value 1, attribute 2 = value 2,…

WHERE condition;

: بروز رسانی مثال

UPDATE sec

SET sec #=10, score = 0 ,

WHERE sec# IS NULL;

*استخراج اطالعات:

SELECT attributes – name

FROM table – name

[WHERE condition]

[GROUP BY attribute]

[HAVING condition on groups]

Page 84: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

84

[ORDER BY attribute];

؟4ایع با کد نشجویان یزدی در دانشکده مهندسی صناطالعات کامل دامثال :

SELECT * FROM stud (فات در رابطه موردنظرانتخاب تمامی ص)

= WHERE city "یزد"

4; =# clg AND

نام و نمره دانشجویان در دروس مختلف؟ (مثال

SELECT sname , cname , score

FROM stud, crs, sec

WHERE stud. s # = sec. s #

AND sec. c# = crs. c# ;

---------------------------------------------------

SELECT sname

FROM stud

WHERE s # IN

(SELECT s# , score

Page 85: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

85

FROM sec

WHERE c # IN

(SELECT c# , cname

FROM crs ));

می رود.نام یک ستون )صفت( در یک رابطه بکار برای تغییر AS عملگر*

number SELECT s# ASمثال ، بعنوان

FROM stud ;

برای عدم نمایش رکوردهای تکراری :Distinct*دستور

به بعد ارائه شده است؟ 1370ز سال ( نام و شماره دروسی که امثال

SELECT Distinct (cname , crs. c # ) دتکراری دار

FROM crs, sec

WHERE crs. c# =sec. c #

AND term > = 751;

SELECT Distinct cname , (c#)

FROM crs

Page 86: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

86

WHERE c # IN

select (c#)

FROM sec

WHERE term > 751);

که در دانشکده کامپیوتر درس ارائه شده است؟ ترم هایی مثال (

SELECT term SELECT term

FROM sec, clg, crs FROM sec

WHERE clg. clg name = “کامپیوتر” WHERE c # in

AND clg. clg # = crs. clg # (SELECT c#

AND crs. c # = sec . c # FROM crs

WHERE clg # IN

(SELECT clg #

FROM clg

WHERE clg name = ‘کامپیوتر’));

ز اتمام پس ا ( خروجی را تولید می نماید . DESC( و نزولی ) ASCبه دو صورت صعودی ) :*مرتب سازی

کند. گرفتن خروجی آنرا مرتب و چاپ می کار و

Page 87: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

87

معموال این دستور در انتهای همه دستورات . مرتب سازی صورت می گیرد ORDER BYبا استفاده از دستور

می آید.

وه ؟رنزولی شماره درس و صعودی شماره گمثال: مرتب سازی

SELECT c #, sec #

FROM sec

ORDER BY c# DESC | sec # ASC;

حکام ی اامثالهDML قطعات –روی بانک اطالعاتی عرضه کننده

کلیه اطالعات تمامی قطعات ؟ ( 1مثال

SELECT *

FROM P;

هستند ؟ ( نام قطعاتی که دارای وزن بیش از صد کیلو و دارای رنگ قرمز 2مثال

SELECT pname

FROM P

WHERE weight > = 100

Page 88: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

88

AND color = "red";

( شماره عرضه کنندگان و شماره قطعاتی که در همان شهری که تولید می شوند استفاده می شوند.3مثال

SELECT S.s# , p.p# SELECT s #,

FROM S,P FROM S

WHERE S. city = P. city WHERE city IN

(SELECT city, p#

FROM P);

ابتدا SQLکامپایلر ؟( هستند 155( شماره و نام عرضه کنندگانی که دارای وضعیت عالی )بیش از 4مثال

WHEREمی کند. سپس دستور بارگذاریرا در حافظه Sرا انجام می دهد و جدول FROM Sدستور

Condition را انجام می دهد(restrict) دستور نهایتاو(project) SELECT Attribute .را انجام می دهد

SELECT s# , sname

FROM S

WHERE status > = 100;

را عرضه می کنند؟ p2( عرضه کننده گانی که کاالی 0مثال

SELECT s#

Page 89: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

89

FROM SP

WHERE p # = 'p2' ;

را عرضه می کنند؟ p2( نام عرضه کنندگانی که کاالی 6مثال

SELECT S . sname

FROM S, SP

WHERE SP.p # = 'p2'

AND SP. s # = S.s#;

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

غیرفیزیکی ساخته می شود.

ز می توان نوشت:ولی دستورات را به صورت زیر نی را خواهیم داشت ، Sو SP*در این مثال حتما دو جدول

SELECT s name

FROM S

WHERE s # IN

(SELECT s #

FROM sp

WHERE p # = 'p2' );

Page 90: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

90

کیلوگرم را عرضه می کنند. 205( نام عرضه کنندگانی که کاالهایی با رنگ قرمز و یا وزن بیش از 7مثال

SELECT sname

FROM S

WHERE s # IN

(SELECT s #

FROM SP

WHERE p # IN

(SELECT p#

FROM P

WHERE color= 'red'

OR weight > = 250));

عملگرهای مجموعه ای عبارتند از : *عملگرهای مجموعه ای:

UNION , INTERSECT, EXCEPT, CONTAINS, IN, NOT IN, LIKE

- اجتماع

زیر مجموعه تفاضل اشتراک

بودن

عدم عضویت عضویت

جستجوی یک عبارت در داخل مقادیر یک رشته

Page 91: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

91

دانشجو یا استاد؟ شامل نام و کد دانشکده همه افراد (1مثال

SELECT sname, clg#

FROM stud

UNION ( INTERSECT : اسامی دانشجویان و اساتید همنام )

SELECT pname, clg#

FROM prof;

اسامی و دانشکده اساتید بجز آنهایی که با دانشجویی در دانشکده خودشان همنام هستند؟ (2مثال

SELECT pname, clg#

FROM prof

EXCEPT

SELECT sname, clg#

FROM stud;

انشکده هایی که در شهر تهران، اصفهان، شیراز و مشهد واقعند؟(د 3مثال

SELECT *

Page 92: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

92

FROM clg

WHERE city IN ('مشهد' ، 'شیراز' ، ' اصفهان '،' تهران ' );

OR city 'مشهد' = city یا = ' شیراز ' OR…

( دانشجویانی که محل تولد آنها شهرهای تهران و مشهد و تبریز نیست؟ 4مثال

SELECT *

FROM stud

WHERE city NOT IN (' تبریز ' ، ' مشهد ' ، ' تهران ');

' = And city تبریز = city یا مشهد ' And city ='تهران' ;

داده اند؟ 25( اساتیدی بجز احمدی و بهروزی که نمره 0مثال

عمل می شود و بارگذاریحافظه در sec*ابتدا دستورات داخل پرانتز انجام می پذیرد. لذا ابتدا جدول

که بایستی با secانجام می گیرد. لذا رکوردهای کمتری بایستی نسبت به تمامی رکوردهای محدودیت

الحاق یابند، وجود دارد. profرکوردهای

SELECT *

FROM prof

WHERE pname IN

(SELECT pname

Page 93: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

93

FROM sec

WHERE score = 20

AND pname NOT IN (' احمدی ' ، ' یبهروز '));

مقایسه و بررسی روی رشته ها؛ :LIKE*عملگر

: بجای هر کاراکتری –کاراکتر

کاراکتر%: بجای هر تعدادی کاراکتر

بکار رفته باشد؟ "مصالح"( مشخصات تولید کنندگانی که در نام آنها عبارت 1مثال

SELECT *

FROM S ( مهم نبودن مکان کلمه مصالح در رشته)

WHERE sname LIKE % مصالح ؛ مصالح%);%مصالح%(

است؟ 'علی'نام اساتیدی که نام اول آنها ( 2مثال

SELECT pname

FROM prof

WHERE pname like"علی"%;

شروع می شوند ؟ DB( دروسی که کد آنها چهار کاراکتری است و با 3مثال

در انتها یا ابتدای نام عرضه کننده :"مصالح"قرار داشتن کلمه

Page 94: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

94

SELECT c#, c name

FROM crs

WHERE c# like 'DB - - ';

هم جزو جواب باشد بایستی dbبرای اینکه

WHERE UPPER (c#) like 'DB - - ';

LOWER (c#) like 'db - - ';

ALL – ANYو EXISTS – NOT EXISTS*عملگرهای

دانشکده هایی که درسی ارائه نمیدهند؟ ( 1مثال

NOT EXISTS (SELECT *

FROM clg

WHERE clg# IN

(select clg#

from crs)) ;

( بیشتر است؟15)کددانشکدهآنها از همه دانشجویان دانشجویانی که معدل ( 2مثال

SELECT *

FROM stud

Page 95: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

95

WHERE avg > ALL (SELECT avg

FROM stud

WHERE clg # = 10);

و یک رقمی است؟ زوجدانشکده هایی که کد آنها عددی ( 3مثال

SELECT *

FROM clg

WHERE clg # = ANY (1,3,5,7,9);

count *عملگرهای تقسیم:

شماره دانشجویانی که همه درسها را گرفته اند؟ ( 1مثال

SELECT s#

FROM sec

GROUP BY s#

HAVING COUNT (Distinct c#) = (SELECT COUNT (c#)

FROM crs);

:SQL*توابع پیش ساخته در

Page 96: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

96

SQL امکان استفاده از توابعی همچون COUNT، MAX ،MIN ،SUM وAVG .و ... را به کاربران می دهد

SUMبزرگترین و کوچکترین مقدار یک فیلد ، تابع MAXو MINتعداد رکورد ها ، توابع COUNTتابع

میانگین چندین فیلد را بر می گردانند . AVGمجموع مقادیر چندین فیلد ، تابع

حداقل معدل دانشجویان؟ ( 1مثال

SELECT MIN (avg) As Lowest – Average

FROM stud ;

( میانگین نمرات درس پایگاه داده ها و مهندسی نرم افزار؟ 2مثال

SELECT SUM (unit * score) / SUM(unit) FROM crs, sec

AVG (unit * score)غلط

WHERE crs. c# = sec. c#

AND cname = ‘پایگاه داده ها’

OR cname= ’مهندسی نرم افزار’;

بیشتر است؟ دانشجویان( دانشجویانی که معدلشان از میانگین معدل همه 3مثال

SELECT sname , avg

FROM stud

Page 97: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

97

WHERE avg > AVG (avg);

تدریجی مقدار ،زیرا تا هرجای جدول پیش میرودپرس و جوی فوق غلط می باشد ،

AVG(avg) را محاسبه می کند که مقداری غلط است .

WHERE avg > (SELECT AVG (avg)

FROM stud) ;

نام اساتید دانشجویانی که معدل آنها از میانگین همه معدلها بیشتر است؟ ( 4مثال

SELECT Distinct (pname), s#

FROM sec

WHERE s# IN

(SELECT s#

FROM stud

WHERE avg > (SELECT AVG (avg)

FROM stud ));

ماکزیمم و مینیمم معدل دانشجویان هر دانشکده؟ ( 0مثال

SELECT clg # , MAX (avg), MIN(avg)

FROM stud

Page 98: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

98

GROUP BY clg # ;

س و نام دانشجویانی که دروس ارائه شده توسط استاد احمدی را گرفته اند؟( شماره در 6مثال

SELECT sec.c# , stud. Sname SELECT sname

FROM stud, sec FROM stud

WHERE stud. S# = sec. s# WHERE s# IN

GROUP BY stud. S#, s name (SELECT s# , c #

HAVING c # CONTAINS FROM sec

(SELECT c# GROUP BY s #

FROM sec HAVING c# CONTAINS (SELECT c#

WHERE pname =’احمدی’)); FROM sec

WHERE pname =' احمدی '));

:اتقطع –عرضه کننده اطالت در بانک SQLتوابع

؟ ( تعداد کل قطعات1مثال

SELECT COUNT (p#)

FROM P;

Page 99: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

99

برای شمارش سطرهای جداول بکار میرود و نمی تواند با (*) COUNT .یا می تواند به صورت زیر باشد

Distinct .بکار رود

SELECT COUNT (*)

FROM P;

؟( تعداد کاالهایی که رنگ آنها آبی است 2مثال

SELECT COUNT (*)

FROM P

WHERE color= 'blue';

؟گان ( تعداد کل عرضه کنند3مثال

SELECT COUNT (*)

FROM S;

بیاوریم تا فقط عناصر غیرتکراری را COUNTرا قبل از Distinctوقتی از جدول رابط استفاده می کنیم باید

نشان دهد.

SELECT Distinct COUNT (*)

FROM SP;

Page 100: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

100

؟( میزان کل قطعات عرضه شده 4مثال

SELECT SUM (Qty)

FROM SP;

؟ p2عرضه قطعه ( میزان 0مثال

SELECT SUM (Qty)

FROM SP

WHERE p# ='p2';

؟عرضه کرده است S2قطعاتی که عرضه کننده مجموع( 6مثال

SELECT SUM (Qty)

FROM SP

WHERE s# = 's2';

؟( میزان عرضه هرکاال به طور مجزا 7مثال

SUM (Qty) را بر حسبp# گفته می شود.یعنی یک فیلد را بر به دست می آوریم که به آن گروه بندی

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

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

SELECT p# , SUM (Qty)

Page 101: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

101

FROM SP

GROUP BY p#;

نفر میباشند؟ 25کده هایی که تعداد اساتید آنها بیش از شماره دانش ( 8 مثال

SELECT clg #

FROM prof

GROUP BY clg #

HAVING COUNT (pname) > 20 ;

نده چه مقدار کاال عرضه کرده است؟هر عرضه کن ( 9مثال

SELECT s#, SUM (Qty)

FROM SP

GROUP BY s#;

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

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

را مشخص کنید؟ p2( حداکثر و حداقل مقدار عرضه کاالی 15مثال

SELECT s#, MAX (Qty),s#, MIN (Qty)

FROM SP

Page 102: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

102

WHERE p# = 'p2';

را عرضه نمی کنند؟ p2( نام عرضه کنندگانی که قطعه 11مثال

SELECT sname

FROM S

WHERE s# NOT IN

(SELECT s#

FROM SP

WHERE p# = 'p2');

عرضه شده باشند؟ s2باشند یا توسط عرضه کننده کیلوگرم155( نام قطعاتی که دارای وزن بیش از 12مثال

و unionولی اگر دو جدول داشته باشیم از ، استفاده می کنیم که یک جدول داشته باشیمزمانی orو andاز

intersect .استفاده می کنیم

SELECT pname

FROM P

WHERE weight > = 100

UNION

SELECT pname

Page 103: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

103

FROM P

WHERE p # IN

(SELECT p#

FROM SP

WHERE s # = 's2');

عرضه شده s2باشند یا توسط عرضه کننده کیلوگرم 155قطعاتی که دارای وزن بیش از ( شماره 13مثال

باشند.

SELECT p#

FROM P

WHERE weight > = 100

UNION

SELECT p#

FROM SP

WHERE s# = 's2';

د؟تمام زوج عرضه کنندگانی را مشخص کنید که دو عرضه کننده در یک مکان واقع شده باشن (14مثال

Page 104: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

104

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

Selet first.s # , second. S#

From s

Where first. City = second. City

And first. S# < second. S #; خط آخر برای جلوگیری از تکرار می باشد

?واحد به وضعیتشان اضافه شود 15کنندگانی که در تهران هستند ( عرضه 15مثال

Update s

Set status = status + 10

Where city = 'tehran';

?واحد اضافه شود 15را تولید می کنند به وضعیتشان p2( عرضه کنندگانی که قطعه 16مثال

Update s

Set status = status + 10

Where s# in

(select s#

From sp

Page 105: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

105

Where p#= 'p2');

?را عرضه می کنند حذف شوند p2( عرضه کنندگانی که قطعه 17مثال

Delete

From s

Where s# IN

(select s#

From sp

Where p# = 'p2');

:system catalog*بازیابی اطالعات از

؟ s( تعداد صفات و نوع صفات جدول 18مثال

SELECT COUNT(*), type, column name

FROM Column

WHERE tabname = 'S';

?آنها را ایجاد کرده باشد 1ath( نام جداولی که کاربری با کلمه رمز 19مثال

SELECT tabname

Page 106: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

106

FROM Table

WHERE iduser = '1 ath';

?( نام جداولی که بیشتر از سه فیلد دارند20مثال

SELECT tabname

FROM Table

WHERE colcount > 3;

؟را نمایش دهید s( تمام صفات جدول21مثال

SELECT colname

FROM Column

WHERE tabname = 'S';

؟می باشند را مشخص کنید #s( نام جداولی که دارای فیلد 22مثال

SELECT tabname

FROM Column

WHERE conlame = 's#'

*عملگرهای پیوند:

CROSS JOIN :ضرب دکارتی

Page 107: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

107

…GOIN… ON : (join-0)پیوند شرطی

NATURAL JOIN : پیوند طبیعی

SELECT cname, sec # مثال ( نام تمام دروس ارائه شده ؟

FROM crs NATURAL JOIN sec ;

:DCL*احکام

است ، که توسط مدیر بانک (public و عمومی)هر کاربر دارای شناسه ویژه ، SQLاز دیدگاه امنیتی در

اطالعاتی تعیین می گردد .

Delete , Update , Insent , Select امتیازات عبارتند از: دستیابی به جداول دارای امتیازات

References :محدودیتهای جامعیتبرای کنترل و اعمال

usage : (view)استفاده از امکانات دیدگاه

انجام REVOKEبا دستور و گرفتن امتیاز GRANT دادن امتیاز با دستور : س گیری مجوزبازپواگذاری و

. می گیرد

Option > لیستی از کاربران< >TO ینام جدول بانک اطالعات ON< > لیست امتیازاتGrant <

Option می تواند در دو حالتCascade ،Restrict باشد .در حالت ،Cascade ، کاربر میتواند این

امتیازات را به کاربران دیگر واگذار نماید.

Page 108: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

108

مثال:

GRANT Insert, Select ON crs, sec TO Ahmadi, Behrozi,

>[Option]لیستی از کاربرانFrom< >نام جدول بانک اطالعاتی> ON< لیست امتیازات REVOKE<

عبارتند از : لیست امتیازات

Select خواندن همه ستونها

Select (attributes-Name) خواندن بعضی ستونها

Update اصالح همه ستونها

Update (attributes-Name) اصالح بعضی ستونها

Insert درج رکورد

Delete حذف رکورد

Alter تغییر ساختار جدول

Index ایجاد ایندکس

All کل گزینه های باال

،بطور خودکار A( نشان داده شده است، باز پس گیری مجوز ها از کاربر 0-1همانطور که در شکل )

را نیز لغو می کند . B ،C ، Dمجوزهای کاربران

Page 109: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

109

. GRANT , REVOKE: شمایی از دستورات (0-1شکل )

:(View)*دیدگاه

حالتهای مختلف ایجاد دیدگاه را از روی زیر دیدگاه ، جدولی مجازی است که از روی یک یا چندید جدول ساخته شده . شکل

جداول نمایش می دهد .

های جدول، محتویات دیدگاه هایی را که روی سیستم مدیریت بانک اطالعاتی وظیفه دارد پس از اعمال هر تغییر در داده

جداول موردنظر ساخته شده اند )بصورت فیزیکی( اصالح و بروزرسانی کند.

:طبقه بندی و گونه های دیدگاه ها

(دیدگاه سطری1

USER

A

USER

B

USER

C

USER

D

USER A

USERB

USER C

USER D

Revoke

GRANT

GRANT

Revoke

T

V

T T

V1 V2 V1

V2 V3

GRANT

Page 110: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

110

(دیدگاه ستونی2

ستونی –( دیدگاه سطری 3

(دیدگاه آماری4

(دیدگاه الحاق0

رح زیر می باشد :ایجاد دیدگاه ها به ش

یک یا چند( از سطرها را فیلتر می کند. )فقط عمل( دیدگاه سطری: بعضیRestrict گیرد.انجام می)

کیلوگرم( نشان داده 1555اطالعات قطعات سنگین )با وزن بیش از دیدگاهی شامل ، Pاز جدول (1 مثال

شود؟

CREATE VIEW High – Weight – Pants

AS SELECT *

FROM P

WHERE weight > 1000;

CREATE VIEW view name

AS SELECT attribute s name

FROM table name

WHERE condition ;

Page 111: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

111

فقط عمل را دیدگاه ستونی: بعضی )یک یا چند( از ستون ها( .فیلتر می کندproject گیرد انجام می.)

نام قطعات و وزن آنها ؟ ، دیدگاهی شامل P( جدول 2مثال

CREATE VIEW Temp – Parts

AS SELECT pname,weight

FROM P ;

هم عمل ) ستونی: بعضی سطرها و بعضی ستون ها را فیلتر می کند. –یدگاه سطری دrestrict و هم عمل

project گیرد انجام می.)

، دیدگاهی شامل شماره قطعه ، نام قطعه و وزن قطعات قرمز رنگ ؟ P: از روی جدول مثال

CREAT VIEW Red-Parts

AS SELECT p#, pname, weight

FROM P

WHERE color = 'red';

با این تفاوت که در این دیدگاه از توابع مانند ، ستونی است –: مانند دیدگاه سطری دیدگاه آماریSUM(

و ... استفاده می کنیم. ( ) AVGو (

: مثال

CREATE VIEW PQ (pno,total)

Page 112: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

112

AS SELECT p#, SUM (Qty)

FROM SP

GROUP BY p#;

اطالعات بیش از یک جدول وجود دارد و مانند حالتی است که دو جدول را ، : در این دیدگاه دیدگاه الحاق

در هم ضرب می کنیم.

CREATE VIEW Temp(sno, scity, pno, pcity)

AS SELECT s,s#, s.city, p.p#, p.city

FROM S,SP,P

WHERE S.s#, SP.s#

AND P.p#, SP.p#;

حذف دیدگاه: ●

DROP VIEW View-NAME ; :مثال

DROP VIEW Temp;

مزایای به کار گیری دیدگاه ها: ●

(دیدگاه ها تا حد زیادی باعث ایجاد استقالل منطقی داده ها می شود.1

Page 113: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

113

توسط دیدگاه ها می توان بخشی از داده ها را مخفی کرد.( 2

داشت. recovery( موجب سهولت کار با بانک اطالعاتی می شود و با دیدگاه تا حدی می توان ترمیم داده یا 3

( امکان دسته بندی کاربران وجود دارد.4

( امکان پاسخگویی به نیازهای مختلف کاربران وجود دارد.0

نواع آن مبتنی بر دیدگاه: استقالل و ا ●

(Growth Independency)( استقالل رشد 1

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

(Restructuring Independency)( استقالل سازماندهی مجدد 2

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

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

نک اطالعاتی دانشگاه را نشان می دهد . این نمودار شامل چهار کالس رابطه با –( نمودار موجودیت 0-2شکل )

( می باشد . کالسهای Course( و درس )Person( ، شخص )Lecturer( ، استاد ) Studentدانشجو )

دانشجو و استاد زیر کالسهای کالس شخص محسوب می گردند . بین کالس والد شخص و زیر کالسهای آن

بعنوان رابطه های آنها وجود دارند . بعالوه ، کالس انتخاب واحد PLو PSشامل دانشجو و استاد ، کالسهای

(SL , C بعنوان رابطه بین کالسهای دانشجو ، استاد و درس می باشد که ، ) انتخاب واحد را اطالعات مربوط به

Page 114: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

114

نگهداری می کند

Student

sid(p.k)

grade

subject

avg

SLC

sid(p.k)

cid

lid

number

Course

cid(p.k)

name

no_unt

type

PS

Sid

pid

Lecturer

lid(P.K)

edc

subject

State

Person

pid(p.k)

fname

lname

brt_date

brt_loc

PL

Lid

pid

Page 115: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

115

رابطه بانک اطالعاتی دانشگاه –( : نمودار موجودیت 0-3شکل )

با استفاده ازSQL .به سؤاالت زیر پاسخ دهید

ید ؟مایرا ایجاد ن SLCو Person کالسهای جداول پایه ای مربوط به -1

CREATE TABLE Person

(pid char (5),

fname char (10),

lname char (15),

Person

PS PL

Student Lecturer

SLC

Course

Page 116: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

116

brt Date date,

brt_ loc char (10),

PRIMARY KEY (pid);

CREATE TABLE SLC

(sid char (7),

cid char (5),

lid char (6),

number numeric (2,2),

PRIMARY KEY (sid, lid, pid),

FOREIGN KEY (sid) REFERENCE Student,

FOREIGN KEY (cid) REFERENCE Course,

FOREIGN KEY (lid) REFERENCE Lecturer;

ایجاد نمایید ؟ Course کالس و یک دیدگاه آماری از Student کالسستونی از –یک دیدگاه سطری -2

اه سطری ستونی دیدگ –الف

CREATE VIEW x (no, average)

Page 117: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

117

AS SELECT sid, grade

FROM Student

WHERE subject = 'computer'

AND grade < 12

OR grade > 17 ;

دیدگاه آماری_ ب

CREATE VIEW y

AS SELECT SUM (no unt)

FROM Course

WHERE type = 'public' ;

? یین کنیدرا تع Lecturer کالس مربوط به stateو subjectع فیلدهای نو -3

SELECT type

FROM Column

WHERE tab name = 'Lecturer'

AND col name = 'subject'

OR col name = 'state' ;

Page 118: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

118

? الکترونیک هستندی کامپیوتر و یا نام و نام خانوادگی اساتیدی که دارای مدرک دکترا در رشته تحصیل -4

SELECT fname, lname

FROM Person

WHERE pid in

(SELECT pid

FROM PL

WHERE lid in

(SELECT lid

FROM Lecturer

WHERE edc = 'PhD'

AND subject = 'computer'

OR subject = 'electronic'

؟ کسب کرده اند را مشخص کنید 18ی تعداد کل دانشجویانی که در درس پایگاه داده ها نمره باال -0

SELECT COUNT (sid)

FROM SLC

WHERE number > 18

Page 119: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

119

AND cid in

(SELECT cid

FROM Course

WHERE name = 'database');

، نام و نام خانوادگی دانشجویانی که درس پایگاه داده ها را با استادانی که در رشته کامپیوتر مدرک دکترا -6

ندارند انتخاب نموده اند ؟

SELECT fname, lname

FROM Person

WHERE pid in

(SELECT pid

FROM PS

WHERE sid in

(SELECT sid

FROM SLC

WHERE cid in

(SELECT cid

FROM Course

Page 120: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

120

WHERE name = 'database'

AND sid in

(SELECT sid

FROM SLC

WHERE lid in

(SELECT lid in

FROM Lecturer

WHERE subject = 'computer'

AND edc = 'php' )));

ی درس پروژه را انتخاب کرده اند را حذف کنید.ناسشانتخاب واحد کلیه دانشجویانی که در مقطع کار -7

DELETE

FROM SLC

WHERE sid in

(SELECT sid

FROM Student

WHERE grade = 'bachelor'

Page 121: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

121

AND sid in

(SELECT sid

FROM SLC

WHERE cid in

(SELECT cid

FROM Course

WHERE name = 'project'));

Page 122: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

122

فصل ششم

در بانک نرمال سازی

ی اطالعاتیها

Page 123: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

123

( مقدمه 1-6

: هدف از نرمال سازی

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

ساختار نرمال شده انعطاف پذیر تر ، پایدارتر و از لحاظ نگهداری راحت تر از ساختارهای غیر نرمال است .

یند نرمال سازی:فرآ

سازی ، جداول پیچیده به مجموعه ای از جداول ساده تجزیه می شوند که هر یک مجموعه ای از در نرمال

موجودیت ها را بیان می کنند.

در مرحله اول هر یک از فرم ها و (نشان داده شده است . 6-1مراحل اصلی فرآیند نرمال سازیدر شکل)

د .سپس گروهای تکرار شونده از هر جدول گزارشات سازمانی به صورت جداول غیر نرمال تنظیم می شون

غیر نرمال خارج شده و جدول جدید تشکیل داده می شود و در نتیجه مجموعه ای از جداول نرمال سطح

سازی سطح اول ، کلیه وابستگی در جداول حذف شده و مجموعه (بدست می آید .پس از نرمال 1NFاول )

آید . در مرحله سوم هر گونه وابستگی تابعی با واسطه ، ( بدست می2NFجداول در نرمال سطح دوم )ای از

(ایجاد می گردد.3NFحذف می شود و مجموعه ای از جداول نرمال سطح سوم )

Page 124: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

124

فرم های کاربران

جداول غیر نرمال

حذف گروههای تکرار شونده

(1NF)نرمال سطح اول

حذف وابستگی های جزیی

(2NF)نرمال سطح اول

وابستگی تابعی با واسطه حذف

(3NF)نرمال سطح اول

( : فرآیند نرمال سازی جداول 6-1شکل)

گروه و ها درس شامل ) دروس به مربوط اطالعات همه اگر. کنیم می آغاز سوال یک با رابحث نرمال سازی

به مربوط جداول های توناگر س ، دیگر عبارت به ؟ اتفاقی رخ می دهد چه بیاوریم جدول یک در را ( آنها های

(. شود تکرار نباید #c ستون البته) ؟ می افتد اتفاقی چه ، بچینیم هم کنار(6-2) شکل مانند را ها درس

Page 125: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

125

Score sec# S# term pname cname unit clg#

c#

14.50 1724 71133848

10172 10 3 سازی شبیه قرباني 761

16.25 1724 72203305

10172 10 3 سازی شبیه قرباني 761

15.75 1747 72131825

10172 10 3 سازی شبیه قرباني 761

12.50 1747 72130502

10172 10 3 سازی شبیه قرباني 761

17.00 1747 74182532

10172 10 3 سازی شبیه قرباني 761

crs و sec جداول به مربوط اطالعات شامل فرضی جدول( 6-2) شکل

: شود می مالحظه عمده اشکال سه ( 6-2)شکل بررسی با

( Data Redundancy )ها داده افزونگی ( 1-1-6

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

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

جدول هر در#c مانند کلیدی تکرار، crs و sec بین جداول ارتباط برقراری در . دارد نام افزونگی و است

. است مورد بی آن از بیش اما، دارد ضرورت

، انشجویاند همه و درسی های گروه همه ازای به . دهد می نمایش را رویه بی تکرار (6-2شکل ) فرضی جدول

رویه بی تکرار این که نمود باید توجه . غیره و است چند آن واحد تعداد ، چیست درس نام که ایم کرده تکرار

افزونگی همواره ، کنیم می ادغام را جداول وقتی . crsکوچک جدول در نه ،افتاده اتفاق sec گبزر جدول در

که فضا دادن ر هد اول . دردا همراه به بزرگ زیان دو ، رخداد این . دهد می رخ جدول بزرگترین میزان به

Page 126: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

126

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

. یابد می افزایش هم آنها با کردن کار زمان ، میشود برابر چند ها داده حجم وقتی

بانک هر که کنید تصور لحظه یک . بله ؟ دارد همراه به هم امتیازی گیافزون پدیده بروز و جداول ادغام آیا

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

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

های بانک )مراجع( بین در این پدیده . رفت می میان از ها جو و پرس نوشتن های پیچیدگی یعنی ، شد می

توجه به این . است موسوم ( Normalization ) ”نسازی نرمال “ وبه کرده باز را خود جای هم یاطالعات

باید هم رویه بی سازی نرمال چاه در افتادن از و کرد نباید مطلق هم را سازی نرمال کهنکته ضروری است .

. نمود پرهیز

( Anomaly )نظمي بي( 2-1-6

در کنید فرضمثال . شود می ها داده تغییر در نظمی بی باعث ( ،6-2)شکل جدول فرضی در افزونگی وجود

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

داشته دانشجو صد چندتا است ممکن درس که صورتی در ، شود وارد هم مربوطه درس کامل مشخصات باید

، کنیم ادغام آنها با هم را دیگر جداول اگر . ایم کرده ادغام را جدول دو فقط ما که است حالی در این . باشد

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

معنای به ارتباطی جامعیت کنترل مخصوصا کنترل کار و افتد می هم ها داده آوردن در روز به و کردن درحذف

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

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

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

با که کرد فراموش نباید . واردشود دقیق کامال طور به … و دهنده ارائه دانشکده و مربوطه اساتید و یاطالعات

Page 127: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

127

نسبت همین به هم ها کنترل و ها کردن وارد این همه و د شو می برابر چند ها داده حجم، جداول ادغام

. یابد می افزایش

( NULL Values )تهی مقادیر (1-6- 3

ها دانشکده مثال . توانیم نا تهی رمقادی از استفاده بدون ، اطالعاتی اقالم از بعضی دادن نشان از ، جداول ادغام با

باید یا، نشده اعالم آنها برای گروهی که دروسی. دهند می ارائه ها ترم همه در را خود های درس همه معموال

نظر در تهی آنهامقادیر صفات سایر و ترم و دانشجو و گروه برای یا و (است واقعیت خالف که ) نیایند جدول در

گردند می باعث نیز را دیگری مشکالت، کنند می اشغال را زیادی جای اینکه بر عالوه یته مقادیر. شود گرفته

. پرداختیم آنها از بعضی به های قبلی فصل در که

( Functional Dependency )تابعی وابستگی( 6- 2

جائیکه تا است یاطالعات بانک عمده مفاهیم از وابستگی تئوری . دارند تنگاتنگ ارتباط وابستگی و افزونگی

انواع وابستگی . اند کرده تعریف ” وابستگی و ها داده “ صورت به را یاطالعات بانک ، نویسندگان از بعضی

پیوندی تگیوابس ( Functional Dependency ) تابعی وابستگی مانند ، دارد مختلف

( join Dependency ) ی چند مقدار وابستگی و( Multi – Value Dependency) .کتاب این در

اند شده بیان اختصار به هستند کمیاب که وابستگی دیگر انواع و است شده ای ویژه توجه تابعی وابستگی به

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

تعریف :

تمام برای اگر ، است برقرار A→ Bتابعی وابستگی آنگاه ، باشند R رابطه در صفت مجموعه دوA و Bاگر

.باشد داشتهوجود Bمقدار یک فقط A ر مقدا هر زای، به ا Rدر ها رابطه

: است توجه قابل زیر نکات تعریف این در

FD

Page 128: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

128

از نه ، بگیرد سرچشمه هاصفت ذات و معنی از یعنی ، باشد درست ها رابطه تمام برای باید تابعی وابستگی. 1

: فرمایید توجه زیر جدول به مطلب شدن روشن برای . رابطه چند یا یک در خاص موارد

Room Pname cname Term

301

302

303

304

فاضل

تبریزی

قربانی

شمسی میر

بانک های اطالعاتی

گسستهات ریاضی

مصنوعیهوش

منطقی مدار

771

771

771

772

وابستگی تابعی در جدول فرضی ( : وجود6-3شکل )

که ، نیست صحیح واقع در که شود می دیده زیادی های وابستگی ، ها داده این با ، ( 6-3شکل ) جدول در

عبارتند از :

room pname

cname room

cname pname

pname cname

(term,cname) pname

در است ممکن وابستگی یک . رود می کار به نیز یاطالعات بانک محدودیتهای تعریف برای تابعی وابستگی. 2

وابستگی اگر ، (6-3فرضی شکل ) جدول در مثالباشد . . غلط دیگر مشابه بانک در و باشد درست بانک یک

یک مدرس توانند نمی استاد دو ، ترم هر در که ستا این آن معنای ، باشد برقرار ( ترم ، درس ) → استاد

FD

FD

FD

FD

FD

Page 129: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

129

بانک قواعد تواند می طراح پس (. شود می ارائه استاد یک توسط درس آن گروههای همه ) باشند درس

. کند بیان نیز تابعی وابستگی با را خود یاطالعات

تعریف :

A B کامل تابعی وابستگی راFull Functional Dependency) (در اگر ، گوئیم می

. وابسته نباشد A صفت از ( proper subset )محض مجموعه زیر هیچ به B، صفت R رابطه

تعریف :

را ابر کلید A صفت آنگاه A Bباشیم داشته R رابطه در Bصفتهای تمام برای اگر

(Super key) رابطه R صفت آنگاه ، باشد بعی کاملوابستگی تا نوع از وابستگی این اگر می نامندA

است . R رابطه ( Candidate key)کاندید کلید

تعریف :

را تابعی وابستگی این . A Bآنگاه همواره ، باشد A صفت از ای مجموعه زیر B صفت اگر

می نامیم . (Trivial Functional Dependency ) بدیهی

: مثال

: شود می شاهدهم زیر وابستگی secجدول در

(sec#,c#, s#,term) pname

: داریم زیرا نیست FFDنوع از وابستگی این

(sec#,c#,term) pname

استاد دو بادرس یک ازگروه هر ، مختلف دوترم در چراکه است وابستگی تابعی کاملنوع از اخیر وابستگی

درس یک مختلف های گروه برای مختلف اساتید معموال بزرگ یک دانشگاه رد نیز و است ارائه قابل متفاوت

بعبارتی دیگر :. دهد نمی را استاد نام (sec#,c#,term)های مجموعه زیر از هیچکدام پس شود ، می تعیین

FFD

FD

TFD

FD

FD

Page 130: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

130

(sec#,c#) pname (sec#,term) pname

(c#,term) pname

کلید ، (sec#,c#,term) صفت مجموعه این پس (s#, score) (sec#,c#,term)با توجه به اینکه

را او ونمره چون دانشجو، تیسن کلید (sec#,c#,term)صفت مجموعه ،دیگر عبارت به . نیست اصلی

صفت عهمجمو . کند می را مشخص آنها کلیدی خاصیت ، صفتها معنی به توجه . کند نمی مشخص

(s#,c#,term) نام ثبت درس یک از گروه دو در تواند نمی ترم یک در یک دانشجو زیرا ، است کاندید کلید

. کند

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

باشیم داشته وابستگی تعدادی گاه هر . آورد دست به هم را ها وابستگی سایر باید ولی ستنده شناسائی و فهم

نمی ای تازه حرف که را آنها از بعضی یا و آوریم دست به آنها از نیز دیگری های وابستگی نیمابتو است ممکن

.ید ئنماییم . برای استخراج وابستگی های بین صفات موجود در یک رابطه ، به مثال زیر توجه نما حذف، زنند

: داریم کنید فرض : مثال

R= (S,T,U,V,W)

F={S→T, V→SW, T→U}

کلید کاندید V صفت که گرفت نتیجه و آورد دست به نیز را زیر تابعی های وابستگی توان می منطقا آنگاه

است . R رابطه

(S T , T U ) S U

(V SW ) V S

(V SW ) V W

(V S , S T ) V T

(V T , T U ) V U

وابستگی پوششی مجموعه(1-2-6

FD

FD

FD

Page 131: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

131

روشهای بخش این در.افزود آن به و نمود جااستخر دیگری های وابستگی توان می ، وابستگی مجموعه یک از

. شود می ارائه کاندید کلیدهای نیز و ها وابستگی همه به دستیابی برای ای ساده نسبتا

تعریف

می منتج آن از که های تابعی وابستگی تمام مجموعه آنگاه ، باشد بعیتا های وابستگی از مجموعه یک Fاگر

می دهیم . نمایش با و نامیم می Fپوششی مجموعه را شود

برای زیر قاعده سه کرد که ثابت او . داد ارائه پوششی جااستخر برای روشی 1974سال در آرمسترانگ آقای

منتج های وابستگی تمام به توان می قاعده سه مکرراین اعمال با ییعن ، است کافی پوششی مجموعه جااستخر

: شود نمی تولید نیز اضافی وابستگی هیچ و یافت دست

. A → Bآنگاه ، باشد Aمجموعه زیر Bاگر (Reflexivity) :بازتاب . 1

.AC → BCآنگاه ، صفت باشد Cو A → Bاگر : (Augmentation. افزایش ) 2

.A → C آنگاه B → C و A → Bاگر : (Transitivity) . انتقال 3

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

. بخشید سهولت را کار که کردند بیان را دیگری

: از عبارتند آنها مهمترین

. A → BCآنگاه ، B → Cو A → Bاگر : (Union. اجتماع ) 4

.A → C و A → Bآنگاه ، A → BC: اگر (Decomposition. تجزیه ) 5

. AC → BDآنگاه ، C → D و A → B: اگر ( Composition. ترکیب ) 6

بهینه وابستگی مجموعه

برای روشی ااینج در . هستند اضافی و تکراری بعضا که آید می بدست زیادی ستگیبوا ، فوق قواعد اعمال با

. دهیم می ارائه بهینه وابستگی مجموعه به رسیدن و ها وابستگی اینگونه حذف

Page 132: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

132

تعریف :

آنها پوششی اگر مجموعه ، نامیم می (Equivalent)معادل را F2و F1تابعی وابستگی مجموعه دو

. =یعنی ، باشد برابر

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

باشد . صفت یک فقط وابستگی هر راست سمت 1.

شود . حذف چپ سمت از ، دهد ینم تغییر را که صفتی هر 2.

. شود حذف اضافی و تکراری های وابستگی 3.

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

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

مثال :

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

R=( U, V, W, X, Y, Z)

F={U →XY, X →Y, XY →ZV }

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

={U → XY, X →Y, XY → ZV,U → ZV}

: وابستگی روی 1 قاعده

={U → X,U →Y, X →Y, XY → ZV,U → Z ,U → V}

X → Y :به توجه با XY → ZV روی 2 قاعده

Page 133: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

133

= {U → X ,U → Y, X → Y, X → ZV ,U → Z , U → V }

: ها وابستگی سایر روی 1 قاعده حال

={U→ X ,U→ Y ,U→ Z,U→ V, X→ Y, X→ Z, X→ V}

. شد خواهد ارائه دیگری های مثال ، فصل همین دنباله در

کاندید های کلید(2-2-6

آنگاه ، بنامیم Fرا دیگر تعدادی صفت و آنها تابعی وابستگی مجموعه و ATTRرا ها صفت از ای مجموعه اگر

بهینه را Fابتدا است بهتر) دهد می را ATTRبه وابسته تاصف تمام مجموعه ، (6-4در شکل )زیر الگوریتم

. (کنیم

( : الگوریتم تولید مجموعه تمام صفات وابسته6-4شکل )

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

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

. باشد نداشته کلیدی خاصیت آن از ای مجموعه زیر یعنی ، باشد کمینه باید کاندید کلید2 .

= ATTR

: کن تکرار

Fدر X → Y هر رایب

آنگاه باشد مجموعه زیرXاگر

= UY

. نکند تغییر دیگر زمانیکه تا

Page 134: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

134

. باشد داشته کاندید کلید چند است ممکن یاطالعات بانک3 .

. باشند مشترک صفت چند یا یک در است ممکن کاندید های کلید 4.

اگر : مثال

R=(S, T,U, V, W)

}F={ S→T, V →SW, T→ U

و مختلف وابستگیهای و بکاربرد مرتبا پیکان چپ سمت دیگر های صفت مجموعه برای را الگوریتم این توان می

پذیر کاهش {S,V}که دید خواهیم ، کنیم محاسبه را فوق مثال در اگر . آورد دست به را ها کلید نیز

. است

{S,V}+ ={S,V} ⇒{S,V,T,W}⇒ {S,V,T,W,U}

V + = {V}⇒ {V,S,W}⇒ {V,S,W,T}⇒ {V,S,W,T,U}

.کلید کاندید است } {Vولی نیست کاندید کلید {S,V}نتیجه در

می ، باشد گسترده آنها وابستگی و زیاد اطالعاتی بانک در تاصف تعداد گاه هر( نمودار وابستگی تابعی 3-2-6

یاطالعات بانک آن بهتر فهم به (Functional Dependency Diagram) ابستگیو نمودار رسم با توان

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

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

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

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

؟ کنید رسم را وابستگی نمودار سپس و بیابید را کاندید های کلید همه ابتدا ، زیر یاطالعات بانک در : مثال

R = (U,V,W, X,Y,Z,O,P,Q)

F ={U →VXQ,UVP →O,OQ →YZ,UP → XY}

می یابیم .را Fمعادل بهینه مجموعه ابتدا

F + ={ U→ V ,U →X ,U →Q, OQ→ Y, OQ→ Z, UP →X , UP →Y, UP →O, UP→ Z}

Page 135: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

135

. یابیم می را پیکانها چپ تاصف مجموعه تمام به وابسته صفات مجموعه سپس

={U} ⇒{U,V,X, Q}

={U,P} ⇒{U, P, V, X, Q, O, Y} ⇒ {U,P,V,X,O,Q,Y,Z}

= {O, Q}⇒ {O,Q,Y,Z }

می باشد. W وجود ندارد ، از که صفتی تنها دهد. می را تاصف بیشترین که گیریم می نتیجه

Qاز زیرا ، آید نمی دست به دیگری کاندید کلیدو UPW → Rیعنی ، باشد می یدکاند لیدکUPW،بنابراین

بانک این وابستگی نمودار. ( باشد کمینه باید کاندید کلید که شود می یادآوری رسید )U و Pبه توان نمیO و

مشاهده می شود .(6-0)شکل در یاطالعات

V X Y Z

. وابستگی تابعی نمودار مثالی از (6-0)شکل

؟ داشت دیگری خواهیم کاندید کلید آیا . کنید اضافه فوق مثال به را OQ → Pوابستگی : تمرین

سازی نرمال (3-6

در ؟ است بهترین مای داده ارائه ما آنچه آیا که شود می مطرح یاطالعات بانک طراحان ذهن در سوال این همواره

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

( normalization) یا و کرد یحطرا مؤثر نزری جداول توان می متدولوژی این از استفاده با . نامند می

: صورت می پذیرد زیر های گام سازی درنرمال .نمود ینهبه را موجود جداول

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

W

U P Q O

Page 136: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

136

. کن ییشناسا را ها وابستگی ، وها ارتباط ، ها داده 2.

. کن رسم را وابستگی نمودار ترجیحا 3.

. کن تبدیل الزم سطح تا نرمال های فرم به قدم به قدم را جداول 4.

(Normal Forms)ال نرم های فرم(1-3-6

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

که نگذشت چیزی . معروفند3NF ،2NF ، 1NF به که کرد معرفی نرمال فرم سه خود اولیه مقاله همان در

نرمال فرم رچها این . کرد تعریف BCNEنام به گریدی نرمال فرم ایشان با بویس همراه نام به دیگری شخص

4NFمانند دیگر فرمهای نرمال و دیگر های وابستگی دیگران ها بعد . اند شده تعریف تابعی وابستگی نایمببر

NF 5سطح تا سازی نرمال فصل این در . دارند ای کاربرد ویژه موارد در و هستند نادر که کردند معرفی5NF و

در 1NFفرم . کنند می حل ، دارد وجود قبلی فرم در که را مشکلی هرکدام های نرمال فرم . ودش می بررسی

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

چند نیهمچن . دهیم می ارائه شود می استخراج اطالعاتی بانک یک معنایی مشخصات از آن خصوصیات

. میگردد ارائه( ها صفت ی معنا به توجه بدون ) انتزاعی

1در جدولی : تعریفNF : است که

. باشند شده تعریف آن های کلید همه 1.

. باشند داشته تابعی وابستگی اصلی کلید به آن صفتهای تمام 2 .

نباشد . ( Nested Domain ) تودر تو دامنه از آن صفتهای 3.

به توجه بدون ، آدرس نام به صفتی مثال ، باشیم نداشته ترکیبی صفات که است این سوم شرط از منظور

. کل به توجه بدون را آن بخشهای یا باشیم داشته ( خیابان ، کوچه ، پالک، استان ،شهرکشور ، ) آن بخشهای

مثال :

Page 137: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

137

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

؟کنید

نیازمندیهای عملکردی در این بانک اطالعاتی ثبت نام عبارتست از :

. است مشخص نیز دروس واحد تعداد و نام و است تکراری غیر ها درس کد 1.

در همنام دروس . است مشخص آن شهر و دانشکده مسئول کندو می ارائه مشخصی های درس دانشکده هر 2.

. دارند متفاوتی واحد مختلف های دانشکده

و درسها در گروه وشماره شود می ارائه استاد یک توسط مشخص مکان و زمان در گروه چند در درس هر 3.

. گردد می تکرار مختلف های نیمسال

. گیرند می نمره و کنند می نام ثبت مختلف های گروه در دانشجویان

: حل

مقدماتی جداول : الف

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

تابعی های وابستگی ، صفات معنای گرفتن نظر در با همچنین . کنیم می تعیین، ایم آموخته یاطالعات بانک

. نمائیم می اکتفا آنها شناسه به و کند ینم تغییر اتیداس و دانشجویان جدول . کنیم می تعریف را آنها

crs = { c#,cname, unit,clg#}

f1={ c# →(cname, unit, clg#)&( cname, unit) → clg# }

clg =( clg#,clgname, city,pname)

f2={ clg# → (clgname, city,pname) }

sec = ( C#,sec#, s#,pname,term,score,time,place)

f3={(s#,c#,term) → (sec# , score)&(sec#,c#,term) → (pname,time,place) }

کاندید های کلید : ب

Page 138: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

138

جداول clg و crs اصلی است کلید همان که هستند کاندید کلید یک دارای کدام هر .

جدول کلیدsec کنیم می راپیدا :

: اول کلید

=(s#,c#,term,sec#,score)=(s#,c#,term,sec#,score,pname,time,place)

. است secجدول کاندید کلید اولین (s#,c#,term)نتیجه در

: دوم کلید

= (sec#,c#,term, pname,time, place)

کلید ینا. آید می به دست ( s#,sec#,c#,terme)که افزود مجموعه این به را #sباید ، اول کلید به توجه با

جدول اصلی کلید و کاندید کلید تنها که آید دست می به اول کلید همان #secحذف با و نیست کمینه دیگر

. است

وابستگی نمودار رسم : پ

دانشگاه نام ثبت یاطالعات بانک وابستگی نمودار (6-6)شکل

C# Cname , unit Clg#

Clg# clgname pname city

S# , c# , term Sec# pname score time place

crs

clg

sec

Page 139: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

139

سازی نرمال : عریفت

. است وابسته اصلی به کلید کدام هر در صفتها همه و دارند اصلی کلید زیرا ، هستند 1NFدر جدول سه این

. دهیم می ادامه نرمال دیگر های فرم تعریف با را مثال این

2در جدولی : تعریفNF که است :

. باشد 1NFدر 1.

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

partial dependency)

شد .نمی با sec ،2NFمی باشد ،ولی جدول 2NFدر شکل clgو crsبین سه جدول موجود ،جدول

1 به دو جدول ، جدول جدول تجزیه الگوریتمNF 2جدول دو بهNF :

بگذار. ه کنار آن های وابسته همه با ، است ه کرد جزئی وابستگی ایجاد که را اصلی کلید از بخش هر (1

.بگذار هم کنار باقیمانده های صفت با را اصلی کلید کل( 2

. کن اضافه 2 به خارجی کلید نوانع به را کلیدی های صفت (3

enroll

sec

grade

3جدولی در : تعریفNF : است اگر

باشد . 2NF(در 1

وابستگی انتقالی )وابستگی صفتهای غیر کلیدی( نداشته باشد . (2

2الگوریتم تجزیه جدولNF 3به دو جدولNF

sec# , c# , term pname time place

S# , c# , term sec# score

Page 140: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

140

،با همه وابستگی گی انتقالی ایجاد کرده استصفتی را که ئابست (1

.بگذار هم کنار باقیمانده صفتهای با را اصلی کلید( 2

اضافه کن . 2به خارجی کلید عنوان به را کلیدی های صفت( 3

crs_pres

crs

crs1

Crs 3 شکل درNF .نیست

3NF این در) ناهنجاری ( ، باشد مشکل دارای است ممکن دارند را زیر شرط سه هر که مداولی با

: عبارتنداز شرط سه این . نمود سازی نرمال بیشتری سطح تا را جداول نوع این باید صورت

. باشد کاندید کلید دو حداقل دارای جدول 1)

. باشند ترکیبی کاندید های کلید این 2)

. باشند داشته مشترکی یها صفت ، ترکیبی کاندید های کلید این 3)

دانشجوئی شماره هم صورت این در ) ندارد همنام دانشجوی که کوچک موسسه یک در دانشجو جدول( 1 مثال

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

stud (s#, sname , avg , city , clg# )

candidate key( s#)

candidate key( sname)

(S#) → (stud)

(Sname) → (stud)

. ندارد بیشتر سازی به نرمال نیاز بنابراین . داراست را 1شرط فقط باال شرط سه از . هست 3NFدر جدول این

. ندارد داده ها افزونگی جدول، این که دید توان می ، مناسب دادهای گرفتن نظر در با

Clg#

Cname , unit

Cname , unit

C#

Page 141: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

141

: موسسه همین در ” دانشجو – درس “ جدول2) مثال

Crs_ stud (s#, sname, c#, score)

candidate key( s#,c#)

candidate key( sname,c#)

( s#, c#) →crs_stud

(sname, s#) →crs_stud

S#→ sname

sname →s#

برای و است افزونگی دارای جدول این که دهد می نشان زیر های دادهداراست ، را باال شرط سه هر جدول این

.دارد بیشتر سازی نرمال به نیاز آن نمودن برطرف

gradeجدول در ) شکست , st(s#,sname) grade (s#,c#,score) دوجدول به را جداول این توان می

( . کرد استفاده نیز snameاز #sبه جای توان می

crs_stud

افزونگی

Score

C# sname

S#

17 C1 علی S 1

12 C2 علی S 1

19 C3 علی S 1

20 C4 علی S 1

10 C5 علی S 1

Page 142: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

142

:تکراری( درس ) غیر در دانشجو رتبه ، درس شماره ، نشجوئی دا شماره شامل امتحان جدول3) مثال

Exam( s#, subj#, rank)

candidate key (s#,ubj#)

Candidat key (subj#,rank)

: ها وابستگی

(s#, subj#) →Exam

(subj#, rank) →Exam

گرفتن نظر در با ) بیشترندارد سازی نرمال به نیاز ولی ، داراست نیز را شرط سه هر و هست 3NFدر جدول این

سازی نرمال به نیاز جداولی چنین که فهمید باید چگونه. ( ندارد افزونگی جدول این که دید توان می هایی داده

نیاز ، باشد BCNFفرم در جدولی اگر . کرد جستجو BCNFتعریف در باید سوال را این پاسخ ؟ خیر یا دارند

. ندارد به شکستن

جدولی : تعریف BCNFداشته تابعی کاندیدش وابستگی های کلید به فقط آن صفات های که است

. باشد

s#→ sname نمی باشد چرا که هم : crs_stud ،BCNFجدول

sname → s#

: است ضروری BCNFمورد در زیر نکات به توجه

تعریفی مستقل از اشکال نرمال های دیگر دارد . BCNFبرخالف بقیه شکل های نرمال قبلی ، (1

به بعد اختیاری است .الزامی و از آن 3NFنرمال سازی تا (2

دانشجو هر برای و کرد تعریف را زیر جدول توان می دانشجویان خانواده آدرس و فعلی آدرس ثبت برای1) مثال

: گرفت نظر در آدرس یک از بیش

s _ addrs(s#,city,no, zip)

candidate key (s#, city#)

candidat key (s#, zip)

Page 143: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

143

3NF فرم در جدول این . گیرد قرار شهر نام جای به تواند می و است فرد به منحصر شهر هر برای پستی کد

: داریم زیرا ، نیست BCNFفرم در ولی هست

zip → city

و است آدرس ناپذیر جدایی بخش ، ستیپ کد زیرا شکست را جدول این خاطر اطمینان با توان نمی اینهمه با

. شود می آدرس به مربوط ی جوها و پرس شدن پیچیده باعث آن کردن جدا

باید خالصه بطور . صادق است هم 2NFمورد در مطلب همین ، است برقرار نیز city → zipوابستگی چون

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

از است مجاز شود می ها جو و پرس اکثر سرعت آمدن پایین باعث ، باشد داشته هم افزونگی چند هر ، جدول

. کند صرفنظر آن سازی نرمالتر

: نمایید سازی نرمال کامل طور به آنرا سپس و بیابید را کاندید کلید های ابتدا زیر اطالعات بانک در2) مثال

R ={A, B, C, D, E, F, G}

F={ AF →BE ,FC→DE, F→CD, D→E ,C→A}

الف( بهینه سازی وابستگی ها :

. کنیم می تبدیل صفت یک به را ها وابستگی راست سمت

1) AF→ B F→ C

2) AF→ E FC →D F→ D

3) FC →D FC→ E F → E

4) FC→ E

5) F→ C F → C F → A

6) F →D C → A

7) D→ E

8) C →A F → A F → B

AF → B F → E

AF → E

= {F → A , F → B , F → C , F → D , F → E , D → E , C → A }

Page 144: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

144

کلید این . است ( کلید کاندید G و F ) بنبراین ،G را شامل شده غیر از صفت ها صفت همه، Fصفت ( ب

الزم صفت دو این ، کاندید کلید هر در یعنی )دهد نمی را F و Gصفتی هیچ زیرا است فرد به منحصر کاندید

. ( تندهس

ج( نرمال سازی :

1NF A B C D E

)F , G (

2NF

, A , B , C , D , E)F( D E A B C F

)G,F(

,A)C( 3NF :

,E)D(

,B,C,D)F(

. داریم کاندید کلید یک از بیش زیرا نیست BCNF به نیازی

*****************************************************************

: بگیرید نظر در زیر های FDرا با R={X,Y,Z,S,T,U,W}رابطه 3) مثال

F = {S → X,T →Y, X →Y, XY →TUZ}

. بیابید را کاندید های کلید ( الف

. نمایید سازی نرمال کامل طور به ( ب

: حل

F G

Page 145: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

145

: الف

S→ X, X →Y ⇒S →XY

S→ XY, XY → TUZ ⇒S → T ,S→ U ,S→ Z

⇒(S,W)

F OPT ={ S→X,S →Y,S →Z,S →T,S →U,T→Y,X→Y,X→T,X→U,X→Z}

2NF:(S,W)

(S,X,Y,Z,T,U)

3NF : (S,W)

(T,Y)

(X,Z,T,U)

,X)S(

. نداریم کاندید کلید یک از بیش زیرا نیستBCNF به نیازی

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

: کنید توجه زیر مثال به . یرسیم م غلطی نتیجه به ربداریم دو نظر از را آن های وابستگی از بعضی اگر

. کنید سازی نرمال را زیر اطالعات بانک : مثال

R =(A ,B, C, D, E, F ,G)

F ={(A, B) → R ,A→G, B→ EF, G→ DF}

یافتن بدون : غلط حل اهر

2NF (A, G)

(B, E, F)

(A,B, C,D,F,G)

3NF ( A , G)

(B, E ,F )

(A,B,C )

3NF (G,D,F )

Page 146: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

146

( A,G )

( B,E,F )

(A,B , C )

تابعی های وابستگی بهA → D F افزودن با : صحیح حل راه

2NF (A , D ,F , G )

( B , E , F )

(A,B ,C)

3NF (G,D,F )

( A ,G )

( B , E , F )

( A,B , C )

. است افزونگی دارای جدول آخرین ، غلط حل راه در که شود می مشاهده

ندیپیو وابستگی و مقداری چند وابستگی - 6/2-3

اینگونه . دارند هم افزونگی هنوز ولی اند شده سازی نرمال BCNFسطح تا ولی جدا که یافتد م اتفاق گاهی

. گیرد می مهچشسر ها سایروابستگی یا پیوندی وابستگی یا مقداری چند وابستگی از افزونگی

MVD)یا (Multi valued dependencyمقداری چند وابستگی

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

. شود می مشاهده زیر مثال در حالت این

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

توسط شده دریافت های وام و دانشجو ید اسات نام ، مثال نای در( بعد صفحه شکل ) ها وام آن تاریخ و کرده

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

. شود می ایجاد یداده افزونگ ، باشد کرده دریافت وام چند

Page 147: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

147

Date Loan Prof Sname

حمید جو حق مسکن 1381

حمید جو حق روریض 1383

حمید جاهد مسکن 1381

حمید جاهد ضروری 1383

حمید جو حق ضروری 1384

است حالی در این . (افزونگی ) اند شده تکرار حمید های وام و اساتید نام که شود می مشاهده فوق جدول در

به وابستگی جز به دار معنی وابستگی زیراهیچگونه . است شده سازی نرمال BCNFسطح تا فوق جدول که

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

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

، باشد داشته وجود A:Cو A:Bمثال Rرابطه یک های صفت مجموعه بین مستقل ارتباط دو گاه هر : تعریف

: شود می داده نشان صورت زیر دو به که است برقرار Rبطه را در مقداری چند وابستگی

A→B,A→C

يا

A→B/C

Page 148: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

148

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

: است آمده

ارتباطیC هب که باشد وابسته B مقادیر به طریقی بهAمقدار هر اگرA → B /Cداریم R (A,B,C )رابطه در : تعریف

. نکند پیدا

: دارند زیروجود مقداری چند های وابستگی فوق جدول در : مثالsname→ prof, sname→ loan data

یا

sname→ prof| loan .date

شرط دو از یکی گویند اگر R (trivial )جزئی رابطهرا درA → Bمقداری چند وابستگی یک: تعریف

: زیربرقرارباشد

B ⊂ A .1

A∪ B = R .2

غیر مقداری چند وابستگی آن به ، نباشد برقرار فوق شرط دو از کدام هیچ مقداری چند وابستگی یک در اگر

گویند.(nontrivialجزئی)

. هستند جزئی غیر ، مقداری چند وابستگی دو هر فوق جدول در

غیر مقداری چند گیصورتیکه اگروابست در است 4NF ( Fourth Normal Form )در R رابطه : تعریف

. باشد Aبرابرکلید Aآنگاه باشد داشته وجود Rدر A → Bجزئی

و کرد ه تجزی زیر صورت به توان می را هستند مقداری چند وابستگی دارای که جداولی

. برد بین از را افزونگی

B,A های صفت مجموعه شامل اول جدول

C,A های صفت مجموعه شامل دوم جدول

: مثال

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

Page 149: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

149

Prof sname

حمید جو حق

حمید جاهد

Date Loan sname

حمید مسکن 1381

حمید مسکن 1383

حمید مسکن 1384

(JDیا (join dependencyپیوندی وابستگی امکان بیشتر یا جدول سه به آن تجزیه ولی مودن تجزیه جدول دو به صحیح بطور را جدولی یتوان نم مواردی در

مفهوم این . هستند پیوندی وابستگی دارای جداول چنین . ( است آمده زیر در تجزیه صحت شرایط ) پذیراست

. گردد می تعریف مربوطه نرمال فرم با همراه سپس و شود می بیان مثال با ابتدا

: مثال

جدول سه به توان می می دهند تشکیل را کلیدکاندید همدیگر روی ستون سه هر آن در که را زیر ABCجدول

C و B و A ندارد امکان دو جدول به صحیح بطور آن تجزیه ولی نمود تجزیه .

Page 150: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

150

C B A

c1 b1 a1

c1 b2 a1

c1 b1 a2

c1 b1 a1

A B C

Join

Join

اصلیجدول

ABC

اضافی

Rآنگاه باشند Rهای مجموعه ستون زیر A,B,…,Pهای رابطه از یک هر های ستون و رابطه Rاگر : تعریف

R = A∞B∞...∞P باشیم داشته تنها اگر و اگر است A,B,…,Pروی پیوندی وابستگی دارای

: تعریف

وابستگی های کاندیدش کلید به فقط لگر تنها و گرا است 5NF ( Fith Normal Form ) در Rجدول

. باشد داشته پیوندی

B A

b1 a1

b2 a1

b1 a2

C B

c2 b1

c1 b2

c1 b1

C A

c2 a1

c1 a1

c1 a2

C B A

c2 b1 a1

c1 b1 a1

c2 b1 a2

c1 b1 a1

c1 b2 a1

Page 151: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

151

جداول تجزیه شرایط - 6/3-3

یک اینکه از اعم بانک یک . ها وابستگی عبارتی به یا ، ها ارتاط و ها داده : دارد اصلی دورکن اطالعات بانک هر

نباید جداول تجزیه در ، دیگر عبارت به .شود حفظ آن رکن دو این باید همواره ، جدول چند یا باشد جدول

. برود دست از اصلی های وابستگی و اطالعات

مثال :

. بگیرید نظر در را آن وابستگیهای و زیر جدول

grade (s#, c# sname, score)

( s#,c #)→grade

S#→sname

: کرد تجزیه زیر غلط صورت به توان می را جدول این

( S#,C#, score)

(c#, sname)

می تشخیص صفتها از معنای را واقعیت این ما . نیستند مرتبط م ه به #c و sname زیرا است غلط تجزیه این

به بتوانیم موجود های وابستگی از استفاده با فقط ،و صفتها معنا به توجه بدون که دارد وجود راهی آیا . دهیم

؟ ببریم پی تجزیه یک نادرستی یا درستی

زیر مورد دو که شد بایدمطمئن ، سازی نرمال ضوابط رعایت بر عالوه که است شده ثابت سوال این به پاسخ در

: است شده رعایت

ازای به یعنی ، باشد (loss_less join) ” پذیر پیوند “ باید کوچتر شمای چند به (schema) شما یک تجزیه 1.

. آید دست به لیاص جدول دقیقا جداول آن طبیعی پیوند از ، مربوطه جداول تمام

شمای تجزیه : تعریف R به{R1,…,Rn} تمام جداول برای که است “ پذیر پیوند “ صورتی درr از

: باشیم داشته Rشمای

(r)r = ΠR1 (r) ∞… ∞ ΠRn

Page 152: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

152

باید یعنی ، ها داده خود نه ، شود می بیان ها صفت و ها داده معنی به توجه با مشابه تعاریف همه و تعریف این

. باشد درست جداول تمام یبرا

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

: اند یافته را زیرا عملی و ساده حل راه پژوهشگران . کرد

دو آن مشترک یستونها ، دو جدول از یکی حداقل کلید که است زیر پیوند صورتی در R1,R}به } R تجزیه “

: دیگر عبارت به ” باشد

R = {R1, R2} ⇔ R1∩ R2 → R1 R1∩ R2 → R2است زیر پیوند

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

. نمود بررسی قدم به قدم را آن صحت باید ، شود می

. نمایید سازی نرمال را زیر بانک : مثال

R=( A, B, C, D, E, F)

F={( A, B) → R, A→ CD, B→ E}

دیگر بار و Aبرای ،یکبار شود انجام باید دوبار عمل این اما است الزم 2NF به تبدیل فقط مثال این در : حل

را پذیری پیوند قاعده التح این در . بود خواهد صورت زیر به نتیجه ، دهیم انجام هم با را دو هر . اگر Bبرای

. کرد بررسی و دید وضوح به توان نمی

)F,B,A3(R),E,B2(R),D,C,A1(R

.شود می دیده بهوضوح پذیری پوند قاعده صحت ، کنیم تبدیل 2NFبه مرحله دو در را بانک این اگر اما

: اول مرحله

Page 153: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

153

R1(A,C, D) , R2(A, B, E, F)

R1(A,C, D)

)E, B21( R , )F,, B, A22( R

یعنی ، باشد ( dependency preserving) وابستگی حافظ باید کوچتر شمای چند به شما یک تجزیه2 .

. شود حفظ اصلی های وابستگی تمامی

به حل راه نای . اند پیداکرده نیز را تجزیه یک بودن ” وابستگی حافظ “ بررسی برای عملی راه پژوهشگران

، داد نمایش { R,F }صورت به توان م را ای رابطه اطالعات بانک یک که یکنیم م یادآوری . است زیر صورت

F .مجموعه وابستگی با Rشمای یعنی

داشته که است وابستگی صورتی حافظ در {{Rn,Fn} , … ,{R1,F1}}به { R.F }اطالعات بانک تجزیه

: باشیم

F+ = {F1∪...∪ Fn}+

*********************************************************

نرمال سطح چهارم( 4NF:) کاد است ، ممکن است که هنوز شامل تکرارهایی باشد که –وقتی که یک رابطه به شکل نرمال سطح بویس

ربگیرید .دراین در نظ الف( 12-1) ای مثال ،جدول غیر نرمال شکلباعث ناهنجاری های بروز رسانی شود . بر

جدول فرضیات زیر در نظر گرفته شده است:

هر درس دارای یک یا بیش از یک استاد می باشد. .1

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

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

می شود. کتب درسی استفاده

Page 154: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

154

است . برای هر درس تمتم نرمال سازی نشان داده (ب 12-1)در شکل الف( 12-1)جدول شکل

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

هر سه ویگی درس ، استاد ومولف تشکیل شده است و ویژگی تعیین کننده ، کلید اصلی نیز می باشد

کاد است .البته همان طوری که در –نرمال سطح بویس "پیشنهاد ".پس می توان ادعا کرد که جدول

شکل دیده می شود این جدول شامل داده های تکراری زیادی می باشد که به نوبه خود می تواند به

راحتی ناهنجاری های بروزرسانی ایجاد کند .برای مثال اگر بخواهیم به نام نویسنده کتاب درس

د ، باید سه سطر جدید به جدول شکلمدیریت، نام میدلتون را به عنوان مولف سوم اضافه نمائی

اضافه شود. ب(1-12)

)پیشنهاد( )پیشنهاد

الف(رابطه غیر نرمال

ب(رابطه نرمال شده

: جدولی با چندین مقدار وابسته به یکدیگر12-1شکل

نویسنده کتاب استاد درس

پیترز الهی مدیریت

پیترز الهی مدیریت

پیترز الهی مدیریت

واتسون الهی مدیریت

واتسون الهی مدیریت

واتسون الهی مدیریت

جمشیدی همدانی حسابداری

عطاران همدانی حسابداری

نویسنده کتاب استاد درس

الهی مدیریت

کالهی

نصری

پیترز

واتسون

جمشیدی همدانی حسابداری

عطاران

Page 155: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

155

کاد است ، ولیکن هنوز –ب(یک جدول نرمال بویس 12-1همچنین اگر توجه نمایید جدول موجود در شکل )

ها وجوددارد.برای مثال برای هر درس ،یک رابطه چندگانه با استاد ویک رابطه چندگانه با وابستگی بین ویژگی

ارتباط بین ویژگی ها را نشان می دهد .این نوع وابستگی 13-1نویسنده کتاب وجود دارد.نویسنده کتاب شکل

چند مقداری می نامند.

A,B,C وجود داشته باشد وبرای هر( جدول سه ستون )مثال ری: وقتی در یکتعریف وابستگی چند مقدا

C چند مقداری موجود باشد ، آن گاه یک وابستگی B ومجموعه ای از مقادیر A مجموعه ای از مقادیر

.می شود ایجاد

: وابستگی چند مقداری بین ویژگی ها1-13

)کتاب( )تعلیم(

:جدول نرمال سطح چهارم1-14

استاد درس

الهی مدیریت

کالهی مدیریت

نصیری مدیریت

همدانی حسابداری

نویسنده کتاب درس

پیترز مدیریت

واتسون مدیریت

جمشیدی حسابداری

عطاران حسابداری

نویسنده کتاب درس استاد

Page 156: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

156

ری ، جدول را به دو جدول تبدیل می کنیم ،هر کدام از این جداول شامل یکی از برای حذف وابستگی چند مقدا

نتیجه این تبدیل را برای جدول پیشنهاد نشان می دهد.14-1دو ویژگی مستقل می باشد.شکل

.مولف می باشدتوجه کنید که جدول تعلیم شامل ویژگی نام استاد است وجدول کتاب شامل ویژگی

کاد باشد و –هارم : یک جدول در نرمال سطح چهارم است اگر نرمال در سطح بویس تعریف نرمال سطح چ

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

محدودیت های نرمال سازی:

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

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

کاد یا سطح چهارم تجویز می شود.-های سطح بویس

باید توجه داشته باشید که مراحل نرمال سازی که این جا بیان شده، فقط راهنمایی هایی برای استفاده طراحان

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

مراحل نرمال سازی را برای رسیدن به نرمال سطح سوم یا باالتر از آن انتخاب نکند.مثال جدول زیر به نام

مشتری را در نظر بگیرید.

مشتری)نام خانوادگی ،خیابان ،شهر،استان ،کدپستی( :

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

به صورت یکتا تعریف مینماید ، لذا وابستگی تابعی وابسته وجود دارد و جدول )مشتری( در نرمال سطح دوم می

رابطه بین کدپستی وشهر واستان را نشان می دهد. 10-1باشد.شکل

Page 157: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

157

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

نشان می دهد. 10-1ویژگی مد پستی به طور یکتا شهر و استان را مطابق شکل

.تئوری نرمال سازی ، پیشنهاد میکند که جدول مشتری بهدو جدول نرمال سطح سوم زیر تبدیل شود

هاویژگی : وابستگی چند مقداری بین 1-10

اطالعات مشتری)نام خانوادگی، خیابان ، کدپستی (

آدرس)کدپستی، شهر ، استان(

اما در عمل اکثر طراحان تجزیه نکردن جدول مشتری به دو جدول را انتخاب می کنند ،زیرا ویژگی های

کدپستی ، استان ، شهر،خیابان تقریبا همیشه با یکدیگر به عنوان یک واحد به کار می روند.

اگر از لحاظ مفهومی درست است ،که بدون مشتری به دو جدول اطالعا ت مشتری وآدرس تبدیل شود،اما

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

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

سازی استفاده کند.

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

چندین جدول رابه هم متصل کند، که این امر زمانی اضافی را می طلبد .همچنین وقتی یک جدول توسط نرمال

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

کد پستی استان شهر

کتاب

Page 158: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

158

مثال موضوعی یک بیمارستان:

جهت اشنایی خوانندگان به مسائل نرمال سازی ،قسمتی از یک بیمارستان به عنوان مثال در این جا ارائه می

کارایی اتاق وگزارش ( patient bill ) این بیمارستان چهار فرم صورت حساب بیمارگردد . در

) ، مشخصات بیمار ( patient display کیپزش گزارش ( و room utilization report (

است. در نظر گرفته شده( physician report(

: فرم صورت حساب بیمار

نشان داده است . این فرم شامل مخارجی می باشد که برای بیمار در مدت 16-1صورتحساب بیماردر شکل

س از مرخص شدن بیمار از بیمارستان جهت پرداخت به او تحویل زمان بستری در بیمارستان هزینه شده و پ

داده می شود.

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

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

هزینه می پردازد.صورت حساب بیمار به صورت زیر بیان شده است:

Bill (patient # , patient – name , patient – address , city , date –admitted ,

Date- Discharged , {Item – Code , Description , Charge} , Balance – Due)

Page 159: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

159

Sina hospital

Patienr # :ali zamani

Date-admitted : 09-10-83

Patient-address :mashhad

Date-discharge:09-12-83

charge discription Item code 001011 01011 00011 00011 001011

Room sem-pr

Television

X-ray

Lab tests

Balabce due

011 010 013 300

صورتحساب بیمار 16-1شکل

ای گروه تکرار شونده استبنابراین جدول غیرنرمال است.)گروه تکرار شونده در داخل به علت اینکه این جدول دار

را حذف نموده و در جدول زیر هآکوالد نشان داده شده است(برای نرمال سازی این جدول گروه های تکرار شوند

ید:آبدست می

PATIENT (Patient # , Patient – Name , Patient –Address ,City , Date –Admitted ,

Date-Discharged, Balance-Due)

DETAIL (Patient #, Item-Code , Descripation,Charge)

نرمال سطح سوم است و کلید اصلی که شماره بیمار )# patient می باشد هر بیمار را ( PATIENT جدول

.به صورت یکتا مشخص می کند

جدول ویژگی کلید اصلی می باشد. در این Patient # Item-Code و ترکیب دو ویژگی، DETAIL درجدول

Item-Discription فقط به وابسته است ولی Patient # Item-Code و به هر دو ویژگی Charge

جدولبستگی دارد، بنابراین می توان نتیجه گرفت که DETAIL دارای بستگی جزئی و در نرمال Item-Code

Page 160: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

160

سطح اول می باشد .

برای تبدیل جدول DETAIL جدید زیر سطح دوم ، وابستگی جزئی حذف می شود و دو جدولبه نرمال

تولید می شود:

LIST (Patient # , Item –Code ,Charge)

ITEM (Item-Code , Description )

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

ید :آطبق زیر بدست می

1.(Patient # , Patient –Name , Patient –Address , City , Date-Admitted ,

Date-Discharged)

2.(Item-Code , Description)

3.(Patient# , Item-Code , Charge)

بعلت اینکه قابل محاسبه ( Balance –Due ) ، ویژگی جمع بدهی 16-1 توجه داشته باشید که در شکل

می باشد ،حذف شده است.

گزارش کارایی اتاق:

اتاق ها را ارائه می دهد.در (، یک گزارش روزانه است که اطالعات مربوط به17-1گزارش کارایی اتاق )شکل

Location شماره اتاق و تخت را تعیین میکند. اینجا توجه داشته باشید که ویژگی

و در صورتی که در گزارش کارایی اتاق یک 2و تخت شماره 152یعنی اتاق شماره 152-2ماره برای مثال ، ش

و Patient –Name و Exp-Discharge-Date Location به بیماری نسبت داده نشود، انگاه به جای

Page 161: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

161

توجه نمایید. 17-1در شکل 152-2مقدار تهی قرار می گیرد. به ورودی patient #

Room Utilization Report

Date : 10-15-82

Exp-Discharge-Date Patient - Name Patient# Accom Location

10-17-82

10-15-82

10-16-82

10-19-82

Ahmad havidi

Parvin javidi

Parisa nikan

Hossein kalani

6213

1379

1239

7040

Pr

Pr

Sp

Sp

Pr

100-1

101-1

102-1

102-2

103-1

: گزارش کارایی اتاق 17-1شکل

Date توسط خود سیستم زیرا فرض بر این است جدول فوق حذف شده است در Date که ویژگی توجه شود

ارائه می شود و نیازی به ثبت آن نیست .

Room ، نرمال Room شامل هیچ گروه تکرار شونده و وابستگی جزئی نیست و در نتیجه جدول جدول

و Exp-Discharge-Date هر دو به Patient-Name سطح دوم است . ولی به علت اینکه ویژگی های

# patient بستگی دارند، پس این جدول دارای وابستگی تابعی با واسطه می باشد.فرم کارایی اتاق در زیر

داده شده است.

Room (Location , Acoom , Patient #, Patient-Name , Exp-Discharge -Date)

#Patient املشلی که در جدو عمومی برای تبدیل این جدول به نرمال سطح سوم ؛دو جدول ایجاد می شود و

دو جدول نرمال سطح سوم بیمار است،کلید اصلی و در جدول دیگر کلید خارجی است . عمومی مشخصات

Page 162: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

162

می باشد ربه شرح زی

4.(Location ,Accom , Patient #)

5. (Patient # ,Patient –Name , Exp-Discharge-Date)

فرم مشخصات بیمار :

( به درخواست پرستاران یا سایر کارمندان واجد شرایط تهیه می شود.کاربران برای 18-1مشخصات بیمار )شکل

به اطالعات یک بیمار ( patient # دسترسی به داده های یک بیمار ، باید برای استفاده از شماره بیمار )

چه در عمل ، جستجو برحسب نام بیمار نیز توسط سیستم پشتیبانی می شود. دسترسی نمایند. اگر

مشخصات بیمار به صورت جدول به شکل زیر نشان داده شده است:

Patient (Patient #, Patient-Name , Patient-Address ,City ,Date-Ddmitted ,

Date-Discharge:Location , Externsion, Insurance)

Patient # :3249

Patient-name: ali zamani

Patient-address:ahmad abad

City:mashhad

date-admitted: 09-12-83

date-discharge:xx-xx-xx

location:437-2

externsion:529

insurance:khadamat darmani

بیمار : اطالعات 18-1شکل

را( Extension شماره تلفن داخلی می تواند ( Location این جدول نرمال سطح دوم است . از آنجایی که

Page 163: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

163

تابعی با واسطه تعیین کند و هر تخت در یک اتاق دارای یک شماره تلفن داخلی یکتا است ، پس یک وابستگی

وجود دارد . با حذف وابستگی تابعی با واسطه ، دو جدول نرمال سطح دوم زیر بدست می آید:

6.(Patient # , Patient –Name , Patient-Address , City ,Date –Admitted ,

Date-Discharge , Location ,Insurance)

7. (Location , Extension)

گزارش پزشک :

( در گزارش 19-1گزارش پزشک هر روز برای پزشکی که بیماران را معاینه می کند ، اماده می شود )شکل

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

می باشند .یا اینکه دستوری باید برای آنها تجویز شود.برای سادگی نمایش ، فرض شده است که نام بیمار بیش

از یک بار در هر یک از گزارشات پزشک ظاهر نشود .فرم پزشک در زیر نشان داده شده است:

Doctor (Physician –ID , Physician-Phone , {Patient # , Patient-Name , Location ,

procedure})

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

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

Doctor (Physician –ID , Physician-Phone )

Patient (Physician –ID , Patient #, Patient-Name ,Location ,Procedure)

Page 164: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

164

sina hospital

Physician report

Date : 10-17-82 Physician-ID :1234 Physician-Phone:3948510

procedure location Patient - name Patient#

tonsillectiomy

observation

chemotherapy

184-2

216-1

107-3

Ahmad kermani

Hosein kalani

Roya jahan

6083

3157

4139

:گزارش بیمار 19-1جدول

ویژگی درمان ولیکن دنوابستگی دار Location و Patinet-Name patient ویژگی های ، در جدول

1NF به صورت patient پس جدول ، دارد وابستگی patient # و physician-ID به ( Procedure(

3NF : زیر نتیجه می شود دو جدول patient از حذف وابستگی جزئی در جدول می باشد .

Patient (Patient# ,Patient-Name ,Location)

Treatment (Physician-ID , Physician # , Procedure)

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

8. (Physician-ID , Physician –Phone)

9. (Patient # , Patient –Name , Location)

10. (Physician-ID , Physician# , Procedure)

ادغام جداول:

Page 165: لوا لصف تیریدم رب یرورم یتاعلاطا کنابghaemi.iauq.ac.ir/assets/subdomains/ghaemi/file/DB-Note.pdf4 ها.1-2-1 کت ای اه متسیس ، ناربراک

165

سطح سوم گسترش فرم نرمال 15با استفاده از قوانین نرمال سازی ، چهار فرم بیمارستان به مجموعه ای از

جدول را با دقت مالحظه نمایید ، متوجه می شوید که تعدادی از این جداول دارای 15داده شد. اگر این

همگی دارای 9و 6، 0، 1کلیدهای اصلی یکسان هستند ودر نتیجه می توان آن ها را ادغام نمود . جداول

دو دارای کلید اصلی هر 4و 7هستند و می توانند ادغام شوند همچنین جداول patient # کلید اصلی

. می شود منیز با هم ادغا Location هستند. پسLocation

نشان داده شده است. بررسی هر کدام از این شش 25-1مجموعه نهایی نرمال سطح سوم بیمارستان در شکل

کل نرمال سطح سوم می جدول مشخص می کند که هیچ وابستگی ناخواسته ای در آنها وجود ندارد و به ش

د.نباش

1. Patient (Patient #, Patient – Name , Patient –Address. City , Date-

Admitted,date-Discharce,Exp-Discharge-Date , Location , Insurrance)

2. Room (Location , Accom ,Extension , Patient # )

3. Physicisn (Physicisn- ID , Physicisn-Phone)

4. Item (Item-Code , Description )

5. Treatment(Physicisn-ID ,Patient # , Procedoure)

6. Charg (Patient # , Item-Code , Charge)

: رابطه های نرمال نوع سوم از بیمارستان مورد نظر 25-1شکل