shahriar pirnia pirnia
DESCRIPTION
Data Base پایگاه داده ها نمونه سوال و جمع بندی. Shahriar Pirnia http://www.pirnia.net. مسائل نمونه. در محیط عملیاتی دانشکده پایگاه داده با رابطه های Lesson (درس) ، Class (کلاس) ، Grade (نمره)، Professor (استاد)، Group (گروه آموزشی)، Student (دانشجو) مفروض است. - PowerPoint PPT PresentationTRANSCRIPT
SHAHRIAR PIRNIA :// . .HTTP WWW PIRNIA NET
Data Baseپایگاه داده ها
نمونه سوال و جمع بندی
نمونه مسائلهای رابطه با داده پایگاه دانشکده عملیاتی محیط ( Lessonدر ( ، Classدرس
) (، ( Gradeکالس (، ( Professorنمره (، گروه) Groupاستاد)، .Studentآموزشی ) است) مفروض دانشجو
، است آمده ذیل در رکورد هر مفهوم و جدول ازهر نمونه یک و جداول ساختارشدن مشخص و ها موجودیت میان ارتباطات بیان و بیشتر وضوح جهت همچنین
. است آمده پایین در نیز جداول تعاریف اصلی کلیدهای و خارجی کلیدهای
که : کالسی هر ازای به ترم ابتدای در مینماید اخذ را کالسی دانشجو وقتی راهنماییجدول در رکورد یک کرده ستون Gradeاخذ که شود می nullآن Gradeاضافه
ستون . در دانشجو نمره ترم پایان از پس .Gradeاست شود می درج
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 نمره
ID Name
Family Section
Major GroupCode
Entry Year
Entry Term
شماره دانشجویی
نام نام خانوادگ
ی
مقطع تحصیلی
رشته تحصیلی
گروه کدآموزشی
سال ورود
نیمسال ورود
791112237
احمد امیری کارشناسی
پیوسته
کامپیوتر-نرم افزار
11 1379 1
Studentدانشجو
اول : 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))'
از 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'
. 3سوال نمایید : حذف سیستم از را کامپیوتر گروه کالسهای مشخصاتکامپیوتر) : گروه کد دانیم می گروه . 11راهنمایی اساتید کنید توجه ضمنا است
نیز را پایه علوم دروس مانند دیگر گروههای از دروسی است ممکن کامپیوتر). کنند تدریس
DELETE FROM CLASS WHERE LESSONCODE IN
( SELECT LESSONCODE FROM LESSON WHERE GROUPCODE='11)'
نیمسال : 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
شناسایی : 5سوال کد با کالس مورد اشتباها 101در استاد شناسایی کد ،به . 93522 را کالس آن استاد شناسایی کد شده نمایید .85243درج اصالح
UPDATE CLASS SET PROFESSORID=85243 WHERE ID=101
از : 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)
بندی : در SQL جمع شده محاسبات DB/2تهیه و ای رابطه جبر متعارف امکانات تمامدارد . را ای رابطه
(SQL . این از ای رابطه محاسبات بر است مبتنی هم و ای رابطه جبر بر است مبتنی هماست روشمند هم گفت توان می ناروشمند Proceduralدیدگاه هم و
nonprocedural).
ضمنا دارد . )SQLو ای رابطه (is relationally completeاکمال
اشتقاق قدرت اگر است ای رابطه اکمال دارای قدرت derivationزبانی با ارز هم آنای . رابطه جبر کمک به که ای رابطه هر یعنی باشد ای رابطه محاسبات یا ای رابطه جبر
از باشد اشتقاق قابل ای رابطه محاسبات قابل universeیا نیز زبان آن توسط ها رابطهباشد . اشتقاق
UNIVERSE OF RELATION
Rهمان
Yزبان
Xزبان
Rهمان
محاسبات یا ای رابطه جبرای رابطه
شده Rرابطه مشتق
اشتقاق مکانیزم با Syntaxمتفاوت متفاوت
احکام و تر ساده اشتقاق مکانیزم که آنی دارند ای رابطه اکمال هردو که زبان دو میان ازاست . بهتر باشد داشته کمتری
ادراکی : 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#
نمی توان نوشت . زیرا مقدار در نظر گرفته شده برای 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خاصه نمی شده
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
سازی . :نکته پیاده جدول زیرا نیست توجیه قابل ادراکی سطح در شاخص حکم وجودانتزاعی محیط در و انتزاعی محیط در است رابطه ریاضی یک INDEXمفهوم که
دستیابی حکم . Filingاستراتژی نوعی باید را حکم اين لذا باشد مطرح نباید استدخالت . فیزیکی پایگاه طراحی در تا دهد می امکان طراح به واقع در کرد تلقی داخلی
سازی . . پیاده نزنیم یا بزنیم شاخص که حد همین در باشد بصورت INDEXداشتهFREE است بازیابی و ذخیره چهارم ساختار باشد و Dynamicمی شود می ایجاد
Dynamic ( . دهی آدرس برای است امکانی اصلی کلید شود می حذف . Tupleهماست .( ادراکی سطح در دهی آدرس این
آن • روی باید حتما کنیم تضمین را ستون آن مقدار یکتایی بخواهیم اگر که گفتیمبا Indexستون کنيم مقوله UNIQUE OPTIONایجاد دو اختالط یعنی کار این
Data definition وAccess definition . مجزا منطقی نظر از هم از دو این وفایلینگ . . فیزیکی محیط در یک و است انتزاعی محیط در یکی هستند
شده . DROP INDEXبا اشغال فضای نباشد الزم هرگاه شود می محو شاخصدرخت فضا INDEXتوسط این به که شود می و INDEX SPACEآزاد گویند می
این ACCESS Planتمام بر مبتنی که می INDEXهایی نامعتبر اند شده تولیدشوند .
ادراکی سطح احکام بندی :DB/2جمع
مختلف) های نسخه دستور SQLاختالف نکردن یا کردن قبول در هم PEIMARYباKEY یاFOREIGN KEY وtuple. پذیرد می خاصه صفات برای که است هایی
در DDLاحکام ادراکی :DB/2سطح
ساده- 1
محدود- 2
3 () به- ) گردد می بر حدی تا کلمه از منظور میدان مفهوم از غیر کافی تاحدی(ALTERاشکاالت
4 () کند- ) می ار پایگاه که همزمان یعنی احکام از پویا استفاده پویایی ها userدارایپایگاههای .( . ) در که صورتی در داد تغییر را ادراکی سطح توان می کنند می کار
Prerelational ارتباط باید خاصه صفت یک تغییر قطع userبرای پایگاه با هاپایگاه . ، بخوابد سیستم شود .Reloadو Loadشود
مهم : دارد : نکته طراحی به نیاز ای رابطه پایگاه
طراحی این
تدریج به و کند ایجاد را پایگاه اصلي هسته تواند می طراح تدریجیدهد . گسترش
پذیر انعطافهر که Tableمنتها دارد .CREATEای طراحی به احتیاج ، شود می
خارجی استاندارد : ) 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از باالیی بسیار مکانیزم ازاست .
مثال :
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
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روی
تعریف نکته : مکانیزم همین دید خواهیم که شرحی است 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حجم وارد
از نکته : بازیابی امکانات 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بنابرایننیستند .
یک وجود ) 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
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سطر نا
اسنت
با نکته : سطری قبال است شرط# 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;
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سطر می اعمال مبنا جدول از شطر کدام در