>> ٹھیک ہے.
تو، مزید ado کے بغیر، ایس کیو ایل، طلب زبان ساخت.
تو، آپ کو شاید میں اس کا استعمال کیا ہے شاید CS165 میں CS50، میں کم از کم،
شاید آپ کی اپنی میں ذاتی منصوبوں.
اور کیا SQL، تم کرتے ہو عام طور پر ایک ایس کیو ایل سرور میں؟
جی ہاں؟
[اشراوی تبصرہ]
ٹھیک ہے، کہ بہت تھا یہ کہہ کے محفوظ راستہ.
جی ہاں. تو اس کی اجازت دیتا ہے آپ کو ڈیٹا ذخیرہ کرنے کے لئے
اور زیادہ اہم بات کی اجازت دیتا ہے آپ اعداد و شمار کے لئے سوال.
اور اس کے آگے ایک قدم ہے
کچھ کا استعمال کرتے ہوئے کی طرف سے ایک CSV کی طرح آسان، حق.
کاما متغیرات الگ.
اسی طرح کی اقدار.
اسی طرح آپ کو بچانے کے معلومات ایک صف
ایک ٹیکسٹ فائل میں.
لیکن ایک کی کمی کیا ہے CSV آپ کے ڈیٹا کو محفوظ کرنے کے لئے فائل،
اگرچہ آپ کو مؤثر طریقے اس سے قطار اور کالم حاصل؟
جی ہاں.
>> تم نہیں ہے اسی تنظیم
کارکردگی [اشراوی].
>> آپ ایک ہی نہیں ہے تنظیم کی کارکردگی.
آپ کا کیا مطلب ہے؟
>> ٹھیک ہے، جیسے [اشراوی] [اشراوی] پرائمری کی طرح ہے.
>> ٹھیک ہے. جی ہاں.
>> یہ ایک سنبندپرک ڈیٹا بیس ہے آپ ایک سے زیادہ ڈیٹا بیس کر سکتے ہیں
ایک دوسرے سے منسلک بہت ہی خاص طریقے میں.
>> ٹھیک ہے. اچھا.
>> یہ ہے [اشراوی] ایک CSV قائم کرنے کے لئے.
>> اور میرے موافقت کرتے ہیں ایک چھوٹی سی اصطلاحات.
تو ایک سے زیادہ میزیں ایک ڈیٹا بیس کے اندر اندر، اس بات کا یقین،
اور وہ کیا سے باہر جاتا ہے آپ کو صرف ایک CSV کے ساتھ کیا کر سکتے ہیں.
لیکن واقعی حد CSV کے ساتھ میں ہے بحث کریں گے
کہ یہ سب کی اکشمتا.
اس کی ترتیب کے لئے بہت آسان ہے.
لیکن آپ کو ایک کرنا چاہتے ہیں استفسار، رننگ ٹائم کیا ہے
کسی بھی منتخب کریں سوال کے ایک CSV فائل ہے؟
میں اس بڑی پرانی [اشراوی] کا مطلب حق، بدترین صورت میں وجہ سے،
وہ بہت نچلے حصے میں اضافہ ہوا.
تم پورے کے مطابق تھا یہاں تک کہ اگر CSV فائل، آپ کو معلوم نہیں ہے تو
کہ براہ راست، اچھی طرح سے، آپ کو اب بھی کرنے جا رہے ہیں
پوری بات تلاش کرنے کے لئے.
تو، چیزوں کے درمیان ہم حاصل کرنے کے لئے جا رہے ہیں
ایک حقیقی کا استعمال کرتے ہوئے کی طرف سے ایک زبان کا استعمال کرتے ہوئے ڈیٹا بیس
SQL ہم سوال کر سکتے ہیں کی طرح یہ اور ہم نے ایڈوانس میں کر سکتے ہیں
ڈیٹا بیس ڈیزائنرز کے طور پر موضوعات ہیں کی وضاحت
امکان ہے کرنے کے لئے جا رہے تھے کہ کے بارے میں سوالات، تاکہ لوگ
ایس کیو ایل یا مائیکروسافٹ یا اوریکل، میں
جس ڈیٹا بیس بنا دیا ہے آپ استعمال کر رہے ہیں سب کر سکتے ہیں
کی محنت کی باہر figuring، ٹھیک ہے،
ان آئی ڈی کے ایک ملین دیا.
ہم کس طرح ترتیب کر سکتے ہیں - یاد میں انہیں باہر؟
درخت کے کچھ قسم شاید ساخت،
تاکہ جب آپ ایسا کرتے ہیں اصل میں، منتخب کریں پھانسی
یہ وہ کچھ ہے لوگارتمی یا لوگارتمی
وقت میں لوگارتمی بلکہ کے اصل میں devolving کر سے
لکیری کچھ میں.
تو ہم کی ایک بہت ہے کارکردگی اس طرح.
اور ہم نے بھی ایک بہت محفوظ کر سکتے ہیں اعداد و شمار کے زیادہ آسانی سے 'ایس کیو ایل کی وجہ
سرور عام طور پر محفوظ کیا جاتا ہے RAM میں اگرچہ حصوں
اس کے ڈسک پر محفوظ کیا جا سکتا ہے اور آپ شاید اب تک پتہ
کہ رام عام طور پر ہے ڈسک کے مقابلے میں تیزی،
تو یہ ایک اچھی بات ہے.
اور ہم بھی سنبھال سکتے ہیں زیادہ بہتر concurrency.
آپ کو 165 یا 161، لیا ہے تو آپ کو معلوم ہے کہ دو لوگوں کی کوشش کریں تو
ایک ہی بات کرنا ایک بار ایک نظام پر میں،
بری چیزوں کو عام طور پر ہو سکتا ہے.
دیگر خصوصیات کے علاوہ تو ہم ہم اپنے ٹیبلز ڈیزائن اور اگر حاصل کر سکتے ہیں
صحیح طریقہ ہے بہتر کی حمایت اور سیکورٹی
یہ concurrency کے لئے آتا ہے.
تو، دو حصوں میں دو افراد
ایک ہی کا استعمال کرتے ہوئے دنیا کی ویب سائٹ، ان دونوں کی کوشش کریں تو
اسی میں کچھ خریدنے کے لئے وقت، اس لئے کہ جا رہا ہے
ایک ہی وقت میں جانے کے لئے.
کسی نہ کسی طرح وہ serialized کی جائے گی ہمارے اپنے علاوہ کسی کی طرف سے -
خود کے علاوہ کسی.
ڈیٹا بیس مرضی ہمارے لئے ایسا.
تو یہ سادہ ترین شکل ہے جب،
SQL ہمارے استفسار میں ایک کی اجازت دیتا ہے سنبندپرک ڈیٹا بیس.
ایک سنبندپرک ڈیٹا بیس ایک ہے کہ ایک ہے
عام طور پر اس میں یا اس سے زیادہ میزیں.
اور یہ ایک ہے تھوڑا مجریچت،
تم سچ میں صرف سوچ سکتے ہیں اس کے ایکسل یا تعداد کے طور پر
یا گوگل سپریڈ شیٹ.
یہ صرف قطار اور کالم ہے اور عام طور پر ہر ایک کے سب سے اوپر
ان قطاروں کی اس کے لئے ایک نام ہے.
تو اس کی شناخت ہو سکتا ہے کالم، نام کے کالم،
تو آگے پتہ کے کالم کی اور.
اور پھر آپ ایک سے زیادہ کر سکتے ہیں اس طرح میزیں اگر آپ چاہتے ہیں
باہر بچھانے شروع کرنے کے لئے اعداد و شمار کے مختلف اقسام.
لیکن آپ کو یاد کر سکتے ہیں کم از کم ہم نے کوشش کی ہے کہ CS50 سے
آپ کو ایک GUI کی بنیاد پر دینے کے لئے آلے کے [اشراوی]
آپ کے ڈیٹا بیس کو منظم کرنے.
یہ phpMyAdmin کے بلایا گیا تھا.
تو یہ صرف ایک اتفاق ہے کہ یہ پی ایچ پی میں لکھا گیا ہے، واقعی،
لیکن یہ صرف ایک ویب کی بنیاد پر تھا سامنے ایک ڈیٹا بیس کے لئے ختم.
اور مختلف ٹیب کے ذریعے اور لنکس، آپ کو شروع کر سکتے ہیں
ایک ڈیٹا بیس تشکیل کرنے کے لئے خود کے لئے.
لیکن ایک اچھا آلہ کرنے کے لئے شروع کرنے کے لئے ایک چھوٹا سا زیادہ آرام دہ اور پرسکون حاصل
بھی ہے کے ساتھ کمانڈ لائن کلائنٹ.
تو، CS50 آلات کا استعمال کرتے ہوئے اگر یا واقعی کسی بھی میکرو پی سی کا استعمال کرتے ہوئے
کہ ایک کمانڈ لائن کے ایس کیو ایل ہے کلائنٹ کی، آپ بھی طرح یہ کر سکتے ہیں
اس طرح کے پرانے اسکول،.
ایک طرف ایک ایس کیو ایل کے منصوبے کے طور پر، کم از کم اوپن سورس ورژن
اس کے اب کے لئے MariaDB کہا جاتا ہے آپ پڑھ سکتے ہیں مختلف وجوہات
وکی پیڈیا پر لیکن یہ ایک ہی سافٹ ویئر ہے،
یہ ایک ہی نحو ہے اور وغیرہ،
بہت ایک ہی کوڈ کی بنیاد.
اور اس میں اس میں ہوں جب اب میں رابطہ کر سکتے ہیں فوری طور پر
اپنے ڈیٹا بیس کے ساتھ بہت زیادہ دستی طور پر.
نقطہ میں تو کیس، مجھے جانے دو آگے
اور صرف کھول ایک ٹرمینل ونڈو.
میں CS50 کا استعمال کرتے ہوئے ہوا آلات لیکن آپ یہ کر سکتے ہیں
سب سے زیادہ کسی بھی نظام میں آپ کو حق ہے جس میں
سافٹ ویئر نصب.
اور میں نے ایس کیو ایل یو کرنے جا رہا ہوں صارف کا نام جان ہارورڈ کے لئے
یہ خاص طور پر نظام پر،-P میں ٹائپ کریں گے کہ ایک پاس ورڈ کے لئے
تھوڑا اور میں محفوظ طریقے سے مارنے کی طرف سے درج کریں.
اب میں حوصلہ افزائی کر رہا ہوں.
میں نے کرمسن ٹائپ کرنے کے لئے جا رہا ہوں CS50 آلات میں
اور اب میں بنیادی طور پر دیکھنے کے ایک ہی سکرین ہے.
لیکن حکم دیتا ہے اب نہیں ہے ہم ٹائپنگ شروع کر سکتے ہیں
کی طرح ڈیٹا بیس کو دکھانے کے، اور کہ میرے تمام ظاہر کرنے کے لئے جا رہا ہے
میں ہے کہ ڈیٹا بیس کی پہلے ہی، نظام میں پیدا
بہت ایک ہی فہرست آپ phpMyAdmin کے میں دیکھیں گے.
کی طرح دوسروں کے ایک جوڑے کی ہے معلومات شجرہ اور ٹیسٹ،
جو آپ کے ارد گرد ڑکیلنا تو CS50 آلات، ہم نے کچھ چھپا
ان نچلے درجے میزیں
لیکن وہ کیا گیا ہے وہاں اس وقت.
ایس کیو ایل اصل میں کم سطح ہے صارف کا نام کی طرح کی خصوصیات
اور ڈیٹا بیس کے لئے پاس ورڈ خود، آپ کی درخواست کے لئے
آپ ہو سکتا ہے اس کے سب سے اوپر پر چلنے.
تو پیشگی میں، آج، میں ایک جوڑے کے ڈیٹا بیس پیدا،
جن میں سے ایک کہا جاتا ہے courses50.
مشکلات، آپ میں سے کچھ کا استعمال کیا ہے ہیں CS50 کورس خریداری کا آلہ،
کے لئے ایک بڑا انٹرفیس ہے جو رجسٹرار کے کورس کیٹلوگ.
اور یہ اصل میں ایک اچھا ہے وجہ 'کے بارے میں بات کرنے کے لئے dataset،
ایک، ہم قسم کی تمام ہیں کورس کے ساتھ واضح طور پر واقف
اور اساتذہ اور اجلاس مقامات اور تمام قسم
عام چیزوں کی یونیورسٹی کے،
لیکن یہ بھی کچھ ہے دلچسپ مواقع
ڈیزائن کے لئے.
تو ہم ہم استعمال کرتے ہیں سوچا ایک کورس کیٹلوگ کے تصور
اور ایک کے طور پر ایک خریداری کے آلے مثال کے طور پر حل کرنے کے لئے آج میں
کے ڈیزائن کی کچھ فریم ہم بنانے کے لئے ہے فیصلے.
تو وہاں شروع.
میں اصل میں چاہتا تھا کہ مان لیں سپر آسان کی نمائندگی کرنے کے
کورس کے اوزار خریداری.
اور آسان کی دنیا میں تصور کر سکتے ہیں اور ایک ہے
کورس ہیں جس میں اور اساتذہ موجود ہیں.
اور کی فرض کرتے ہیں بحث کی خاطر
کہ ہر کورس کم از کم ایک نام ہے.
تو شروع یہ خاکہ.
میں phpMyAdmin کے استعمال کرنے کے لئے جا رہا ہوں صرف ایک سہولت کے طور پر،
تو ہم سے ٹائپ کرنے کی ضرورت نہیں دستی طور پر سوالات کے تمام.
لیکن یہاں میں ہوں میری courses50 ڈیٹا بیس.
اس سے نا واقف ہیں، تو یہ کریں گے آپ کودو ایک بار بہت آسان ہو جائے
آپ کے اپنے منصوبے میں آپ اسے استعمال کرنا چاہتے ہیں.
میں پیدا کرنے کے لئے جا رہا ہوں ایک کورسز سے ملاقات کی میز
اور میں صرف سوچ سکتے ہیں ایک میدان کے
اب کے لئے، کورس کے نام پر.
میں آگے جانے کے لئے جا رہا ہوں کا کہنا ہے کہ میرے ایک کالم دے.
آپ کو یاد ہے اب، آپ کو ملتا ہے تھوڑا سا ہے کہ ایک انٹرفیس
اس طرح.
اور دوسرے الٹا بے تکلفی phpMyAdmin کے ہے کہ اس طرح
خود ہدایت کی اور یہ کہ dropdowns کے ذریعے، آپ کو ترتیب دیں کر سکتے ہیں
کس آپ ممکن دیکھ ڈیزائن فیصلے ہیں.
تو میں دینے جا رہا ہوں ہر کورس ایک نام.
یہی وجہ ہے کہ اس کالم کا نام ہے.
اور کس طرح اس کی ڈیٹا کی قسم کے بارے میں؟
آپ کی زیادہ سے زیادہ پتہ ہونا چاہیئے کم از کم ان اعداد و شمار اقسام میں سے کچھ
پہلے تجربے سے.
مناسب کیا ہے کورس کے نام کے لئے؟
شیرون؟
>> Varchar.
>> ٹھیک ہے، varchar جس رکن کی چار.
اور کیا ہے کہ کرتا ہے زیادہ تکنیکی مطلب ہے؟
[اشراوی تبصرہ]
ٹھیک ہے. تو یہ ایک تار ہے.
اور متغیر پہلو کا کیا مطلب ہے؟
رکن کی. لیکن کیا مطلب یہ ہے کہ ہے؟
جی ہاں؟
[اشراوی تبصرہ]
بالکل ٹھیک. تو یہ ایک متغیر ہے حروف کی تعداد
سٹرنگ میں کچھ زیادہ سے زیادہ.
تو یہاں ہمارے پہلے ہے ڈیزائن کے فیصلے.
ہم اصل میں فیصلہ کرنا ہے کتنے بائٹس زیادہ سے زیادہ
ہر اس طرح سٹرنگ پر مختص کرنے کی.
عام طور پر، آپ چاہتے ہیں کی طرح، یہ بہت چھوٹا نہیں
یہ بہت بڑی نہیں واضح وجہ
بہت چھوٹا ہے اگر آپ کو صرف ہو اعداد و شمار کے قطع برید شروع کرنے جا رہا
اور آپ کی معلومات کو کھو دیں گے.
یہ بہت بڑا ہے اور اگر، آپ کو صرف کر رہے ہیں قسم کے ڈیٹا بیس کہہ
توقع ہے اور کرنے کے لئے مزید معلومات کے لئے بہتر بنانے کے
یہ اصل میں کبھی ہو سکتا ہے کے مقابلے میں.
تو ایک مناسب احساس کیا ہے ایک کورس کے نام کے لئے نمبر؟
60؟ ٹھیک ہے، تو 60.
یہ بہت مناسب لگتا ہے
کے طور پر طویل ہے ہے کوئی اس کے مستثنیات.
کوئی واقعی بات ہے مشکل، روزہ اصول.
کے لئے، ایماندار ہونے کے لئے تاریخی وجوہات کی ایک بہت
کے لوگوں کو 255 کا انتخاب کریں گے 'ترتیب تھا کہ سال کے لئے کی وجہ سے
8 کا استعمال کرتے ہوئے پہلے سے طے شدہ زیادہ سے زیادہ بائٹس - آپ کے انسداد کے طور پر 8 بٹس.
میں تھا زیادہ [اشراوی] 2 کے اختیارات استعمال کر سکتے ہیں
لیکن اس طرح کے غیر متعلقہ ہے.
تو ہم 60 کے ساتھ جا سکتے ہیں.
یہ مناسب اتنی دیر لگتا ہے
ہم آخر میں یہ افسوس نہیں ہے کے طور پر 'کہ ایک پابند بالائی ہے کی وجہ سے.
اب، اس کے برعکس لگتا ہے فیصلہ کیا گیا تھا،
متغیر نہیں حروف لیکن صرف چار میدان.
تو C اور C + +، چار کے برعکس ایک چار مطلب یہ نہیں ہے
اور ڈیٹا بیس ہے کہ عام طور پر ایک مقررہ تعداد کا مطلب ہے کہ
ایک تار کے کرداروں کی.
کیا الٹا اور / یا ہو گا میری 60 کو منتخب کرنے کے کی کمی
ایک چار فیلڈ کے لئے، بجائے varchar کے؟
یہ بالکل پہلی قسم ہے فیصلہ آپ کو کرنا پڑے گا
باہر [صوتی] معائنہ جب کے اپنے شراکت داروں کے ساتھ پروجیکٹ.
جی ہاں، شیرون کو دوبارہ.
[اشراوی تبصرہ]
اچھا. تو نام کم ہے
60 سے زیادہ تو آپ کو برباد کر رہے ہو کہ ڈیلٹا جو کچھ بھی ہے
60 اور کے درمیان اصل لمبائی.
تو یہ صرف، بیکار محسوس ہوتا ہے کی آپ کو ضرورت سے زیادہ بائٹس.
لیکن یہ کیوں موجود ہے؟
یقینا کچھ الٹا ہے.
جی ہاں؟
[اشراوی تبصرہ]
اس بات کا یقین. تو کبھی کبھی آپ کو مقررہ تعداد جانتے ہو
10 ہندسوں کی طرح حروف کی مثال کے طور پر ایک فون نمبر کے لئے.
لیکن کیوں کی طرح، پرواہ صرف ویسے بھی 11 نہیں کہنا
یا کیوں نہیں کہہ 60 ویسے بھی varchar کے ساتھ؟
کیا فائدہ ہم حاصل کرتے ہیں جاننے اور ڈیزائن کی طرف سے
ایک مقررہ تعداد کے لئے حروف کی؟
[اشراوی تبصرہ]
تم صحیح راستے پر ہیں.
تو یہ اصلاح ہے لیکن جی ہاں - یہ واقعی کی ہے؟
[اشراوی تبصرہ]
ٹھیک ہے. اچھا. چلو توجہ کہ آخری حصہ پر.
تو تخکرمن.
اگر تو یہ پتہ چلتا پیشگی معلوم ہے کہ تمام
آپ کے شعبوں کے لئے جا رہے ہیں 60 حروف ہو،
اگر تم واقعی اس کے بارے میں سوچ کر سکتے ہیں ایکسل ڈیٹا بیس میں کالم
، بہت براہ راست ہونے کے طور پر جائز چھوڑ دیا
اور صحیح جائز کناروں
کیونکہ ہر کالم 60 حروف کے وسیع ہے.
اس کا مطلب ہے کہ اس سٹرنگ 60 حروف دور ہے
اس جملے سے، 60 دور اس ایک سے حروف
اور یہ ایک اور یہ ایک.
جب آپ کو تو واپس پسند ہے سی سیکھا، آپ کو بے ترتیب تک رسائی تھی
arrays کے دنیا میں، یہاں ایک ہی خیال.
آپ کے کالم کی نمائندگی کی ہے تو صرف مقررہ لمبائی حروف کا استعمال کرتے ہوئے،
آپ کو مؤثر طریقے انڈیکس کر سکتے ہیں تصادفی 60 یا 120 یا 180
اور اپنے آپ کو انفرادی طور پر حاصل کر سکتے ہیں بہت زیادہ تیزی سے ڈور.
اس کے بعد اس کی بجائے اگر، آپ کے کالم تھا تو بات کرنے کے لئے ایک براہ راست بائیں کنارے
لیکن ایک بہت ؤبڑ حق کالم کنارے
آپ ہو سکتا ہے کیونکہ 10 حروف،
15 حروف، 5 حروف.
تو یہ بھی ایک tradeoff ہے.
اور کبھی کبھی صرف مقدمے کی سماعت اور غلطی کے ذریعے
اور استعمال آپ کے اعداد و شمار کر سکتے ہیں
کیا واقعی حق کال باہر ہے لیکن اس قسم کے ہیں
سوالات کے کہ چلنا چاہئے
آپ کے دماغ اور / یا کے ذریعے میزیں جب یہ وقت آئے
آپ کے ڈیٹا بیس ڈیزائن کرنے کے لئے.
تو، ضروری ٹھیک نہیں جواب لیکن آپ کو چاہئے
کم از کم کچھ ہے ذہن میں سزا یا دو
بیک اپ جو کچھ بھی آپ کو فیصلہ.
ٹھیک ہے.
تو طومار کر رہو یہاں اشارہ میں
کہ phpMyAdmin کے کی UI کے ہیں.
تو، کے لئے پہلے سے طے شدہ قیمت ایک کا نام، مجھے وضاحت کرنا چاہئے
یہ ہونا چاہئے کہ شہوت انگیز null کا ایک طے شدہ قیمت؟
آپ کو کیا لگتا ہے؟
ایک کورس شہوت انگیز null نام ہو سکتا ہے؟
صرف صحیح، عجیب محسوس ہوتا ہے؟
میں کسی کے بارے میں سوچنا نہیں کر سکتے ہیں ہارورڈ میں نامعلوم کورس.
اور شاید کچھ ہے غیر واضح کونے کیس
ایک کورس ایک نمبر دیا جاتا ہے جہاں
اور پروفیسر نہیں ہے اس کے لئے ایک نام منتخب کیا لیکن -
میں اس کے ساتھ کیا heck پر، مطلب،
کی طرح کی بھی نہیں ہیں کہ کی حمایت کی زحمت.
میں نے مفاد میں کہیں گے ایک اچھا صاف ڈیٹا بیس کی،
کی وضاحت کرتے ہیں اگر آپ نہیں کر سکتے ہیں شہوت انگیز null کی ایک پہلے سے طے شدہ قیمت ہے.
متبادل طور پر، ہم کر سکتے ہیں بلاعنوان کورس کی طرح کچھ
کے ساتھ کے برعکس نہیں ہے میک OS اور ونڈوز کرتے ہیں
اگر آپ کو ایک کی تخلیق کرتے وقت مثال کے طور پر فولڈر،
لیکن یہ وہاں ہوتا ہے تھوڑا زیادہ احساس
انسانی کچھ دیکھنے لگا.
ہم نے ایک کے بارے میں بات کر رہے ہیں واپس آخر ڈیٹا بیس شاید
کورس کیٹلوگ کے لئے.
تو میں واقعی نہیں بھی کرتے ہیں دے کے خیال کی طرح
بلاعنوان کورس کے ناموں میں
کہ واقعی نہیں ہے کے بعد سے کسی کی مدد کے لئے جا رہا.
تو کوئی نہیں کے طور پر اس کو چھوڑ دو، جو آپ داخل جب کا مطلب ہے کہ
اس ڈیٹا بیس میں، آپ کے پاس ہر کورس ایک نام دینا
ایک چھوٹا سا محسوس کرتی ہے میرے کلینر.
ٹھیک ہے.
تو، مزید کولیشن کی طومار.
یہ صرف کے ساتھ کیا ہے کردار سیٹ اور whatnot
کیا تم نے کبھی دیکھا ہے سویڈش کی ذکر
phpMyAdmin کے میں ہے 'لوگوں کی وجہ
جو phpMyAdmin کے لکھا سویڈش تھے.
کہ پی ایچ پی کی ہے یا یہ مائی ایس کیو ایل ہے؟
دو میں سے ایک، میں اسی وقت بھول گیا.
لیکن یہ تاریخی وجوہات کی بنا پر ہے
لیکن آپ کو ہر اظہار کر سکتے ہیں انگریزی میں کردار
آپ سویڈن کے ساتھ کر سکتا ہے تو یہ بڑی حد تک ایک غیر مسئلہ ہے.
CS50 آلات اگرچہ ہے استعمال کیا جاتا ہے - میں UTF-8 استعمال کرنے کے لئے تشکیل،
تو وہ عام طور پر کرنا چاہئے آپ کے لئے پاپ اپ نہیں.
صفات.
تو ان میں سے کوئی بھی ہو یہاں واقعی متعلقہ.
میں ثنائی، اہستاکشرت، دیکھ اہستاکشرت zerofill،
اور اپ ڈیٹ موجودہ ٹائمسٹیمپ پر.
اس میدان صرف لاگو ہوتا ہے کچھ عددی فیلڈ کے لئے
یا کچھ وقت کے شعبوں.
تو ہم پر چھوڑ دیں گے کہ مکمل طور پر.
شہوت انگیز null. یہ میدان خالی ہو سکتا ہے؟
تو کوئی. ہم نے پہلے ہی ہے بات چیت کے اس طرح.
تو ہم نہیں چاہتے پہلے سے طے شدہ قیمت.
ہم یہ نل ہو نہیں کرنا چاہتا.
کیا انڈیکس کے بارے میں؟
یہاں چار کے انتخاب ہے.
ہم درج کرتے ہیں اس کا کیا مطلب ہے
اس قطار میں جا رہا ہے ایک بنیادی کلید ہو؟
واپس CS50 یا سوچ تم نے اسے لے لیا ہے تو CS165.
[اشراوی تبصرہ]
بالکل ٹھیک. تو ایک بنیادی کلید تعریف کی طرف سے میدان ہے
کہ منفرد شناخت اس کے ٹیبل میں ہر صف.
اور تم کرتے ہو اس پر بھروسہ کر سکتے ہیں کہ منفرد شناخت.
تو، اس کا کیا مطلب ہے تو صرف منفرد ہو؟
ٹھیک ہے، کی طرح ان دو طرح کی ہے
کے اثرات کے تحت ہڈ کے نیچے.
لیکن عام طور پر، بنیادی کلید ہے آپ کو ایک معاہدے کی طرح
ڈیٹا بیس چیز کے ساتھ.
میں سوالات کرتے ہیں ایک کورس کے لئے تلاش کر،
میں اس کا استعمال کرنے جا رہا ہوں مخصوص علاقے.
اور ہم واپس آ جائیں گے ہم ہو سکتا ہے کیوں دو
یہاں اس طرح کا انتخاب، بنیادی یا منفرد.
منفرد صرف اس، کا کہنا ہے کہ میدان منفرد جا رہا ہے
لیکن میں واقعی میں کسی بھی نہیں کر رہا ہوں یہاں زبانی عزم کی قسم
اس میدان کو استعمال کرنے کے میرے تلاش کرنے کے لئے
ہم کریں گے وجوہات کی بنا پر صرف ایک لمحے میں دیکھتے ہیں.
ہم بجائے انڈیکس کی وضاحت تو، کیا اس کی وضاحت کرنے کے لئے مطلب ہے
ایک میدان میں اس پر ایک انڈیکس ہے؟
جی ہاں؟
[اشراوی تبصرہ]
بالکل ٹھیک. یہ ہو گیا ہے استفسار کے لئے مرضی کے.
تو آپ - ڈیٹا بیس سرور، اوریکل، ایس کیو ایل، جو کچھ بھی،
عام طور پر اس کے جادو کام کرے گا پردے کے پیچھے آپ کو کلک کرنے کے بعد
پھر اس آپشن پر کلک کریں کو بچانے اور اسے تعمیر کریں گے
اپ عام طور پر ایک درخت کا ڈھانچہ، B-درخت تم نے دیکھا ہے اگر
یا ہے جس کے دور میں سنا ہے ایک بہت مختصر نظر درخت
کہ آپ بہت اچھی دیتا ہے لوگارتمی خصوصیات
اعداد و شمار پر تلاش کرتے وقت.
آپ ایک انڈیکس میں متعین نہیں کرتے تو ایک میدان میں، کیا جا رہا ہے
چل رہا ہو تلاش کے وقت
ایک صوابدیدی کے لئے [صوتی] کورس کے نام؟
یہ کیا ہے؟
[اشراوی تبصرہ]
اوہ، [اشراوی]، لکیری، ٹھیک ہے؟
یہ کوئی اصلاحات ہے تو ڈیٹا بیس سے afforded
اور آپ میں نہیں سوچا ہے ڈیٹا بیس کس طرح
توقع کرنے کے لئے اعداد و شمار کی.
آپ کر سکتے ہیں سب سے بہترین چیک ہے آپ کو تلاش کر رہے ہیں، جب سب کچھ
کچھ قیمت کے لئے، خاص طور پر اگر وہاں کر سکتے ہیں
اصل میں نقول ہو.
مکمل متن دریں اثناء، ہم کریں گے اب کے لئے ہمارے ہاتھ لہر.
لیکن عام طور پر، یہ ایک آپ کو اجازت دیتا ہے کہ انڈیکس کی قسم
مطلوبہ الفاظ کے لئے بہتر کرنے کے لئے ایک میدان میں تلاش.
تو یہ ہو سکتا ہے ایک اچھے امیدوار
کے لئے ایک کورس کی تفصیل کی طرح آپ کو ایک دو ہو سکتا ہے جہاں
پیرا ہے اور آپ کو طاقت کے substring میچ کرنا چاہتے ہیں.
مکمل متن عام طور پر دیں گے آپ کافی مؤثر طریقے سے ایسا.
AI، یہ ایک خوفناک طرح ہے وضاحت کی لیکن ہم گھمائیں تو
اس پر آپ کو نظر آئے گا آٹو اضافہ.
اطلاق دونوں یہاں لیکن آٹو اضافہ مفید ہے
ایک int کے میدان کی طرح کیونکہ ڈیٹا بیس کی دیکھ بھال کرے گا
علاوہ plusing کے عمل کا یہ آپ کو ایک ڈالیں کرتے ہیں ہر وقت.
کہ تو بھی اگر دو لوگ لفظی جمع کرائیں کلک کریں
ایک ہی وقت میں اور کوشش کسی نہ کسی طرح ایک قطار بنانے کے لئے
ڈیٹا بیس میں، میں سے ایک ان کی تعداد میں مل جائے گا
دیگر مل جائے گا تعداد میں کے علاوہ 1.
آپ کو فکر کرنے کی ضرورت نہیں ہے
کے بارے میں دو نمبروں ہونے اگر تم تھے شناختی تفویض
کوڈ میں اس خود کرنا.
ٹھیک ہے.
تو میں قسم کی پسند ہے جہاں ہم کو ایک نام مل گیا ہے.
تو محفوظ کریں پر کلک کرتے ہیں.
یہ ایک اچھا ڈیزائن ہے ایک ڈیٹا بیس کی میز کے لئے؟
اور ایک طرف ایک کے طور پر اگر ایس کیو ایل پر زنگ آلود یا آپ کی طرح
صرف ہمیشہ ایک اندھے کی باری ہے کیا ہو رہا ہے کے لئے آنکھ،
میں نے ٹائپ کر سکتے ہیں بالکل ہے -
اس میں ان تین لائنوں سیاہ اور سفید فوری طور پر
کمانڈ لائن میں کلائنٹ یا میں نے کیا کیا کر سکتے ہیں
کوڈ میں پروگرام ہے.
تو phpMyAdmin کے لئے کر رہا ہے میرے، صرف میرے کوشش کو بچانے ہے
کبھی کبھی یاد نحو اور اس کے لئے باہر ٹائپ
تکاؤ حکم دیتا ہے کی طرح.
ٹھیک ہے.
تو اس طرح محسوس نہیں کرتا سب سے بہترین ڈیزائن، ایک میدان کی میز.
اب ہم کر سکتے ہیں پروفیسروں کی طرح باتیں
اور جگہوں اور وضاحت.
لیکن پھر بھی، صرف نام کا استعمال کرتے ہوئے
کورس کی شناخت کے لئے مثالی محسوس نہیں کرتا.
عام طور پر کیا ہے ہم نے ماضی میں کیا کیا
آپ کے ڈیٹا بیس کا استعمال کیا ہے منفرد قطار ہے؟
عام طور پر varchars کا استعمال نہیں.
جی ہاں؟
[اشراوی تبصرہ]
جی ہاں. تو عام طور پر ایک کورس کی شناخت.
تو، سب سے زیادہ عام یہاں رجوع خاص طور پر
ایک فریم ورک کا استعمال کرتے ہوئے صرف اصل میں ہے
ایک عدد صحیح طرح ایک بڑی تعداد کا استعمال کرنے کی.
تو مجھے آگے جانا ہے اور اس کے کیا.
اور ہم میں سے چند ایک میں ایسا کر سکتے ہیں میں زوم، اگر طریقوں، لیکن نوٹس
یہاں نیچے میں.
میں نے ایک کو شامل کہنے جا رہا ہوں ٹیبل کے آخر میں کالم،
عام طور پر صرف بصری کے لئے سہولت آپ کی شناخت ڈال
میز کے شروع میں یہ کوئی اصلی ہے اگرچہ
فعال اثرات.
تو میں کہنے جا رہا ہوں ایک کالم کا اضافہ کریں
میز کے شروع میں.
میں جانا، کہ کلک کرنے کے لئے جا رہا ہوں مجھے یہاں یہ UI کے واپس دیتا ہے.
اس کی شناخت کہتے ہیں.
ہم جا رہے ہیں لگتا ہے کوئی زیادہ 4 ملین کورس کیا
ایک int میدان ٹھیک ہے.
ہم بھی اس کے نیچے سکڑ کر سکتے ہیں
لیکن خلائی سستا ہے تو جو واقعی پرواہ ہے.
لیکن، ہم کوشش کر رہے ہیں ، اب فیس بک لکھنا
ایک بری چیز نہیں ہو سکتا بڑی ints کے اندازہ کرنے کے لئے
ہماری 64 بٹ ints کے دے گی جس
لیکن اس وقت آپ لفظی ہیں بٹس کی تعداد میں دوگنا اضافہ
آپ استعمال کر رہے ہیں، تو معمولی tradeoff
لیکن کچھ غور کرنے کے لئے.
اب، یہ ایک مبہم ہے میراث بھی ویسی ہی بات.
آپ کو یاد کر سکتے مائی ایس کیو ایل کا استعمال کرتے ہوئے کی طرف سے
آپ کو ایک int اعلان ہے کہ کسی بھی وقت میدان آپ اکثر ایک بڑی تعداد نظر آئے گا
10 نمبر کی طرح اس کے لئے اگلے.
اس کے ساتھ کوئی تعلق نہیں ہے تعداد کے سائز کے
یا بٹس کی تعداد.
اس تعداد کے ساتھ کیا کرنا ہے استعمال کیا جاتا ہے حروف کی
ڈسپلے ضعف پر کہ INT میدان
ایک ٹرمینل ونڈو کا استعمال کرتے ہوئے.
تو ہم ایک لمحے میں دیکھ سکتے ہیں کہ.
تو، نہیں گمراہ کیا جائے تعداد ٹائپ کرکے
وہاں اگرچہ میں مؤثر طریقے سے ہم سے پوچھے
یہاں ایک کے لئے.
یہاں، میں جا رہا ہوں آگے بڑھو اور اہستاکشرت کا کہنا ہے کہ.
اپشج کرنے کی کوئی وجہ نہیں ہے ہمارے منفی نمبروں کی تمام
کے بعد سے ڈیٹا بیس عام طور پر کی جا رہی ہے
مثبت فرض اقدار یا شہوت انگیز null.
ID ضرور شہوت انگیز null نہیں ہونا چاہئے.
اور آپ کے بارے میں کیا سوچتے ہیں اس ID فیلڈ کے لئے انڈیکس؟
یہ بنیادی بنا دو.
لہذا، اگر کیا، اگرچہ، جیسے میں کر سکتے ہیں صرف ایک CS164 کورس کے بارے میں سوچ
ہارورڈ میں اور صرف ایک ہارورڈ میں CS50 کورس
اور اس خوبصورت ہے زیادہ سے زیادہ حقیقی مجموعی طور پر
مستثنیات شاید ہے کہ [اشراوی] سیمسٹرز کا اعلان دونوں
یا اس طرح کچھ عجیب.
لیکن بنیادی طور پر، کیوں یہ بہتر ہے
کرنے کے لئے ایک عددی لازمی ID استعمال کرنے کے لئے منفرد کورس کی شناخت کے بجائے
صرف ایک منفرد سٹرنگ سے؟
جی ہاں؟
[اشراوی تبصرہ]
ٹھیک ہے، دلچسپ.
ہم قسم کی تھی تو اگر کورس پار درج.
تو یہ ایک اچھی مثال ہے.
مجھے یقین نہیں ہوں کہ اگرچہ حل کرنے
ان کے ایک ہی دینے کی طرف سے شناختی نمبر ہے تو
تم اس کے ساتھ جا رہے تھے، جہاں.
کوئی؟ ٹھیک ہے. لیکن یقینی طور پر ایک غور کرنے کے لئے کونے کے کیس.
کی طرح ہے تو - ہم نے کچھ قسم کی ضرورت ہے
کے ممکنہ طور پر لقب دینا.
[اشراوی تبصرہ]
اس بات کا یقین.
[اشراوی تبصرہ]
یہ ایک اچھی مثال ہے.
نام پر تبدیل کر سکتے ہیں وقت، مکمل طور پر مناسب.
اور کیا؟
[اشراوی تبصرہ]
معذرت، پھر سے کہنا.
[اشراوی تبصرہ]
جی ہاں، بالکل.
تو واقعی، ہے اصلی clincher ہے
ایک 32 بٹ INT کا استعمال کرتے ہوئے ہے شاید تیزی سے جا رہا
کچھ متغیر سے لمبائی چار میدان.
پہلی صورت، کر سکتے ہیں لفظی، ایک رجسٹر میں فٹ
زیادہ سے زیادہ ذکر نہیں چھوٹے میموری کے زیر اثر.
مؤخر الذکر صورت میں، آپ جا رہے ہیں ریزورٹ کرنا پڑے [صوتی]
تار آپس میں موازنہ کرنے کے لئے جو خود میں لکیری کے ساتھ
کے سائز میں ممکنہ طور پر سٹرنگ.
تو، یہ صرف ایک اچھی بات ہے کی اصلاح،
اور خاص طور پر چل رہا ہے
ہم سے کہا جاتا ہے کیا کرنا ہے کرنے کے لئے زیادہ مؤثر طریقے سے سے گفتگو
صرف ایک لمحے میں.
تو یہ کرتے ہیں.
ہم وضاحت کریں گے یہ بنیادی ہے
میں نہیں، خاص طور پر کیونکہ دیکھ بھال یا سوچنے کے لئے چاہتے ہیں،
کیا تعداد کے بارے میں ایک کورس کی ہے.
ان پر ڈالیں وہ چاہتے ہیں جو کچھ بھی اقدار.
میں آٹو اضافہ کہنے جا رہا ہوں تو میں نے اس تفصیل آاٹسورس کر سکتے ہیں.
پرممکن ہے کہ آپ ایک طرف میں جانتے ہیں کہ ہارورڈ
کم از کم منفرد ہے کورس کے لئے تعداد.
مجھے کوئی یاد ہے اس کورس کیا ہے.
میں جانتا ہوں کہ CS50 کی ہے کہ کیٹلوگ نمبر، 4949 ہے
مکمل طور پر صوابدیدی.
لیکن عجیب ہے اس میں کونے کے مقدمات بھی
registrarial ڈمپ میں کورس کیٹلوگ ڈیٹا،
پرانے کبھی کبھی کورس، کورس 4 کی طرح ایک بڑی تعداد ہے.
لیکن تکنیکی کہ میدان ایک چار میدان ہے
کہ صرف 0004 سے شروع ہوتا ہے.
تو یہاں بھی، آپ کے لئے ہے فرق کے بارے میں ہوشیار
ایک طرح چیزوں کے درمیان کورس کیٹلوگ نمبر
کچھ انسانی ہو سکتا ہے جس میں مقررہ لمبائی، 0004 کے تصور،
اور آپ کو محفوظ نہیں کیا جانا چاہئے کہ ایک ints کے میں مثال کے طور پر.
میدان کے اس طرح ہونا چاہئے دوسری جگہوں پر ذخیرہ کیا جائے.
لہذا ہارورڈ میں، ہم تھے اصل میں ایک کورس بنانے
خریداری کے آلے کے، ہے شاید کافی نہیں
تعداد کورسز صرف 1، 2، 3، 4 کے ساتھ.
ہم شاید لئے جا رہے ہیں
ایک اور میدان ہے کرنے کے لئے کیٹلوگ نمبر کہا جاتا ہے،
یہ بھی سمجھا جاتا ہے کی بنیاد پر منفرد ہونا
انسانی کنونشن پر لیکن یہ سب سے اچھا انتخاب نہیں ہے
ایک منفرد شناخت کے لئے کی وجہ سے یہ متغیر کی لمبائی ہو سکتا ہے.
یہ چار نہیں ہو سکتا حروف، پانچ ہو سکتا ہے.
اصل میں، مجھے لگتا ہے کہ چند سال پہلے وہ منتقل
وہاں پانچ حروف 'کی وجہ سے سے زیادہ 999 کورس کے تھے
میں کل یا کچھ اور طرح کہ، یا 9،999 کورس.
تو، کہ ایک مثال کے طور پر ہو سکتا ہے میدان بنیادی نہیں ہے جہاں
لیکن یہ منفرد ہونا چاہئے.
اور ای میل ایڈریس ایک ہے.
آپ اس منفرد ہونا چاہتے ہو
لیکن ضروری نہیں کہ آپ بنیادی کلید.
ٹھیک ہے.
تو مجھے ایک اور باہر پھینک دو اس سے زیادہ تیزی سے میز.
تو میں نے اس کو فون کرنے جا رہا ہوں ایک انسٹرکٹر اور میں جا رہا ہوں
یہ ایک کل دینے کے لئے دو کے کالموں کی تعداد.
میں جاننے کے لئے جا رہا ہوں، میرا آخری وقت سے سبق.
میں نے فون کرنے کے لئے جا رہا ہوں پہلے کالم کی شناخت.
میں نے فون کرنے کے لئے جا رہا ہوں دوسرے کالم کا نام.
میں نے بھی Varchar کرنے جا رہا ہوں.
میں کوئی فرض کرنے جا رہا ہوں پروفیسر اب ایک نام ہے
60 حروف سے زیادہ، اگرچہ اب یہ زور دے رہے ہیں ہو سکتا ہے
کچھ طویل ناموں، خصوصی کے ساتھ مشرق کے نام کے ساتھ لوگوں کے.
آج کے لئے ٹھیک ہے.
تو یہاں سکرال.
پھر اس اہستاکشرت ہیں.
یہ بنیادی بنا دو.
اور ہم نقل ناموں کی اجازت دے گا
اس معاملے میں دو جان ہے سمتھ کی یا اس طرح کچھ.
اور اب ہم دو میزیں ہے.
تو اب، اس جنم لیتا ہے میں شرک کس طرح سوال
کورس کے ساتھ انسٹرکٹر میں؟
میں قسم کی طرح محسوس کرتا ہوں خود سے آگے ہے
کیونکہ اگر ایک انسٹرکٹر ایک کورس سکھاتا ہے،
میری پہلی سنتیں گے اصل میں واپس جانا ہو
کورس کے، اس کا احساس کرنے کے لئے ایک اچھا خیال نہیں تھا.
مجھے اصل میں ایک کالم شامل ہیں ٹیبل کے آخر میں،
چلیں کو کلک کریں، اور میں کروں گا اس انسٹرکٹر کال.
اور میں اس varchar بنا دیں گے اور میں نے اس 60 بنا دیں گے.
اور شاید میں اب، شہوت انگیز null چھوڑ دیں گے
اس معاملے میں بالکل نہیں ہے انسٹرکٹر میں اہستاکشرت گیا
کبھی کبھی اس سے پہلے ہوتا ہے مدت محفوظ شروع ہوتا ہے اور پر کلک کریں.
ان ڈیزائن میں سے کون سا آپ کو ترجیح دیتے ہیں؟
ہم ہے جہاں سب سے پہلے ایک علیحدہ انسٹرکٹر کی میز
یا دوسرے جہاں ہم صرف کورس ایک کھیت میں شامل کریں؟
تو یہ ایک بہت قریب سے منسلک ہے کورس کے ساتھ انسٹرکٹر.
[اشراوی تبصرہ]
ٹھیک ہے. اچھا. لیکن مجھے واپس دھکا ہیں.
اس طرح میں کر سکتے ہیں تو آسان ہے صرف اس شخص کے نام میں ٹائپ کریں
اس کے ٹیبل میں، ضرور کی طرح کچھ کی قیمت ہے - یا؟
[اشراوی تبصرہ]
ٹھیک ہے.
اچھا، مجھے یہاں مشکل ہو.
تو مجھے کہتے ہیں کہ اس کورس CS51 ہے
اور میں نے اسے سکھایا ہے جانتے ہیں دو لوگوں کی طرف سے اس سال.
تو، ہینری Leitner اور یشی اچھا لیکن -
تو میں صرف ایک کوما ڈال دیں گے دونوں کے درمیان، حق.
میں بہت اچھا ہوں پرانے سے CSV.
[اشراوی تبصرہ]
بالکل ٹھیک، صحیح.
جیسے ہی آپ کو حربے کے طور پر کچھ اس طرح کرنے کے لئے،
جس محسوس ہو سکتا ہے مناسب اور آپ کو محسوس ہو سکتا ہے
کی طرح اس قسم کی ہوشیار ہے.
میں قسم کی ایک قرض رہا ہوں اچھی طرح سے کام کرنے کے لئے ہے، جس کا خیال ہے،
ایک نیا خیال قرضے لینے اور کی طرح ان کو جمع.
آپ کی طرح کے مکمل طور پر شکست دے رہے ہیں ڈیٹا بیس کا استعمال کرتے ہوئے کے نقطہ نظر
پہلی جگہ 'راہ میں اگر اقدار میں سے ایک
کا استعمال کرتے ہوئے کی اس تیزی سے تلاش ہے کیونکہ مختلف اشاریہ جات کی
اور میزیں کہ کر سکتے ہیں آپ کے لئے بنایا جائے
ڈیٹا بیس کے انجن خود کی طرف سے.
اب، آپ کو تلاش کرنے کے لئے چاہتے ہیں تو کورس کی سب کے لئے
یشی سکھاتا ہے، اب آپ کے پاس تمام کے ملاپ کے substring کرتے
انسٹرکٹر شعبوں کے،
جس میں مؤثر طریقے سے لکیری مطلب آپ کے پاس وجہ 'دوبارہ تلاش
اس صوابدیدی سیٹ کو تلاش کرنے کے تین حروف کہیں کا
پہلے انسٹرکٹر میدان میں
شاید بعد کے اندر اندر کوما کی طرف سے.
تو یہ ضرور اچھا شگون نہیں ہے.
تو مجھے واپس میز پر جانے.
مجھے آگے جانے دو کورس کے، کہ توڑنا.
میں صرف جا رہا ہوں آگے اور اس میدان چھوڑ.
اور آپ چاہتے ہیں تو دستی طور پر کیا،
نحو ALTER میز ہے کورس کے انسٹرکٹر کے ڈراپ.
تو آگے جانے اور اس کے لئے جی ہاں کا کہنا ہے کہ.
اور اس سے پہلے خیال کے لئے واپس جانا
میں ایک الگ ہے جہاں اساتذہ کے لئے میز.
لیکن اب یہ ایک چھوٹا سا لگ رہا ہے جیسے میں ایک کورس ڈال کر سکتے ہیں
کورس کی ٹیبل میں اور انسٹرکٹر
انسٹرکٹر ٹیبل میں لیکن مجھے کسی نہ کسی طرح دو سے منسلک کرنے کی ضرورت ہے.
اور تم کس طرح کرے گا ہم ایسا تجویز؟
[اشراوی تبصرہ]
اچھا. تو یہ کرتے ہیں.
اور تم اس کو فون کر سکتے ہیں نظریہ کسی بھی چیز میں ٹیبل.
میں نے جان بوجھ جا رہا ہوں کیا ایک بہت کہتے ہیں
فریم ورک کے گے اسے فون، ان کے درمیان،
آپ کو تھوڑا سا میں نظر آئے گا کے طور پر Laravel.
میں نے کورس کو فون کرنے جا رہا ہوں انسٹرکٹر کرتے ہیں.
اس میں واحد کا استعمال کرتے ہوئے الفاظ میں سے ہر ایک کے لئے کیس
اور تمام کم کیس پھر، بھی اور کے ساتھ -
پھر حروف تہجی بائیں سے دائیں کرنے کے لئے حل.
یہ مکمل طور پر صوابدیدی ہے لیکن یہ ایک کنونشن ہو جاتا ہے
یہ فریم ورک زمانہ کی ایک بہت میں دیگر زبانوں میں پی ایچ پی میں.
میں کس طرح بہت سے کالم کی ضرورت ہے یہ کیا ہم ایک میز کے ساتھ شامل ہونے کو فون،
دو دیگر شامل ہونے کے لئے ایک دوسرے کے ساتھ کی میزیں؟
تین کالم؟
جس میں سے ایک ہیں - وہ کیا ہو گا؟
[اشراوی تبصرہ]
ٹھیک ہے. اچھا. یہ کام کرتا ہے.
اور ہم تکنیکی طور پر کر سکتے ہیں یہاں ایک کونے لیکن بہت کاٹ
خاص طور پر فریم ورک کے اب بھی ان قطاروں دے گی
منفرد شناخت اگرچہ semantically قطار
ہم واقعی پرواہ یا یہ کہ ہم واقعی پرواہ ہے کالم
کے بارے میں کے بعد دو ہیں تم نے کیا کہا، کورس کی شناخت
اور انسٹرکٹر کی شناخت.
تو ایسا کرنے دو.
میں اس صف صرف ID فون کروں گا ہم نے پہلے کیا تھا.
لیکن میں جا رہا ہوں، اس میں سے ایک کورس ID فون کرنے کے لئے.
میں جا رہا ہوں یہ ایک انسٹرکٹر ID کال.
اور میں کرنے جا رہا ہوں کہ تمام کی وضاحت
ان میں سے اہستاکشرت ہیں 'میں چاہتا ہوں کی وجہ سے
میرے 4 زیادہ سے زیادہ ارب INT رینج.
ان میں سے کوئی بھی، شہوت انگیز null ہونا چاہئے.
میں وضاحت کرنے کے لئے جا رہا ہوں شناختی اب بھی بنیادی ہونا چاہئے.
اور پھر، یہ ہے صرف ایک کنونشن،
فریم ورک کی ایک بہت آپ کو ترتیب دیں نہ بھی ہو تو
کی بنیادی ضرورت صف کے لئے منفرد شناخت،
یہ اس کے لئے آسان ہے باہر کر دیتا ہے کوڈ، جا رہا ہے کہ ایس کیو ایل
خود کار طریقے سے ہو جائے گا ہمارے لئے پیدا.
تو میں نے بنیادی طور پر اس کو چھوڑ دیں گے.
لیکن اب، میں اس قسم کی ایک ڈیزائن کے فیصلے ہے،
کورس ID اور انسٹرکٹر کی شناخت.
کیا اشاریہ جات اگر کوئی ہے تو وہ حاصل کرنا چاہئے؟
میں کوئی اشاریہ جات کو چھوڑ دیں گے تو، مطلب کیا ہے؟
ایک مطلب کیا ہے؟
پہلے کی کارکردگی، ٹھیک ہے؟
کوئی انڈیکس ہے تو، آپ کر سکتے ہیں سب سے بہترین قسم ہے
کے [اشراوی] کے ذریعے کے لئے تلاش کر پوری بات.
تو ہے کہ ہوشیار محسوس نہیں کرتا.
یہ بنیادی ہونا چاہیئے؟
تو کیوں نہیں؟
کیوں نہیں بنیادی؟
[اشراوی تبصرہ]
کامل. تو ہم رول باہر [صوتی] بنیادی.
ہم نے پہلے ہی کہ انتخاب کیا ہے.
تو، یہ منفرد ہونا چاہئے؟
[اشراوی تبصرہ]
اچھا. تو، تو آپ فرض کورس کے مطابق ایک انسٹرکٹر،
بالکل ٹھیک.
اور یہ یقینی طور پر ہے عام کیس
لیکن ہم نے پہلے سے ہی ایک بند کر دیا شاید واقف مثال کے طور پر.
CS51 دو اساتذہ مل گیا تو ہم قسم کے ہیں
اب اس صورت میں مصیبت میں.
ہم اجازت دیتے ہیں کیا تو صرف ایک انسٹرکٹر،
ہم اصل میں ایک طرح سے کر سکتے ہیں مکمل طور پر ٹیبل میں شامل ہونے کے، کے ساتھ
پہلے نقطہ نظر پر واپس جانا
اور اس شخص کا نام نہیں ڈال شاید لیکن انسٹرکٹر کی شناخت.
آپ کے طور پر ہر کورس جانتے ہیں ایک انسٹرکٹر آپ کر سکتے ہیں صرف
ایک کالم.
لیکن تبورتنییتا ہے کیا مصیبت میں ہمیں.
ٹھیک ہے.
تو، یہ منفرد ہونا چاہئے؟
نمبر مکمل متن نہیں ہے لاگو محسوس.
ہے کہ اس سے پہلے ہم نے کہا کہ
جیسے substring کے لئے وضاحت کے لئے ملاپ.
تو کیا انڈیکس کے بارے میں؟
ٹھیک ہے، انڈیکس شاید ہے ہماری سب سے بہترین امیدوار
ایس کیو ایل کی اصلاح بتاتا ہے اس کی تلاش کے لئے
یا میرے وضاحت کرتے ہیں، تلاش کے لئے کو بہتر بنانے یا شامل ہو جاتا ہے
ہم صرف ایک لمحے میں نظر آئے گا کے طور پر
وہ ایک ہیں تاکہ تھوڑا زیادہ موثر
خالصتا لکیری کسی بھی چیز سے.
میں آٹو کرنا چاہتے ہیں اس میدان دھیرے؟
تو نہیں، کیونکہ سچ والدین عنصر موجود ہے
کورس 'کے ٹیبل میں.
یہ ہے جہاں ہے پلس حاصل کرنے کے لئے جا رہا،
اس کے علاوہ یہ اصل میں ہے جب داخل.
یہاں، یہ سب ہو رہا ہے دستی طور پر داخل ہو
ہم شاید کوڈ میں کی طرف سے.
تو بس وضاحت دو اس کورس کی شناخت دونوں
اور انسٹرکٹر کی شناخت کے اشاریہ جات ہے.
اب ہم آگے بڑھیں اور بچانے کے کریں گے.
اور اب، صرف دکھانے کے لئے آپ کو خط و کتابت
ایک اچھا کیا ہے کے درمیان GUI کے دوستانہ انٹرفیس
اور کمانڈ لائن انٹرفیس.
مجھے آگے جانا ہے اور کرتے ہیں یہ مائی ایس کیو ایل فوری طور پر مندرجہ ذیل.
میں استعمال courses50 کہنے جا رہا ہوں
صوابدیدی نام جو میں اس ڈیٹا بیس کو دے دیا.
اور اب، میں بھی نہیں ہم نے کیا کیا یاد ہے.
تو مجھے شو کی میزیں ٹائپ
اور عام طور پر وقف ناقص کا یہاں آپ کی دوست ہو جائے گا
استفسار ختم کرنے کے لئے.
اور وہاں ہے.
تو یہاں بلکہ قطار یا ہم یہاں ہے کہ میزیں.
اب، میں بھول کیا ایک کورس، کی طرح لگتا ہے
تو مجھے کورس کی وضاحت کرتے ہیں اور اب میں قسم کی ایک ASCII دیکھ
یا جو کا ایک ورژن phpMyAdmin کے کر رہے تھے
اور میں نے ID ایک int ہے دیکھتے ہیں کہ.
کہ 10 ہے.
اس کا کیا مطلب ہے؟
یہ صرف کا مطلب ہے کہ یہ ہے جب اسے لے جا رہا ہے ظاہر
10 حروف پر ٹرمنل ونڈو.
یہ nullable ہے؟
نہیں، یہ بنیادی کلید ہے.
یہ ایک طے شدہ قدر ہو سکتا ہے؟
خاص ہے جس کی تعداد اور اضافی آٹو اضافہ کی طرح پرچم.
تو صرف ایک جوڑے کرتے ہیں یہاں سے فوری اضافے.
میں جا رہا ہوں کرنے کے لئے - صرف کا کہنا ہے کہ.
کی ایک سلائڈ کے لئے ریاست تبدیل
میں قسم کی جہاں پہلے سے تیار اس.
یہ ایک خلاصہ تو ہے ان کے ٹیبل کے تمام تین.
میں نے پہلے ہی صرف دستی طور پر پہلی کمانڈ ٹائپ.
اور یہاں، میں آگے چلے گئے اور آپ کے لئے دوسروں کو ٹائپ کریں.
یہ صرف ساہتیک سٹائل بات.
عام طور پر، بہت سے لوگوں کو تمام بڑے حروف میں SQL بیانات ٹائپ
اور اس کے بعد میز کے نام اور کم کیس میں میدان کے نام،
اگر صرف اس کی وجہ سے سٹینڈ کی قسم
آپ اصطلاح ہے کیا اور ڈیٹا بیس کے نحو کیا ہے.
تو یہاں ہم تین ہیں میزیں، کورس کے، اساتذہ،
اور کورس کے اساتذہ.
سلائڈ میں میں، پہلے میں بنا دیا میں نے ID میدان نہیں تھا
لیکن یہ اصل میں نہیں ہے بالکل ایک بری بات.
ہم صرف ایک دیکھیں گے وہاں تیسرے کالم.
میں یہاں کہ کیا کیا تھا؟
تو اب مجھے تجویز کرتے ہیں کہ ہم اضافے کا ایک گروپ ہے.
تو یہاں کچھ معلومات ہے، مجھے اندر زوم گے
تو میں نے تجویز کرنے جا رہا ہوں کورس میں،
ہم صرف تین کورسز کے ساتھ نمٹنے.
اور میں ان تینوں کا انتخاب وہ نمائندہ ہیں وجہ
کچھ اچھا کی - وہ ہے کچھ اچھی خصوصیات.
CS1، CS50، CS51، وہ اضافہ کی شناخت ہے
لیکن کیا گیا ہے مکمل طور پر غیر متعلقہ ہے.
وہ صرف حکم ہے جس میں وہ مجھ سے آٹو داخل کیا گیا تھا.
کس طرح کے اساتذہ کے بارے میں؟
تو اب، کیونکہ ہینری Leitner ، CS1 اور CS51 دونوں سکھاتا
یہ ایک موقع کی طرح ہے ہمارے ڈیزائن کے لئے نہتارت.
اور یشی CS51 سکھاتا اور MALAN CS50 سکھاتا ہے.
تو اب - یا بلکہ یہ ہیں صرف ان لوگوں کی منفرد شناخت.
اور نصاب اور اساتذہ کے، - کورس کے اساتذہ، یہاں پر نوٹس.
کورس ID1، جس CS1 سکھایا گیا تھا
انسٹرکٹر ID1 کی طرف سے ہینری کون ہے.
کورس ID2، جس میں CS50 سکھایا گیا تھا لگتا ہے
انسٹرکٹر ID2، کی طرف سے MALAN جو.
اور پھر آخر میں، CS51، اور ہم دو قطار ہے محسوس.
میں شامل کیوں اور اب یہ ہے ٹیبل سکھایا جاتا ہے طاقتور ہے
ہنری اور یشی دونوں کی طرف سے.
تو یہ، سب ٹھیک اور اچھا ہے
لیکن میں بمشکل ہی کر سکتے ہیں سب سے اوپر یاد
میرے سر کے جو یہاں ہے.
کس طرح آپ کر سکتے ہیں ہو سکتا ہے کوڈ میں اس کے ساتھ نمٹنے کے،
کرنے کے لئے بغیر مشکل کوڈ ہے؟
ٹھیک ہے، یہ ہے جہاں SQL خود ہے ہمارے دوست بننے کے لئے شروع ہوتا ہے.
اور میں تجویز کرنے جا رہا ہوں ہم مندرجہ ذیل ٹائپ کر سکتے ہیں.
میں اس کروں گا اصل فوری طور پر.
مجھے جانے دو آگے اور ان چیزوں کو داخل.
تو، کورس ٹیبل میں کی ہم نے بالکل وہی جو کرتے ہیں ایک
پہلے لمحے.
میں، آگے جا رہے ہیں اور کا کہنا ہے کہ رہا ہوں کی CS1 اور CS50 داخل ہیں.
کی چند داخل ہیں قطار میں ایک بار، CS51.
اب، مجھے آگے جانا ہے اور آپ کو بچائے.
ٹھیک ہے، تو میں صرف ہوں کے طور پر فوری طور پر تخلیق
میں تعلقات کر سکتے ہیں ہم صرف سکرین پر دیکھا.
اور تو یہاں ہم نے Leitner، یہاں ہم MALAN ہے.
کی خود دے ایک اور قطار، اور اچھا.
اب مجھے اس کو بچانے.
اور میں نے جان بوجھ کر ان کر رہا ہوں اسی ترتیب میں.
نہیں، میں دینا بھول گیا یہ خودکار اضافہ.
مجھے فوری طور پر اس کو ٹھیک کرتے ہیں.
میں اس کو ٹھیک کر لیں گے آن لائن کوڈ.
یہی وجہ ہے کہ ایک طرف ایک ناکام رہے.
حقیقت یہ ہے کہ میں نہیں کر سکتا Leitner اور MALAN داخل
میں نے نہیں کیا کیونکہ اچھا، میں ناکام رہے اگرچہ ایک شناختی نمبر
یہ ایک اور مجھے توقع ہے آٹو اضافہ چیک کرنے کے لئے بھول،
جس میں وہ سب کے سب تھے مطلب پہلے سے طے شدہ صفر ہو رہی ہے کی طرف سے.
لیکن یہ تو مخالف ہے جس میں ہم مخصوص ہے کہ جائیداد.
بنیادی کلید کی خلاف ورزی ہوئی تو یہ بھی ایسا ہونے نہیں دیا.
تو مجھے اسے درست کریں.
اب، مجھے واپس جانے دو یہاں ٹیب داخل کریں اور وضاحت
میں Leitner، MALAN چاہتے ہیں اور، ایک قطار، اچھا.
اور اب آخر میں، صرف ایک چھوٹی سی مشکل ہے کہ ایک
یاد کرنے کورس ہے انسٹرکٹر.
اب داخل ہیں کہ کورس ID1 انسٹرکٹر ID1 ہے
تو ہے کہ CS1 اور ہنری.
کورس ID2 انسٹرکٹر ہے CS50 اور MALAN ہے جو ID2.
اور پھر ہم آخری ہیں کے بارے میں فکر کورس ID3 ہے
CS51 ہے، جو پڑھایا جاتا ہے
کورس کے انسٹرکٹر کی طرف سے 1، ہینری ہے.
اور تین کے طور پر بھی سکھایا کی طرف سے 3، اچھا جو.
تو امید ہے کہ اب ہم اس recreated ہے -
ارے، میں ایک ہی کام کیا.
کورس کے انسٹرکٹر آٹو اضافہ کی ضرورت ہے.
ٹھیک ہے.
میں، اس تیزی سے اس وقت کروں گا کورس 1، کورس 1، 2، 2.
اور اب آخر میں، ہم CS51 کرتے ہیں جو کہ کورس کی ID3 اور ہینری ہے.
اور کورس ID3 اور یشی.
یہ اچھا لگتا ہے.
ٹھیک ہے. تو اب، واپس جانے ٹرمنل ونڈو.
میں نے وضاحت تو اگر کورس کے ہم اس کو نظر آئے گا.
میں کر سکتے ہیں کے کورس کو دیکھنے کے لئے چاہتے ہیں تو اب، کورس سے سٹار منتخب کرتے ہیں
نیم بڑی آنت، اور اب ہم ان اقدار کو دیکھنے کے.
اور اب، کیا اور مجھے کیا کرنا چاہتے ہیں؟
اساتذہ کی طرف سے سٹار منتخب کریں، مجھے امید ہے کہ،
اور کورس سے سٹار منتخب کریں - کورس کشید انسٹرکٹر.
تو کس طرح میں اب شامل ہے ان کی میزیں؟
تو منتخب کیا ہے کی خوبصورتی اس طرح کی شناخت اقدار ہے
کہ آپ کے بارے میں کیا سوچتے ہیں کورس کی میز لے
اور انسٹرکٹر پھر میز اور داخل
آپ میں ان دونوں کے درمیان میں دماغ کے کورس کے استاد
آپ کی قسم کے مطابق کر سکتے ہیں کی میز ان کی شناخت کالم کے سب
آپ میں ضم تاکہ سب ہے کہ ایک بڑے پیمانے پر کالم
معلومات کے ہم کے بارے میں پرواہ.
اس کے لئے SQL نحو ، ضروری واضح نہیں ہے
لیکن ہم ایسا کر سکتے ہیں چلو دیکھتے ہیں اگر.
کورس سے تو منتخب کریں سٹار،
اور چند راستہ نہیں ہے ہم یہ کر سکتے ہیں کے طور پر.
میں صرف کرنے کے لئے درج کریں مارا جا رہا ہوں اچھی طرح سے فارمیٹ چیزوں کی قسم،
لیکن اس تیر کے نشان پر صرف ایک ہے کلائنٹ سائڈ کے آلے کے علامات،
اس کے لئے کچھ بھی نہیں ہے SQL خود کے ساتھ کیا.
کورس سے تو منتخب کریں سٹار.
اب میں شامل ہونے کے لئے جا رہا ہوں کورس کی میز
کورس کے استاد کی میز پر.
کس طرح؟ کہا جاتا میدان courses.id برابر کورس
انسٹرکٹر کشید نام کیا ہے ڈاٹ
اسی میدان کے یہاں میں ایک جوڑے کے چاہتے ہیں.
یہ ID نہیں ہے.
It's - کیا، معاف کیجئے گا؟
>> کورس کی شناخت.
ٹھیک ہے، مجھے باہر زوم.
لیکن میں لینے کے لئے چاہتے مزید یہ ایک قدم.
اب میں نے یہ کیا ہے میز اور اس میں سے ایک.
اب میں ھیںچو کرنا چاہتے ہیں اس کے ساتھ ساتھ میں اس آدمی.
تو، مزید مجھے اس پوری چیز میں شامل
انسٹرکٹر پر کیا ٹیبل؟
کورس کشید instructor.instructor ID
instructors.id برابر.
تو ہم نے لکھا ہے کر سکتے ہیں چند طریقے میں اس کے سوال.
میں نے ایسا کیا ہے جس میں حکم تمام ہے کہ ضروری نہیں ہے.
میں صرف کی قسم میں نے یہ کیا کی طرف سے میرے ذہن میں بائیں سے دائیں.
ہم نے یہ کیا ہے ہو سکتا ہے کچھ مختلف طریقوں سے
لیکن میں اب ہے تو نیم بڑی آنت اور درج کریں مارا،
میں ایک نیا واپس حاصل کرنے کے نوٹس عارضی ٹیبل، ایک نتیجہ کے سیٹ
تو ڈیٹا بیس بات میں بات کرنے کے لئے.
اور مجھے کیا ہے اس بات میں؟
میں کی شناخت، ایک نام، ایک دوسرے پر ہے بردوست کی طرح ہے جس کی شناخت،
اس وقت میرے لئے، ایک کورس کی شناخت،
ایک انسٹرکٹر کی شناخت، شناختی، اور نام.
تو، دن کے آخر میں اب ہم صحیح اعداد و شمار ہے.
میں CS1 سکھایا ہے کر سکتے ہیں Leitner کی طرف سے، CS51 پڑھایا جاتا ہے
Leitner اور اچھا، اور کی طرف سے CS50 MALAN کی طرف سے سکھایا جاتا ہے.
لیکن میں نے کے بارے میں تھوڑا نروس ہوں میں نے پیدا کیا ہے اس ابہام.
ابہام کیا ہے میں بلواسطہ تبصرہ کر رہے ہوں؟
جی ہاں؟
[اشراوی تبصرہ]
تین ID کالم ہے.
تو ہم اصل میں اس کو ٹھیک کر سکتے ہیں اور ہم اصل میں جا جا رہے ہیں
ہمارا فریم ورک کے لئے ملتوی کرنے بالآخر اس کے ساتھ ہمیں مدد کرنے کے لئے،
لیکن یہ ہے کہ وہاں باہر کر دیتا ہے کے نام SQL میں ایک مطلوبہ الفاظ کی،
آپ کو ایک وضاحت کر سکتے ہیں، جہاں عرف، ایک فیلڈ کے لئے ایک نیا نام
ہم اس سے بچنے کے لئے کر سکتے ہیں تاکہ مکمل طور پر ابہام.
لیکن احساس ہوا ہے کہ ہم نہیں کرتے ہیں تو ساتھ کے طور پر کسی نہ کسی طرح اس سے نمٹنے کے
اس مطلوبہ الفاظ یا ایک فریم ورک،
یہ ممکنہ طور پر ہے ابہام اگر تم کوشش کرو
شناختی میدان تک رسائی حاصل کرنے واضح طور پر ہیں کیونکہ وہاں
وہاں نقل ناموں کے ساتھ.
تو یہ ایک میں شامل ہے اور مجھے لگتا ہے کہ آپ کے دماغ کی آنکھ میں سب سے بہتر طریقہ
واقعی اس کے بارے میں سوچنا دو میزیں لینے کے لئے ہے،
میں، ان لائن آپ چاہتے ہیں کہ جس طرح.
اور یہ ایک نام نہاد ہے اندرونی احساس میں شامل
ہم کو ملا رہے ہیں یہاں میزیں.
دیگر اقسام کی ہیں ہم کا سامنا ہو سکتا ہے شامل ہو جاتا ہے
کی طرح وقت کے ساتھ ساتھ بیرونی، شامل ہو جاتا ہے
لیکن یہ سب سے زیادہ حصہ کے لئے شاید سب سے زیادہ عام ہے
ڈیٹا کی تعمیر نو کے لئے.
کیا اب ہم نے کیا کیا ہے عام طور پر کیا جاتا ہے
آپ کے ڈیٹا معمول، تاکہ کہیں کوئی نقل نہیں ہے
آپ کے ٹیبل میں.
اور تخلپی کی طرف سے، میں کروں گا کہ سب سے پہلے نقطہ نظر کا مطلب ہے.
ہم Leitner ذکر کیا تھا تو اور ایک سے زیادہ مقامات میں اچھا
آپ کے ڈیٹا بیس میں، ہے کہ نہیں ہے عام طور پر سب سے بہتر فیصلہ
خاص طور پر اگر ان کے نام پر طاقت اضافی یا کیس میں تبدیل
شادی، شادی سے پہلے کا نام قوت کے آپ کو صرف ایک چاہتے ہیں خود کو تبدیل
کچھ کے لئے وہیت جگہ ایک نام کی طرح کے اعداد و شمار کی قیمت.
ٹھیک ہے.
تو، recap کرنے کے لئے، ہم نے کیا ہے ایک بنانے کے لئے چند ڈیزائن کے فیصلوں
اور سب سے زیادہ اہم ہیں شاید کچھ کم
اشاریہ جات کے ان کے انتخاب کی.
لیکن مجھے باہر کی طرف اشارہ کرتے ہیں ایک دوسری بات یہ ہے کے ساتھ ساتھ.
میں، واپس phpMyAdmin کے جاتے ہیں
ایک خصوصیت آپ نہیں ہو سکتا سامنے ہے کا سامنا کرنا پڑا ہے
مندرجہ ذیل.
میں کورس کے استاد کے پاس جانا ہے، میں نے پہلے ہی وضاحت کی تھی کہ کچھ
ان چیزوں کے اشاریہ جات ہے.
لیکن میرے ساخت جانے کورس کے انسٹرکٹر کے ٹیب.
آپ کے وزٹرز کا اشاریہ جات پر کلک کریں اور مندرجہ ذیل نوٹس.
میں یہاں بیان کیا ہے ایک بنیادی کلید ہے
ID کہا جاتا کالم پر.
یہ ایک کسی حد تک پیچیدہ ہے cardinality کی وضاحت کی راہ
اور وغیرہ پر محمول بائٹس میں میدان کے سائز.
لیکن اب میں بھی ایک اور ہے میدان، ہے جو کہ کورس کی شناخت، -
کیا ہے جو کہ کورس کی شناخت پیشگی اور منفرد، ٹھیک ہے.
میں اس سے کیا ہمارے لئے آگے بڑھانے کے.
تو، یہی وجہ ہے - مجھے چھوڑ دو اس بحث کی خاطر کے لئے.
اوہ، آپ نے کیا کیا؟
ٹھیک ہے. تو، پہلے، ایک ایک GUI کے آلے کا استعمال کرتے ہوئے کے خطرات
اس طرح، جب ہم تھے اس کے ٹیبل میں شامل ہونے کی تشکیل،
کورس کے استاد کی میز، میں نے وضاحت کی ہے کہ یاد
میں ایک انڈیکس چاہتے ہیں یہ میدان
اور اس پر ایک انڈیکس دوسرے میدان.
کی طرف اثر ان باکس کے دونوں کی جانچ پڑتال
ایک ہی سکرین پر ہے phpMyAdmin کے کہ سے inferred،
میں چاہتا ہوں کہ دو علیحدہ اشاریہ جات،
میں شامل ہونے کے انڈیکس چاہتے ہیں کہ جس میں عام طور پر صرف مددگار ہے
تم یا جب سب سے زیادہ مفید ایک میدان نہیں تلاش
لیکن ان شعبوں کے دونوں.
ہم نے اور اس وجہ سے انہیں وہاں conjoin
تو میں نے وجہ سے گرا دیا ہے میں نے ارادہ کیا نہیں تھا.
بلکہ، میں جا رہا ہوں یہاں پھر سے کرنے کے لئے.
میں نے کورس کی شناخت کرنے کے لئے جا رہا ہوں
اور اس سے زیادہ کے تحت مجھے صرف انڈیکس میں شامل کہنے جا رہا.
اور میں نیچے جا رہا ہوں انسٹرکٹر ID اور انڈیکس میں شامل ہے.
اور اب ہم، یہاں کلک کریں اگر ہم تین اشاریہ جات ہے نوٹس،
ایک بنیادی اور میں ہر ایک کے لئے ایک کا ارادہ
ان غیر ملکی چابیاں کی.
اور میں نے اس غیر ملکی کی وجہ سے کال اس ٹیبل کے نقشے میں کورس کی شناخت
جس میدان میں، صرف ہو کرنے کے لئے دوسرے ٹیبل میں، صاف.
ID کہا جاتا ہے بنیادی کلید، میں کورس سے ملاقات کی میز،
اور ایک دوسرے کے لئے ایک ہی سودا.
لیکن اب، ایک دلچسپ ہے ٹرک اور واقعی تکنیک.
میں نے صرف آگے چلے گئے اور مجھے کہ ایک چھوٹی سی زیادہ آہستہ آہستہ کرنا.
ایک ہی سکرین میں، نوٹس یہ یہاں تعلق دیکھیے کہتے ہیں.
میں اس پر کلک کریں اور اب میں محسوس چند رکاوٹوں کرنے کے لئے حاصل کرنے کے لئے.
تو، upsides میں سے ایک بھی
کی conceptually کا استعمال کرتے ہوئے نہ صرف غیر ملکی چابیاں اور دیگر میزیں
جیسا کہ ہم صرف پر ہے کہ ایک انڈیکس وضاحت کی طرف سے
ان پر آپ کر سکتے ہیں ڈیٹا بیس کی مدد آپ سے بھی زیادہ
سالمیت کو یقینی بنانے اس میدان کے.
خاص طور پر، اب میں کر سکتے ہیں اس کمی کے ذریعے کی وضاحت
نیچے جو کہ کورس کی شناخت کے میدان
اس کے ٹیبل میں اصل نقشے پر courses.id پر.
اسی طرح، انسٹرکٹر کشید ID instructors.id پر مائچترت.
اب، کیوں اس مفید ہے؟
ٹھیک ہے، دائیں، نوٹس اب ظاہر ہوتا ہے ہاتھ کی طرف.
اب مجھے سکھا سکتے ہیں ڈیٹا بیس ہے کہ اگر ہنری
مثال کے طور پر کبھی سیوانیورت اور ان کی صف غائب
انسٹرکٹر میز سے مکمل طور پر اس طرح کیا جا رہا ہے
خارج کر دیا، میں نے اس کے ذریعے کر سکتے ہیں نقطہ نظر کو یقینی بنانے کے جھرن کاری
وہ سکھاتا ہے کسی بھی کورسز ہیں اب کوئی اس کے ساتھ منسلک.
میں نے ڈیٹا بیس کو سکھا سکتے ہیں قطار کو حذف کرنا
اس نام نہاد شامل ہونے کے ٹیبل میں خود کار طریقے سے ہنری تو اگر ایک
ان کے کورس کے غائب.
اب، یہ کیوں مجبور ہے؟
جی ہاں؟
[اشراوی تبصرہ]
تم صرف ایک بار کرنا ہے اور طویل مدتی، ٹھیک ہے؟
یہ بہت آسان ہے کی طرح ہے اگر لوگ آتے اور جاتے، کورس آئے
اور، جانے آپ کے ڈیٹا بیس کر سکتے ہیں صرف کورس کے ساتھ littered ہو
اور اساتذہ کے ساتھ کوئی ہیں اعداد و شمار کے سیٹ کے لئے طویل متعلقہ.
اور آپ کے ڈیٹا حاصل کرنے کے لئے شروع ہوتا ہے ، بہت گندا اور گندی اور باسی
اور تو یہاں ہم حل کر سکتے ہیں
کے کچھ نافذ ان پابندیوں کے.
جی ہاں؟
[اشراوی تبصرہ]
یہ اس کی راہ کی طرف جانتا ہے.
یہ سکرین ہے جہاں ہم ایک تعلق کی وضاحت کر رہے ہیں
غیر ملکی چابی کے درمیان اور بنیادی کلید.
تو نام کے تمام میں alluded کنونشن
پہلے صرف کنونشن ہیں.
کوئی موروثی معنی ہے.
اس کی سکرین ہے صرف مفید ہے جو
آپ کے اشاریہ جات پر وضاحت کے بعد ان شعبوں میں سے ہر ایک ہم نے کیا.
اور اس کے ڈراپ ڈاؤن کے لئے ہم نے مثال کے طور پر چند چیزیں
ایک کورس آپ کر سکتے ہیں خارج کر دیا جاتا ہے تو اصل میں اس کی منسوخی کی روک تھام
ہونے سے اگر وہاں اس کے ٹیبل میں ایک قطار ہے
صرف یہ کہہ کی طرف سے محدود.
دوسرے الفاظ میں ہنری ریٹائر نہیں کر سکتے ہیں
ہم اس decouple تک CS51 اور CS1 سے.
تو یہ ایک اچھی بات ہے.
لیکن یہ متحرک کر سکتے ہیں آپ کے کوڈ میں غلطیاں
آپ کو اس کا اندازہ نہیں ہے تو، یا ہم ایک جھرن کر سکتے ہیں،
پسند کرنے کے لئے اسی طرح کی ایک جھرن جھرن کاری سٹائل شیٹس
اور جھرن کاری آبشار کا مطلب ہے کہ ایک ہے -
ہنری تو سیوانیورت ہیں - خارج کر دیا حاصل کرنے کے کی طرف سے
تو یہاں ان کی صف گے خارج کر دیا ہو.
کوئی کارروائی نہیں کچھ بھی نہیں یا شہوت انگیز null کا مطلب قسم کی مفید ہے اگر آپ کی قسم
کے کچھ تاریخی ریکارڈ چاہتے ہیں ہنری CS51 سکھایا کرنے کا،
لیکن آپ صرف یہ ہے کہ میدان میں کرنا چاہتے ہیں شہوت انگیز null ہو تو وہاں لائنیں
لیکن یہ اب کوئی نہیں ہے اس کے ساتھ منسلک.
تو یہ بہت طاقتور ہیں تکنیک ہے کہ آپ کر سکتے ہیں
اور اگرچہ استعمال کرنا چاہئے دلچسپی میں خاص طور پر
اپنے آپ سے آپ کی بچت.
تو مجھے ایک کا ذکر کرتے ہیں یہاں حتمی تفصیلات کے جوڑے،
اجزاء جس کے ساتھ کہ مددگار ثابت ہو سکتا
ہم ڈیٹا بیس کے ڈیزائن کے لئے منصوبہ بندی کے طور.
آپ کو یہ بھی اختیار ہے ڈیٹا بیس کے انجن پر
آپ کو آپ کے کوڈ میں استعمال کرتے ہیں.
آپ کو واقف ہو CS161 آپ کو ہو سکتا ہے -
یا اس سے بھی 61، آپ عام طور پر ہو سکتا ہے فائل سسٹم سے واقف ہونا.
اور چیزوں ہے کی طرح، NTFS اور HFS +
اور X2FS4 [صوتی] اور 3 اور وغیرہ.
مختلف طریقوں سے ہے کی میز پر ڈیٹا محفوظ کرنے کے.
اسی طرح ہیں ڈیٹا ذخیرہ کرنے کے مختلف طریقے
ڈیفالٹ کی طرف سے ایک ڈیٹا بیس میں آلات میں کم از کم
تازہ ترین ورژن کے ساتھ ایس کیو ایل کے.
ہم استعمال کرتے ہوئے کیا گیا ہے NoDB، کہا جاتا ہے ڈیٹا بیس کے انجن،
جس میں ایک کی حمایت کرتا ہے کچھ اچھی خصوصیات.
لیکن ایک عام بھی ہے کہا جاتا MyiSAM اور ابھی تک کسی دوسرے
کہ، استعمال کی میموری ہے ہو سکتا ہے کچھ بھی نہیں ڈال جس کا مطلب ہے
ڈسک پر، صرف رکھنے کے یاد میں چیزوں کو.
سب سے زیادہ حصہ کے لئے آپ کو شاید صرف شروع کر غلط نہیں جائیں گے
NoDB کے ساتھ، لیکن کسی بھی منصوبوں کے لئے اعلی کی شرح کو شامل کرنے کی کوشش کرتے ہیں کہ
مثال کے طور پر اندراج کے، کی طرح تیزی سے لاگنگ کی ایک بہت،
فی سیکنڈ سینکڑوں چیزیں یا چیزوں کے ہزاروں کے.
جب بھی آپ کو ایک ہے جا چیزیں بہت
ڈیٹا بیس میں تو اس قسم کے
کے نچلے درجے کے فیصلے ملوث حاصل کرنے کے لئے شروع.
مکمل متن کی سہولت کے لئے مثال کے طور پر صرف MyiSAM میں کام کرتا ہے
تو اس کا ایک مطلب ہے.
لیکن تم چلو، اس کو یاد کر سکتے ہیں ہم پرواہ کیوں کم از کم حوصلہ افزائی
خاص طور پر NoDB کے بارے میں.
ایک ریس ضوابط عام طور پر کیا مراد ہے؟
ٹھیک ہے، یہ ایک ہے ایک مثال کے طور پر کیونکہ اشارہ کچھ
آپ کو میں نے سنا ہے ہو سکتا ہے گزشتہ سال چاہے وہ 161 یا 50
آپ کو ایک روممیٹ ہے جہاں، تم دونوں واقعی، دودھ کی طرح
تم میں سے ایک کھل جاتا ہے سب سے پہلے گھر جاتا ہے کوئی دودھ ہے فرج یا،
میں فرج یا واک بند CVS سڑکوں اور حاصل
لائن میں کچھ دودھ خریدنے کے لئے.
دریں اثنا، آپ روممیٹ یہاں واپس آتا ہے.
انہوں نے دودھ پسند کرتا ہے.
فرج یا کھولو اور کوئی دودھ کا احساس.
وہ یہاں اس وقت پر جاتا ہے ، شاید دیگر CVS ذخیرہ.
تیزی سے آگے چند منٹ تم سے بعد میں دونوں واپس آئے اور
آپ کو دودھ خریدا ہے.
ان میں سے ایک اب جا رہا ہے آپ کو نہیں ہے کیونکہ خراب
دودھ کی طرح ہے کہ زیادہ سے زیادہ اور اس حق، ایک مسئلہ ہے؟
تم دونوں کا معائنہ کیا کیونکہ کچھ متغیر کی حالت
اور کی بنیاد پر ایک فیصلہ کیا اس پر اگرچہ ریاست
اس متغیر کی بنیادی طور پر تھا تبدیل ہونے کے عمل میں،
اس پر آہستہ آہستہ یہ لیتا ہے وقت کی رقم
CVS اور کی طرف سے حاصل کرنے کے لئے.
تو کیا پاگل اصلی کی طرح ہے دنیا اس مسئلہ کا حل کیا ہے؟
حق، ایک نوٹ چھوڑ؟
یہ آخری بار ہوا ہے.
ہمیشہ ایک نوٹ چھوڑ یا لفظی بات پیڈلاک.
اور میں نے تالا، کیونکہ کہتے ہیں لے یا CS161 لیا تو،
تالا لگا ایک بنیادی ہے دنیا کے اس قسم میں خیال.
تو دوڑ حالات پیدا کر سکتے ہیں بھی ڈیٹا بیس دنیا میں
اور تم سے ہو سکتا ہے یاد کر سکتے ہیں آپ 50 لیا تو CS50 خزانہ
ہم اصل میں دیا ہے اس کوڈ تفصیلات میں تم لوگ
وقت ہے تاکہ آپ آپریشن تو جوہری کہا جاتا ہے.
آپ کو اس میں، کرنا چاہتے تھے کیس، اسٹاک کا ایک حصہ خرید
اور یہ کہ اسٹاک ہے کچھ خاص علامت.
ہم آپ کی طرح کوڈ استعمال کرنے کے لئے کہا یہ اس کی وجہ سے راستہ کی طرف سے
مصنوعی چابی اپ ڈیٹ پر بنایا گیا ہے جس نحو،
ایس کیو ایل میں آپ کو مؤثر طریقے سے ہو داخل میں یا تو کر
یا اس کے بعد اپ ڈیٹ میں دیکھنے کے لئے منتخب کر رہے ہیں
اسٹاک وہاں پہلے سے ہی ہے.
دوسرے الفاظ میں، میں ینالاگ ایک اسٹاک کو خریدنے کی دنیا
دودھ اور ریفریجریٹر کے ، سب سے پہلے، ہو سکتا ہے
کا ایک حصہ خریدنے سے پہلے گوگل آپ کو منتخب کرنے کے لئے چاہتے ہو سکتا ہے
ڈیٹا بیس سے تمام ڈیوڈ کا مالک ہے کہ گوگل کے حصص
وہ صفر یا اس سے زیادہ کا مالک ہے تو دیکھنے کے لئے.
وہ مالک ہے تو آپ کو دیکھ کر ایک بار صفر یا آپ کے پاس زیادہ سے زیادہ
پھر مندرجہ ذیل کام کریں.
آپ کو ایک ڈالیں کرنا ہے یا تو
وہ صفر 'کی وجہ سے مالک ہیں ڈیوڈ کے لئے کوئی قطار، ابھی تک موجود ہے
یا آپ کو ایک اپ ڈیٹ کرنا ہے کم از کم نظریاتی طور پر اگر آپ چاہتے ہیں
فی صارف ایک صف ہے.
مسئلہ انتخاب ہے حصص کی تعداد
اور پھر اپ ڈیٹ کرنے یا اندراج رکاوٹ پیدا کیا جا سکتا ہے
دوسرے میں کسی اور کی طرف سے خریدنے کے لئے کی کوشش کر کمپیوٹر کے ٹرمینل
یا ڈیوڈ کے کچھ فروخت اسٹاک کے حصص چاہے
اچھے مقاصد کے لئے یا ترتیب بدنیتی پر مبنی مقاصد کی.
جمع کی جا رہی کی طرح ہے آپ روممیٹ واپس ہو جاتا ہے جب
اور ریاست کی جانچ پڑتال کرتا ہے متغیر کی.
تو وقت اس نحو ترتیب کے مناسب تھا جو
CS50 کے لئے، کہ اجتناب مکمل طور پر مسئلہ.
اور یہ صرف اس کے تمام کرتا ہے آپ کے لئے تالا لگا کا جادو،
لیکن اب اس قسم کے ساتھ اس کورس کے لئے منصوبوں کی
جو سب سے زیادہ ہونے کا امکان ہو جائے گا زیادہ پیچیدہ اعداد و شمار کے سیٹ شامل،
آپ کو حاصل نہیں کر سکتے ہیں ہمیشہ اس atomicity.
سب کچھ ہوتا ہے میں ایک بار یا بالکل نہیں
بغیر کسی رکاوٹ کے تو سروچپورن.
اور اس طرح ایس کیو ایل، دوسرے ڈیٹا بیس کے انجن،
تالے کہا جاتا ہے کی حمایت کی چیزیں،
آپ تالا یہ کہہ سکتے ہیں جس کے تحت میز تاکہ صرف ایک دعوت
اور عام طور پر صرف ایک صارف کر سکتے ہیں وقت میں کسی بھی موڑ میں اسے چھو
پڑھنے یا لکھنے کے لئے اور کے لئے تو آپ اسے کھول کر سکتے ہیں.
یہ ایک سے ایک مثال ہے ایس کیو ایل کے اپنے ریفرنسز کی،
جہاں آپ کو ایک بینک کی طرح ہے تو آپ کوشش کر رہے ہیں اس کے اکاؤنٹ
سے رقم کی کٹوتی پر اور پھر پیسے کا اضافہ.
آپ کرنا چاہتے ہیں کر سکتے ہیں اس بات کا یقین دونوں اس بنا
ان چیزوں میں سے ایک دوسرے کے ساتھ ہو
کوئی ہے تاکہ ریاضی کی غلطیاں
اور کوئی نقصان کسی نہ کسی طرح پیسے،.
تالے کے ساتھ مسئلہ ایک ڈیٹا بیس میں ہے لیکن
یہ عام طور پر مطلب یہ ہے کہ پوری ٹیبل بند کر دیا ہے،
جس میں اگر آپ کا مطلب ہے کہ کوشش کر رہے ایک سو افراد
آپ کے بینک کے ساتھ کاروبار کرنے اسی رقم میں آن لائن
وقت میں سے صرف ایک کی ان کے ایک وقت میں جا سکتے ہیں.
پاگل، خاص طور پر ہے جو سرور پر آج کل
آٹھ کورس، 16 ہے کورس کے، ایک بہت بڑی رقم ہے
میموری کی، وہاں ہے کوئی تمام serialized کی وجہ
آپ کے لین دین کے اگر ان صارفین کو جا رہے ہیں
ان کے اپنے قطار کے ساتھ بات چیت کرنے کے.
تو NoDB آپ کو کرنے کی اجازت دیتا ہے چیزوں کو زیادہ ذہین
اور یہ عام طور پر ہو جائے گا آپ کوڈ میں لینے کے نقطہ نظر،
تم سے کچھ کا استعمال کرتے ہیں کے طور پر لین دین کہا جاتا ہے.
اور آپ کو عام طور پر ایسا پی ایچ پی کے کوڈ میں،
روبی کوڈ، ازگر، جو کچھ بھی.
لیکن SQL کوڈ ہے آخر میں، یہ ہے استعمال کیا جاتا ہے
عام طور پر.
آپ کو تو لین دین شروع کریں دو یا زیادہ سوالات کی وضاحت
آپ چاہتے ہیں کہ مکمل طور پر پھانسی
بغیر کسی رکاوٹ کے یا بالکل نہیں.
یہاں تک کہ کچھ نہیں ہو سکتا میں بیانات کو منتخب کریں
یا کچھ مٹائیں یا اپ ڈیٹ.
لیکن اچھی بات یہ ہے کہ ڈیٹا بیس کافی ہوشیار ہو جائے گا
اس بات کا یقین ہے کہ یہ صرف ہے کہ آپ کے وہ اصل میں ہیں قطاروں تالا لگا
اس اپ ڈیٹ میں شامل یا منتخب یا خارج کرتا ہے.
آپ کو قطار کے ہزاروں کے ہے اگر ایسا ہے تو اور آپ کو صرف تین کو چھو رہے ہیں
ان میں سے، صرف یہ کہ اپسمچی ٹیبل کے بند کر دیا جائے گا
ان دوسرے 99 جس کا مطلب ہے صارفین کو ان کی قطار چھو کر سکتے ہیں
serialized کیا جا رہا ہے کے بغیر اور آپ کی طرف سے سست.
دریں اثنا، اس سب سے اچھا ہے لین دین کے پہلو.
وہ ایک میں لین دین کر رہے ہیں ایک فائل سسٹم پر 161 کی طرح محسوس،
وہ ٹرانزیکشنل ہیں
جس سے آپ کو رول کر سکتے ہیں کا مطلب ہے کہ انہیں واپس، آپ ان کو ختم کر سکتے ہیں.
یہ حکم کی طرح ہے یا ڈیٹا بیس کی ایف کنٹرول.
آپ حصہ کو دریافت اگر راستے کے ذریعے تمام
آپ مختلف اعداد و شمار کے آپریشن کے، گولی مار، کچھ غلط ہو رہا ہے.
آپ لفظی پھانسی ایک واپس مختلف SQL سوال کے رول
اور ان کے رجحان کے تمام - تمام آپ کو پھانسی بیانات
آغاز کہہ رہے ہیں کے بعد ٹرانزیکشن غائب
وہ ہوا، کبھی نہیں کے طور پر اگرچہ
ایک حیرت انگیز ہے جس میں طاقتور چیز.
اور ان قسم کے ہیں چیزیں ضرور 50 میں ہم ترتیب
کے قالین کے تحت جھاڑو اور آپ کو صرف قسم کے فرض
کہ سب کچھ ٹھیک ہو جائے گا.
لیکن اگر آپ کو شروع میں ایک بار حقیقی منصوبوں کے بارے میں سوچ
اور حقیقی صارفین اور آپ کے ڈیٹا بیس کی سالمیت،
اس قسم کے ہیں ڈیزائن کے فیصلوں کی
اہم ہونے جا رہے ہیں.