PDA

View Full Version : مبتدی: سوال در مورد پایگاه داده sql



likemoon
یک شنبه 20 تیر 1389, 13:27 عصر
سلام
من چند تا سوال دارم در مورد کار با sql

1_چرا بعضی جدولها انقد بد قلقن میشن برا تعریف کلید خارجی یا مشکل از کار منه؟
2_بعد من این جدوالا رو میخام برا استاد ایمیل کنم ولی نمیدونم اصلا چجوری باید برای استاد بفرستم اینا رو ؟چی رو باید ایمیل کنم؟از مسیر مای داکیومنت و پروجکتز که میرم میبینم خالیه و هیچ اثری از جداولی که ساختم نیست!!!
خواهش میکنم جواب بدید

حمیدرضاصادقیان
یک شنبه 20 تیر 1389, 14:10 عصر
سلام.دوست عزیز بد قلق یعنی چی؟؟
سوال رو درست بپرسید اگر خطایی میده بپرسید ، ساختار جداول رو ارسال کنید تا ببینیم مشکل چیه. اینجوری که اصلا نمیشه متوجه شد مشکل شما کجاست.
2- شما دیتابیسی که ایجاد میکنید در مسیر خود SQL Server در شاخه Data هست.اگر روی دیتابیس راست کلیک کنید Properties رو بزنید در قسمت Data files مسیر فایلهای شما مشخصه.
در ضمن شما یا باید MDf,ldf تحویل بدید یا از Database یک Backup تهیه کنید به استاد بدید.
یا میتونید Diagram اونو چاپ کنید و به استاد تحویل بدید که دیگه نیازی به فایل نداشته باشه.

موفق باشید.

likemoon
یک شنبه 20 تیر 1389, 14:56 عصر
اول تشکر میکنم به خاطر جواب
در مورد سوال اول: مثلا من از دو تا صفت تو یه جدول باید به دوتا جدول دیگه کلید خارجی ایجاد کنم بعد یکی از کلید ها رو که تعریف میکنم بعد اون یکی رو میخوام برای اون یکی جدول تعریف کنم کلید اولیه خود به خود حذف میشه:((((
نمیدونم حالا تا چه حد منظورمو رسوندم الان از دیاگرام یه عکس تهیه میکنم میزارم بعد از روی شکل مشکلمو میگم

likemoon
یک شنبه 20 تیر 1389, 15:18 عصر
اینم از دیاگرام
حالا من میخوام بین جدول erae و جدول calss و teacher ارتباط ایجاد کنم ولی نمیشه
بعد یه سوال دیگه اون ستاره ها کنار این 3 تا جدول نمیدونم برا چی اومده؟!

حمیدرضاصادقیان
یک شنبه 20 تیر 1389, 20:17 عصر
سلام.رابطه بین جدول erae , class به صورت یک به چند است که کلید اصلی در class هست و کلید خارجی در erae. در ضمن نوع فیلدها باید باهم برابر باشه.دقیقا مانند همین رابطه بین دوجدول دیگه هم برقراره.
وقتی شما Add رو میزنید یک رابطه ایجاد میکنید برای رابطه دوم مجدد باید Add رو بزنید.
وگرنه نمیتونید در یک رابطه دوجدول مختلف رو باهم لینک بدید.
اون ستاره ها هم برای اینه که الان این جداول شما در حالت design هستند و تغییراتی در اونها اعمال شده ولی ذخیره نشده است.

موفق باشید

likemoon
دوشنبه 21 تیر 1389, 00:31 صبح
من اصلا به اون add توجه نکرده بودم خیلی بی دقتم فکر کنم قبلا هم اینکارو کرده بودم ولی یادم رفته بود حالا با توجه به راهنماییتون همون کارو کردم خدا رو شکر رابطه ها به خوبی و خوشی تعریف شدن ولی ایندفه وقتی خواستم تغییرات رو سیو کنم همش این پیغام میاد:
من بین erae باteacher و classو lessonارتباط ایجاد کردم البته اینم بگم که کلید جدول ارائه رو به grupe_no , term تغییر دادم


'class' table saved successfully
'lesson' table saved successfully
'teacher' table saved successfully
'erae' table
- Unable to create relationship 'FK_erae_teacher'.
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_erae_teacher". The conflict occurred in database "Fathi", table "dbo.teacher", column 'T_code'.

حمیدرضاصادقیان
دوشنبه 21 تیر 1389, 10:32 صبح
سلام.دوست عزیز این پیغامی که میده به خاطر اینه که در جدول teacher یک مقداری هست که با مقدار PK در جدول اصلی شما فرق میکنه.
در رابطه Master-Detail در جدولی که قراره به عنوان FK انتخاب بشه باید مقادیری که داخل اون فیلد هست با مقادیری که در جدول PK هست یکی باشه در غیر اینصورت این خطا رو به شما میده.
شما ببینید در جدولی که به عنوان FK قرار میگیره مقدار فیلد T_code با مقدار اصلی اون در جدولی که به عنوان PK قرار میگیره همخوانی نداره.
اونو پاک کنید مشکل حل میشه.
.موفق باشید

likemoon
سه شنبه 22 تیر 1389, 12:53 عصر
تشکر بسیار بسیار زیاد
الان تمام جدول ها با کلیدها تعریف شدن مقدار دهی هم شدن فکر کنم تموم شد دیگه فقط میمونه اینکه من چی رو باید برای استاد بفرستم!
فایلهای ldf و mdf رو از مسیر نصب sql server پیدا کردم اما وقتی میخوام کپیشون کنم تو یه فایل که واسه استاد بفرستم اجازه کپی نمیده یه پیغام میاد که میگه توسط یه برنامه دیگه ایی در حال اجراست !!! اینو چکار کنم؟

pezhvakco
سه شنبه 22 تیر 1389, 13:17 عصر
درود :
برای کپی گرفتن از فایل های پایگاه داده باید SQL رو Stop کنی. (از قسمت نوار Taskbar)

فکر خوش .

likemoon
سه شنبه 22 تیر 1389, 15:43 عصر
اما گزینه stop که غیر فعاله :(!

حمیدرضاصادقیان
سه شنبه 22 تیر 1389, 16:53 عصر
سلام.اگر از نسخه 2000 استفاده میکنی در منوی Start-run تایپ کن sqlmangr بعد گزینه stop رو بزن.

likemoon
چهارشنبه 23 تیر 1389, 00:42 صبح
از نسخه 2008 استفاده میکنم ولی این روش رو چک میکنم الان

likemoon
چهارشنبه 23 تیر 1389, 00:50 صبح
windows cannot find "sqlmangr" ...
دوستان به داد برسید

likemoon
چهارشنبه 23 تیر 1389, 01:22 صبح
هورااا از قسمت
sql server configuration manger --> sql server services-->sql server
mssql server رو استاپ کردم و اون دو تا فایل کذایی کپی شدن حالا همینا رو بفرستم؟؟؟؟

mohammad.moosaei
چهارشنبه 23 تیر 1389, 01:49 صبح
سلام دوست عزیز :

برای Stop کردن اول توی محیط Sqlserver Manegment Studio به این مسیر برو :

View -> Registered Servers

بعد از زبانه بازشده از شاخه DataBase Engine سرور مورد نظرتو پیدا کن . بعد با یک کلیک راست گزینه Stop نمایان میشه . حالا می تونی Stop کنی . فایلها رو کپی کن . بد دوباره server رو راه اندازی کن.

mohammad.moosaei
چهارشنبه 23 تیر 1389, 01:54 صبح
هورااا از قسمت
sql server configuration manger --> sql server services-->sql server
mssql server رو استاپ کردم و اون دو تا فایل کذایی کپی شدن حالا همینا رو بفرستم؟؟؟؟

باید دو تا فایلی رو که با پسوند MDFو LDF هستند رو بفریستی . اولی جدولها و سایر چیزها رو نگه میداره و دومی هم مثل یک Log عمل می کنه و همه اتفاقات توی دیتابیس رو ثبت میکنه.


موفق باشید.