shahriar pirnia pirnia

28

Upload: anahid

Post on 10-Jan-2016

65 views

Category:

Documents


3 download

DESCRIPTION

Data Base پایگاه داده ها نمونه سوال و جمع بندی. Shahriar Pirnia http://www.pirnia.net. مسائل نمونه. در محیط عملیاتی دانشکده پایگاه داده با رابطه های Lesson (درس) ، Class (کلاس) ، Grade (نمره)، Professor (استاد)، Group (گروه آموزشی)، Student (دانشجو) مفروض است. - PowerPoint PPT Presentation

TRANSCRIPT

Page 2: Shahriar Pirnia  pirnia

SHAHRIAR PIRNIA :// . .HTTP WWW PIRNIA NET

Data Baseپایگاه داده ها

نمونه سوال و جمع بندی

Page 3: Shahriar Pirnia  pirnia

نمونه مسائلهای رابطه با داده پایگاه دانشکده عملیاتی محیط ( Lessonدر ( ، Classدرس

) (، ( Gradeکالس (، ( Professorنمره (، گروه) Groupاستاد)، .Studentآموزشی ) است) مفروض دانشجو

، است آمده ذیل در رکورد هر مفهوم و جدول ازهر نمونه یک و جداول ساختارشدن مشخص و ها موجودیت میان ارتباطات بیان و بیشتر وضوح جهت همچنین

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

که : کالسی هر ازای به ترم ابتدای در مینماید اخذ را کالسی دانشجو وقتی راهنماییجدول در رکورد یک کرده ستون Gradeاخذ که شود می nullآن Gradeاضافه

ستون . در دانشجو نمره ترم پایان از پس .Gradeاست شود می درج

Page 4: Shahriar Pirnia  pirnia

Lesson Code

Lesson Name

Group Code

Unit Unit P

درس کد درس نام گروه کدآمورشی

واحد تعدادنظری

واحد تعدادعملی

7232 ها داده پایگاه 11 3 0

ID Name Family GroupCode

استاد شناسایی کد نام خانوادگی نام آموزشی گروه کد

85235 رضا احمدی 11

Lesson درس

Professor استاد

ID Lesson Code

Class Code

ProfessorID

ClassTerm

ClassYear

Capacity

کدکالس

درس کد کالس کد استاد کد نیمسال سال سقف کالس

101 7232 ب 93522 1 1382 40

Class ) استاد ) و درس موجودیتهای بین ارتباط کالس

Group Code

Group Name

گروه کدآموزشی

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

11 کامپیوتر

StudentID

ClassID Grade

شماره دانشجو

کالس کد نمره

781112357

101 16

Group گروه Grade نمره

Page 5: Shahriar Pirnia  pirnia

ID Name

Family Section

Major GroupCode

Entry Year

Entry Term

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

نام نام خانوادگ

ی

مقطع تحصیلی

رشته تحصیلی

گروه کدآموزشی

سال ورود

نیمسال ورود

791112237

احمد امیری کارشناسی

پیوسته

کامپیوتر-نرم افزار

11 1379 1

Studentدانشجو

Page 6: Shahriar Pirnia  pirnia

اول : 1سوال نیمسال در احمدی رضا استاد با که بدهید را دانشجویانی مشخصاتپایگاه 1382 درس

از . ) استفاده با صرفا اند نموده اخذ ها کد ( ) SUBQUERYداده دانیم میاحمدی استاد شناسایی

ها 85235 داده پایگاه درس کد است .7232و SELECT* FROM STUDENT

WHERE id IN (SELECT STUDENTID FROM GRADE WHERE CLASSID IN

( SELECT ID FROM CLASS WHERE PROFESSORID= '85235' AND LESSONCODE='7232' AND CLASSTERM='1' AND CLASSYEAR='82))'

Page 7: Shahriar Pirnia  pirnia

از QUERY : 2سوال استفاده با صرفا را قبل بنویسید . JOINسوال

SELECT STUDENT*.FROM STUDENT,GRADE,CLASS

WHERE STUDENT.ID= GRADE.STUDENTID AND GRADE.CLASSID= CLASS.ID AND CLASS.PROFESSORID= '85235'

AND CLASS.LESSONCODE='7232' AND CLASS.CLASSTERM='1' AND CLASS.CLASSYEAR='82'

Page 8: Shahriar Pirnia  pirnia

. 3سوال نمایید : حذف سیستم از را کامپیوتر گروه کالسهای مشخصاتکامپیوتر) : گروه کد دانیم می گروه . 11راهنمایی اساتید کنید توجه ضمنا است

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

DELETE FROM CLASS WHERE LESSONCODE IN

( SELECT LESSONCODE FROM LESSON WHERE GROUPCODE='11)'

Page 9: Shahriar Pirnia  pirnia

نیمسال : 4سوال در درس آن کالسهای تعداد و درس هر کد از متشکل لیستبدهید . 1382اول را

SELECT LESSONCODE,COUNT(*) AS NUMBER : اول روش

FROM CLASS GROUP BY LESSONCODE, CLASSYEAR, CLASSTERM HAVING CLASSYEAR=82 AND CLASSTERM=1

SELECT LESSONCODE,COUNT(*) AS NUMBER : دوم روش FROM CLASS WHERE CLASSYEAR=82 AND CLASSTERM=1 GROUP BY LESSONCODE

Page 10: Shahriar Pirnia  pirnia

شناسایی : 5سوال کد با کالس مورد اشتباها 101در استاد شناسایی کد ،به . 93522 را کالس آن استاد شناسایی کد شده نمایید .85243درج اصالح

UPDATE CLASS SET PROFESSORID=85243 WHERE ID=101

Page 11: Shahriar Pirnia  pirnia

از : 6سوال استفاده با مشخصات NOT EXISTSیا EXISTSصرفااول نیمسال در که بدهید را نموده 1382اساتیدی تدریس را درس یک حداقل

اند .

SELECT PROFESSOR*. FROM PROFESSOR WHERE EXISTS (SELECT*

FROM CLASS WHERE PROFESSOR.ID=CLASS.PROFESSORID AND CLASS.CLASSYEAR=82 AND

CLASS.CLASSTERM=1)

Page 12: Shahriar Pirnia  pirnia
Page 13: Shahriar Pirnia  pirnia

بندی : در SQL جمع شده محاسبات DB/2تهیه و ای رابطه جبر متعارف امکانات تمامدارد . را ای رابطه

(SQL . این از ای رابطه محاسبات بر است مبتنی هم و ای رابطه جبر بر است مبتنی هماست روشمند هم گفت توان می ناروشمند Proceduralدیدگاه هم و

nonprocedural).

ضمنا دارد . )SQLو ای رابطه (is relationally completeاکمال

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

از باشد اشتقاق قابل ای رابطه محاسبات قابل universeیا نیز زبان آن توسط ها رابطهباشد . اشتقاق

UNIVERSE OF RELATION

Rهمان

Yزبان

Xزبان

Rهمان

محاسبات یا ای رابطه جبرای رابطه

شده Rرابطه مشتق

اشتقاق مکانیزم با Syntaxمتفاوت متفاوت

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

Page 14: Shahriar Pirnia  pirnia

ادراکی : DB2-SQL : DDLسطح

CREATE TABLE SP

(S# CHAR(6) NOTNULL;

P# CHAR(8) NOTNULL;

QTY SMALLINT)

PRIMARY KEY (S#,P#)

FOREIGN KEY S# REFERENCE S

. . .ON DELETE CASCADE;

. . .

FOREIGN KEY P#REFERENCE P

. . .ON DELETE CASCADE;

EXPAND

ALTER TABLE tablename

ADD Cal . Def

ALTER TABLE S

ADD ACCOUNT # INTEGER;

S#......CITY

ACCOUNT#

Page 15: Shahriar Pirnia  pirnia

نمی توان نوشت . زیرا مقدار در نظر گرفته شده برای NOTNULL در این دستور نکته اول : است .NULLآن

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

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

محدودیتها :

کرد .Alterهربار فقط یک ستون می توان 1)

می کند . ADD پیش بینی نشده و فقط Alterامکان حذف ستون در 2)

. . . DROP TABLE tablenameدستور :

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

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

شاخص ای ایجاد می کند روی صفت یا صفات خاصه که طراح :CREATE INDEXحکم بگوید .

نمی INDEX در تعریف جدول سبب ایجاد PRIMARY KEY صرف قراردادن دستور نکته : را بزنید .CREATE INDEXشود .بلکه باید حتما دستور صریح

CREATE [UNIQUE] INDEX indexname

ON TABLENEME(Cal.name);

CREATE INDEX SX ON S(S#)

CRAETE INDEX SPX ON SP(S#,P#)

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

پذیرد .INDEXخاصه نمی شده

Page 16: Shahriar Pirnia  pirnia

CREATE [UNIQUE] INDEX indexname

ON tablename (column [order][,column [order]] . . .)

CREATE INDEX X ON B (P,Q DESC , R)

CREATE UNIQUE INDEX SN ON S (SNAME)

CREATE XSC ON S(CITY)

DROP INDEX indexname

DROP INDEX SN

ALTER TABLE tablename

ADD column datatype

ALTER TABLE S

ADD DISCOUNT INTEGER

Page 17: Shahriar Pirnia  pirnia

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

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

سازی . . پیاده نزنیم یا بزنیم شاخص که حد همین در باشد بصورت INDEXداشتهFREE است بازیابی و ذخیره چهارم ساختار باشد و Dynamicمی شود می ایجاد

Dynamic ( . دهی آدرس برای است امکانی اصلی کلید شود می حذف . Tupleهماست .( ادراکی سطح در دهی آدرس این

آن • روی باید حتما کنیم تضمین را ستون آن مقدار یکتایی بخواهیم اگر که گفتیمبا Indexستون کنيم مقوله UNIQUE OPTIONایجاد دو اختالط یعنی کار این

Data definition وAccess definition . مجزا منطقی نظر از هم از دو این وفایلینگ . . فیزیکی محیط در یک و است انتزاعی محیط در یکی هستند

شده . DROP INDEXبا اشغال فضای نباشد الزم هرگاه شود می محو شاخصدرخت فضا INDEXتوسط این به که شود می و INDEX SPACEآزاد گویند می

این ACCESS Planتمام بر مبتنی که می INDEXهایی نامعتبر اند شده تولیدشوند .

Page 18: Shahriar Pirnia  pirnia

ادراکی سطح احکام بندی :DB/2جمع

مختلف) های نسخه دستور SQLاختالف نکردن یا کردن قبول در هم PEIMARYباKEY یاFOREIGN KEY وtuple. پذیرد می خاصه صفات برای که است هایی

در DDLاحکام ادراکی :DB/2سطح

ساده- 1

محدود- 2

3 () به- ) گردد می بر حدی تا کلمه از منظور میدان مفهوم از غیر کافی تاحدی(ALTERاشکاالت

4 () کند- ) می ار پایگاه که همزمان یعنی احکام از پویا استفاده پویایی ها userدارایپایگاههای .( . ) در که صورتی در داد تغییر را ادراکی سطح توان می کنند می کار

Prerelational ارتباط باید خاصه صفت یک تغییر قطع userبرای پایگاه با هاپایگاه . ، بخوابد سیستم شود .Reloadو Loadشود

مهم : دارد : نکته طراحی به نیاز ای رابطه پایگاه

طراحی این

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

پذیر انعطافهر که Tableمنتها دارد .CREATEای طراحی به احتیاج ، شود می

Page 19: Shahriar Pirnia  pirnia

خارجی استاندارد : ) DB/2سطح مفهوم سازی (VIEWپیاده

نام با خارجی است .VIEWسطح شده سازی پیاده

CREATE VIEW

DROP VIEW

کلی : شکل

CREATE VIEW VIEW NAME [(view-cals)]

AS SUBQUERY . . .

[ WITH CHECK OPTION ]

DDLاحکام خارجی

می VIEW یادآوری : تعریف رابطه یک از بیش یا یک روی که مجازی است ای رابطهندارد . . خود خاص متناظر شده ذخیره داده که نظر نقطه این از شود

امکانات نکته : تعریف SELECTتمام گیرد . VIEWدر قرار استفاده مورد تواند میتعریف به که آنجا تا توسط VIEWبنابراین اشتقاق قابل رابطه هر شود می مربوط

SELECT تعریف در تواند بیاید . VIEWمی

تعریف گوییم می نظر نقطه این برخوردار DB/2در VIEWاز باالیی بسیار مکانیزم ازاست .

Page 20: Shahriar Pirnia  pirnia

مثال :

CREATE VIEW C2SUP(SNUM,STA)

AS SELECT S#,STATUS

FROM S

WHERE CITY=‘C2;’

مهم : حکم نکته تعریف SELECTوجود بازیابی VIEWدر سیستم که معناست بدینحکم . یعنی دهد اشتقاق . SELECTانجام مکانیسم صرفا شود نمی را VIEWاجرا

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

کند . ( کار خود دید از پایگاه با بخواهد

اسم با VIEWسیستم برای userIDرا داخلی یکتای اسم با کند می VIEWترکیبکند . تولید

UID + viewname INTERNAL VIEW NAME یکتا :

EXTERNAL VIEW NAME

مهم : روی VIEWچون نکته توان می بنابراین است رابطه یک ، VIEWمنطقا VIEW کرد . تعریف

CREATE VIEW GOOD-SUPمثال :

AS SELECT S#,STATUS

FROM C2-SUP

WHERE STATUS>20

Page 21: Shahriar Pirnia  pirnia

SNUM STA

C2 22

C1 28

GOOD-SUP

SNUM STA

S2 22

S3 18

S5 28

C2-SUP

S# SNAME

STATUS

CITY

S1 . 10 C1

S2 . 22 C2

S3 . 18 C2

S4 . 15 C4

S5 . 28 C2

سطح خارجی

سطح ادارکی

سطوح انتزاعی

ارتفاع

انتزاع

SFILE . . . سطحداخلی

VIEW شده تعریفمبنا جدول روی

VIEW شده تعریفدیگر VIEWروی

Page 22: Shahriar Pirnia  pirnia

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

DROP VIEW VIEWNAME تعریفVIEW. کند می حذف کاتالوگ از را

در حکم- : VIEW : 1عملیات همان ادراکی SELECTبازیابی سطح در کهکند . می عمل داشتیم

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

) کند ) می عمل چرا اینکه دلیل

سازی- 2 ذخیره

DML خارجی

SELECTمثال :SNUM,STA

FROM C2-SUP

WHERE STATUS>20

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

تعریف در شده داده با VIEWشرط کند می ترکیب رااز بازیابی حکم در شده داده شرایط یا و VIEWشرط

سازد . می را ادراکی سطح در کننده عمل حکم SELECTمثال :

S#,STATUS

FROM S

WHERE CITY=‘C2’

AND STATUS>20

به overheadمیزان دارد بستگی تبدیل این در سیستمشرایط شده .dataحجم وارد

Page 23: Shahriar Pirnia  pirnia

از نکته : بازیابی امکانات VIEWعملیات از استفاده ندارد SELECTبا ای عمده مشکلدر. ) جمله از سیستمهایی در تعریف . DB2محدودیتهایی در اگر مثال دارد VIEWوجود

حکم Group Byاز در شود از VIEWاز SELECTاستفاده توان نمی GroupدیگرBy ( . یعنی کرد پذیرد .(Levelدو Group Byاستفاده نمی

در سازی ذخیره در) VIEW : (VIEW UPDATING)عملیات حذف و تغییر و درج یعنیVIEW)

سازی :DMLهمان ذخیره احکام عملیات ، UPDATEهمان DELETE وINSERT کند . می عمل

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

از) دسته آن به VIEWالبته خارجی از حکم تبدیل هستند سازی هنگام به قابل که هایییعنی .( ) شود می انجام داخلی سپس و سیستم INSERTادراکی را خارجی سطح در

به کند می (INSERTتبدیل ادراکی سطح در

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

باشند .-1 شده تعریف مبنا جدول روی

سطر -2 ستون VIEWهر هر و باشد مبنا جدول از مشخص سطر یک با VIEWمتناظرباشد . مبنا جدول از نامدار و مشخص ستون یک با متناظر

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

Page 24: Shahriar Pirnia  pirnia

یک وجود ) Viewاین بدلیل است چمبرلینی (Viewدر# Sکامال

CREATE VIEW V1

AS SELECT S#,CITY

FROM S

WHERE Status >15;

S# Sname Status CITY

S1 … 10 C2

S2 ... 17 C3

S3 … 17 C3

S4 … 16 C3

S5 … 23 C1

S# CITY

S2 C2

S4 C2

S5 C3

Page 25: Shahriar Pirnia  pirnia

UPDATE V1

SET CITY =‘C13’

WHERE S#=‘S4 ; ’

UPDATE S

SET CITY =‘C13’

WHERE S#=‘S14’

AND

STATUS>15;

UPDATE

FROM V1

WHERE S#=S5;

DELETE FROM S

WHERE S# =‘S15’

[AND STATUS >15]

INSERT INTO V1

VALUES (S14 ,C11);

INSERT INTO S

VALUE (S11,,’C11’)

مثال

مثال

مثال

در ناقص سطر درج به پدیده Sمنجر بروز ،Null Value درDatabase پدیده که شود می

اگر . نیست را Userمطلویي سطر این بخواهداینکه دلیل به نیست Status>15ببیند معلوم

. کاربر برای تواند این V1نمی آوردن در عينيت به ِ در درج علیرغم ممکن Databaseسطر نا

اسنت

Page 26: Shahriar Pirnia  pirnia

با نکته : سطری قبال است شرط# S11=Sممکن فاقد باشد داشته وجودکاربر Viewتعریف دید از خارج طبعا مقدار V1و بروز به منجر درج این و

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

دیدهای نکته : .چمبرلینیحتی دیدیم که شرحی به ، دارند مشکالتی هم

CREATE VIEW V1

AS SELECT S# , CITY

FROM S ;

CREATE VIEW V3 [DISTINCT]

AS SELECT STATUS , CITY

FROM S ;

CREATE VIEW V3

AS SELECT S* ,P*

FROM S, P

WHERE S.CITY=P.CITY;

Page 27: Shahriar Pirnia  pirnia

CREATE VIEW V4

AS SELECT P#,SUM(QTY)

FROM SP

GROUP BY P;#

در مشکلی V 1عملیات ، شده دیده ظریف مشکالت از نظر صرفگوییم. می اصطالحا این . ) V1ندارد اصال چمبرلین آقای است کلید حافظ دید

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

S #کلیدS در و . VIEWاست چمبرلینی قطعا کليد حافظ دیدهای دارد وجودهستند.

بندی ) VIEW : جمع تغییر عملیات ندارند اساسی مشکل کلید حافظ های) است پذیر امکان

Key Preserving

کلید V2دید حافظ سازی . Non Key Preservingغیر بهنگام در استیک روی شده درخواست عمل داند نمی سیستم کلی حالت در ،زیرا دارد مشکل

شود Viewسطر می اعمال مبنا جدول از شطر کدام در