[عزف الموسيقى] DAVID مالان: كل الحق، وهذا هو CS50. هذا هو نهاية الأسبوع الثامن. واليوم، ونحن نبدأ لملء بعض القطع عندما يتعلق الأمر ببناء الأشياء على شبكة الإنترنت. لذلك، نذكر بأن يوم الاثنين ننفق المزيد من الوقت الكثير على PHP، وهو هذه الديناميكية لغة البرمجة التي يتيح لنا الإخراج، من بين أمور أخرى الأشياء، HTML وغيرها من محتوى هذا أننا سوف تريد أن ترى. لكننا لم ينظر حقا في كيفية ونحن في طريقنا لتخزين أي معلومات. في الواقع، أي ما يقرب من ذلك السوبر مواقع مثيرة للاهتمام التي تزورها اليوم يكون نوعا من قاعدة البيانات في النهاية الخلفية، أليس كذلك؟ الفيسبوك يخزن بالتأكيد الكثير من البيانات حول كل واحد منا وGmail بتخزين جميع من رسائل البريد الإلكتروني الخاص بك. وهكذا، العديد من المواقع الأخرى ليست مجرد محتوى ثابت هذا إعلامية. انها ديناميكية الواقع بطريقة أو بأخرى. قمت بتوفير المدخلات، فإنه يقوم بتحديث صفحات لأشخاص آخرين. يمكنك الحصول على الرسائل، التي ترسلها الرسائل، وهكذا دواليك. حتى اليوم، ونحن ننظر عن كثب إلى أسس مشروع عليك أن يغوص المقبل الأسبوع CS50 المالية، التي يجري فعلا أن يكون لك بناء لا شيء في C، ولكن في PHP. موقع على الانترنت التي يتطلع شيئا قليلا من هذا القبيل أن يسمح لشراء وبيع الاسهم التي هي في الواقع الذهاب إلى الاستفادة من الوقت الحقيقي بيانات المخزون من ياهو المالية. وذلك في نهاية المطاف، سيكون لديك وهم لنفسك وللمستخدمين ان كنت فعلا شراء وبيع الأسهم والحصول على الوقت الحقيقي تقريبا التحديثات، وإدارة محفظة، وكلها سوف يتطلب وجود، في نهاية المطاف، وقاعدة بيانات للمستخدمين. لذلك، في الكلمات الخاصة بك، خاصة إذا كنت لا سوبر دراية الكمبيوتر العلم أو قواعد البيانات، ما هل تعرف قاعدة بيانات لتكون في الوقت الراهن، حيث غير تقني؟ ما هذا؟ كيف تصف ذلك إلى الحجرة أو صديق؟ الحضور: (غير مسموع) المعلومات (غير مسموع) DAVID مالان: إذن، قائمة من المعلومات، أو store-- قائمة المعلومات التي قد ترغب في تخزين حول شيء ما، مثل المستخدم. وماذا يكون لدى المستخدمين المرتبطة بها؟ إذا كنت من مستخدمي في الفيسبوك أو جوجل، ما هي خصائص أن كل واحد منا المستخدمين الذين لديهم؟ مثل، ما قد يكون بعض الأعمدة في جدول البيانات التي لدينا ألمح آخر مرة؟ لأن مرة أخرى، يمكنك التفكير في قاعدة بيانات حقا كملف اكسل يتوهم أو جوجل جدول بيانات أو أبل ملف أرقام. لذلك، ما رأيك في عند التفكير في المستخدم؟ ما لديهم؟ ما هذا؟ الحضور: A الاسم. DAVID مالان: A الاسم. حتى إذا كان اسم، مثل، ديفيد مالان سيكون اسم بعض المستخدمين. ماذا لا يكون للمستخدم؟ الحضور: معرف. DAVID مالان: معرف. لذلك، مثل رقم الهوية، مثل هارفارد بك ID الخاص بك أو ييل صافي ID أو ما شابه ذلك. ماذا يمكن أن يكون للمستخدم؟ الحضور: كلمة المرور. DAVID مالان: كلمة مرور، ربما ل عنوان، وربما رقم الهاتف، ربما عنوان البريد الإلكتروني. لذلك، هناك باقات من المجالات، وهذا يمكن نوع من تخرج عن نطاق السيطرة بسرعة بمجرد بدء تحقيق، أوه، دعونا تخزين هذه ودعونا تخزين هذا وذاك. ولكن كيف يمكننا فعلا القيام بذلك؟ ذلك مرة أخرى، والنموذج العقلي لدينا لهذا اليوم ونحن يغوص SQL الفعلي، لغة الاستعلام الهيكلية، هي قاعدة بيانات يشبه هذا. انها الصفوف والأعمدة فقط. ويمكنك أن تتخيل جوجل جداول البيانات أو أي عدد من البرامج الأخرى. ولكن ما هو مفتاح عن الخلية، وهو برنامج قواعد البيانات ونحن في طريقنا للاستخدام، لعلنا بحرية available-- استخدامات الفيسبوك انها وأي عدد من websites-- الآخر قاعدة بيانات تخزن أشياء علائقي. وقاعدة بيانات علائقية يعني واحد فقط أن حرفيا يخزن البيانات في الصفوف والأعمدة. انها بسيطة على هذا النحو. لذلك، حتى شيء مثل أوراكل التي كنت قد سمعت عموما هي قاعدة بيانات علائقية. وتحت غطاء محرك السيارة، فإنه مخازن البيانات في الصفوف والأعمدة. وأوراكل تتهم لكم الكثير من المال للقيام بذلك، في حين أن رسوم الخلية لكم شيئا لنفسه. لذلك، SQL هو سيعطينا لا يقل عن أربع عمليات. القدرة على تحديد البيانات، مثل قراءة البيانات، إدراج، حذف، وتحديث البيانات. وبعبارة أخرى، تلك هي حقا العمليات الرئيسية الأربعة التي سوف تسمح لنا لتغيير الاشياء في تلك الصفوف والأعمدة. الأداة التي سنستخدم اليوم خاصة لتعلم SQL واللعب معها ودعا مجددا PHP MyAdmin. انها أداة على شبكة الإنترنت. مجموع من قبيل المصادفة أن انها مكتوبة في PHP. لكنه سيحتاج لتعطينا الرسومية واجهة المستخدم بحيث ما في وسعنا في الواقع إنشاء هذه الصفوف والأعمدة وبعد ذلك التحدث معهم عن طريق الرمز. لذا، دعونا الآن نبدأ ما اعتقد انه بصراحة نوع العملية متعة بناء النهاية الخلفية من المواقع، الأجزاء التي المستخدمين لا نرى، ولكن بالتأكيد نهتم، لأن هذا ليس في البيانات الذهاب. لذلك، على غرار C و أقل قليلا مثل PHP، SQL أو قاعدة البيانات التي تدعم SQL، لديها أنواع على الأقل هذه البيانات وباقات الآخرين. CHAR، VARCHAR، INT، BIGINT، العشرى، وDATETIME. وهناك ككل باقة من الميزات الأخرى، ولكن دعونا نفعل هذا من قبل على سبيل المثال الفعلي. انا ذاهب للذهاب الى CS50 IDE حيث، في وقت مبكر، لقد تسجيل الدخول ولقد زار أيضا URL ل هذه الأداة تسمى PHP MyAdmin. والمشكلة مجموعة السبعة، ونحن سوف اقول لك بالضبط كيفية الوصول إلى هذه الواجهة كذلك. في أعلى الزاوية اليسرى، تلاحظ ذلك يقول محاضرة. وهذا يعني فقط أن مقدما، أنا خلقت قاعدة بيانات فارغة تسمى محاضرة التي ليس لها جداول البيانات في ذلك حتى الآن. لا يوجد الصفوف والأعمدة. لأن الأولى شيء ونحن في طريقنا للقيام تم البدء في إنشاء الجدول ما يجري لتخزين مستخدمينا. لذلك، على مدى حرفيا هنا إلى اليمين، وأنا أريد أن أقول قاعدة البيانات أريد يسمى الجدول المستخدمين. لذلك، وهذا هو مثل الملف الذي I تريد تخزين كافة البيانات الخاصة بي في. وعدد الأعمدة؟ حسنا، دعونا يبقيه بسيط في الوقت الراهن. أريد فقط أن تخزين مثل اسم المستخدم واسم المستخدم. سنبدأ صغير. لذلك، أريد مجموعه عمودين. وانا ذاهب الى المضي قدما وانقر فوق انتقال. وبعد ذلك، لهذه الأعمدة، ما أنا ذاهب لdo-- إذا كان هذا الانترنت cooperates-- كل الحق، لذلك نحن ذاهبون لمحاولة ذلك مرة أخرى. انا ذاهب الى إنشاء جدول يسمى المستخدمين مع اثنين من الأعمدة، انقر فوق الانتقال، OK. ونحن الآن قد حصلت عليه بسرعة. شكرا لك، جيد جدا. كل الحق، لذلك ما نريد هذه الأعمدة ليتم استدعاؤها؟ لذلك، واحد ذاهب الى أن يطلق اسم المستخدم. لذلك، كل ما أراه here-- واجهة يحصل بصراحة قبيحة قليلا في نهاية المطاف، بمجرد البدء في الكتابة في كل هذه البيانات. ولكن ما هو جميل هو هذا النوع من للمفارقة، أنا خلق الأعمدة، ولكن الأداة لديه بحماقة وضعت لهم في الصفوف حتى أستطيع أن تكوين هذه الأعمدة. لذلك، هناك اثنين من الفراغات هناك تحت اسم. وأحد هذه الحقول I أريد أن يسمى اسم المستخدم، ومجال آخر أريد أن أدعو الاسم. والآن لا بد لي من اختيار أنواع البيانات لهذه الأشياء. لذلك، في حين أن في Excel وجوجل جداول البيانات، إذا كنت ترغب في العمود، لكم حرفيا فقط اكتب اسم أو اسم المستخدم، هاهنا. ربما كنت تجعل من مواجهة جريئة فقط من أجل الوضوح، ولكن هذا كل شيء. لم تقم بتحديد و أنواع الأعمدة. الآن في جوجل جداول البيانات أو إكسل، كنت قد تحدد كيف يتم تقديم البيانات. هل يمكن أن تذهب إلى القائمة تنسيق، ولك يمكن تحديد إظهار هذا علامة الدولار مثل، تظهر هذه مثل قيمة النقطة العائمة. لذلك، فمن مماثل في روح ل ان ما نحن على وشك القيام به، ولكن هذا هو في الواقع أن يجبر البيانات إلى أن يكون نوع معين. الآن، على الرغم من قبل لحظة I وقال هناك أنواع البيانات فقط بضع، هناك في الواقع الكثير كله، وانهم في درجة التحديد متفاوتة. وبوصفها جانبا، ل حتى يمكن أن تفعل أشياء الهوى مثل هندستها التخزين داخل قاعدة بيانات. يمكنك تخزين الأشياء مثل إحداثيات GPS وتجد في الواقع، رياضيا، النقاط التي هي قريبة للآخرين. ولكن نحن في طريقنا لل الحفاظ على هذا السوبر بسيطة وتصل إلى هنا، كل ما يسمى أنواع السلسلة. لذلك، وهنا لائحة من مجموعة كاملة من الخيارات. CHAR، VARCHAR، TINYTEXT، MEDIUMTEXT، LONGTEXT. وانها نوع من الساحقة. ومما يؤسف له، إلى حد ما مفارقة لC، وCHAR ليست في الحقيقة CHAR. إذا قمت بتحديد في قاعدة بيانات هذا النوع بياناتك CHAR، وهذا يعني أن نعم، انها CHAR، لكنها واحدة أو أكثر حرف. وكان لديك لتحديد كم عدد أحرف التي تريدها. لذلك، ما هو نموذجي طول لاسم المستخدم؟ هل هناك حد عادة؟ الحضور: (غير مسموع) DAVID مالان: 16 ربما؟ شيء من هذا القبيل. كما تعلمون، مرة أخرى في اليوم، كان عليه أن يكون ثمانية. في بعض الأحيان انها 16، في بعض الأحيان إنها أكثر حتى من ذلك. وهكذا، وهذا لا يعني تعطيني CHAR واحد. هذا يعني أنني يجب أن تحدد طول هذا المجال، والآن أود أن أقول شيئا مثل 16. وهناك مفاضلة هنا. لذلك، سنرى في لحظة وهذا يعني أن واحد، كل اسم المستخدم يجب أن يكون 16 حرفا. ولكن انتظر لحظة، M-A-L-A-N. إذا كان هذا هو اسم المستخدم الخاص بي وأنا باستخدام خمسة فقط، ماذا تقترحون أن قاعدة البيانات للقيام لأخرى 11 الأحرف التي لقد محفوظة مساحة لل؟ ماذا تريد ان تفعل؟ الحضور: (غير مسموع) DAVID مالان: نعم، فقط جعل كل منهم لاغية. جعلها مسافات. ولكن ربما لاغية، وذلك على الكثير من الأصفار مائل. لذلك، من جهة، لدينا أصبح الآن من أن اسمي يمكن أن يكون هناك أكثر من 16 حرفا. وعلى الجانب الآخر من ذلك هو أنه إذا كان لي اسم طويل حقا أو أراد حقا طويل اسم المستخدم مثل البعض منكم قد يكون الرجال في تلك الكلية أو في Yale.edu، لا يمكن أن يكون واحد. وهكذا في الواقع، إذا كنت قد مسجل من أي وقت مضى لموقع وتحصل صرخ في قائلا كلمة السر لفترة طويلة جدا أو اسم المستخدم الخاص بك وقتا طويلا، انها ببساطة لأن مبرمج، عندما تكوين قاعدة بيانات له أو لها، أن هذا المجال قررت بمدة لا تتجاوز هذه المدة. كل الحق، لذلك ما إذا نشرع في الاسم؟ كم من الوقت ينبغي أن يكون اسم نموذجية للإنسان؟ كيف العديد من الشخصيات، 16؟ انا التخمين وسعنا العثور على شخص في هذه الغرفة حيث كتبها له أو لها أول بالاضافة الى مشاركة اسم أطول من 16 حرفا. لذلك، ما هو أفضل من ذلك، 17؟ 18؟ 25؟ أكبر؟ 30؟ الحضور: (غير مسموع) DAVID مالان: 5000، يا إلهي. لذلك، وهذا ربما لائق الحد الأعلى، نقول. وهنا لدينا نوع من لإجراء مكالمة الحكم. مثل، وليس هناك إجابة صحيحة هنا. لانهائي من غير الممكن تماما، لأننا في نهاية المطاف الذهاب إلى have-- نحن الذهاب إلى نفاد الذاكرة. لذلك، علينا أن جعل دعوة الحكم في مرحلة ما. شائعة جدا سيكون، على سبيل المثال، لuse-- واسمحوا لي أن تحديد CHAR هنا كما before-- 255 كان حرفيا الحد الأعلى على هذا البرنامج قاعدة بيانات منذ سنوات. وهكذا، والكثير من البشر أن أقول فقط، ودفع غرامة. 255 هو الحد. دعونا فقط استخدام الحد الأقصى. وهذا أمر مثير للسخرية إلى حد ما. مثل، إذا كنت تكتب لشخص ما اسم ل200 حرف زائد، يدعو ذلك للسخرية قليلا. ولكن، تذكر أنه ليس ASCII النظام الوحيد للأحرف. وهكذا، لا سيما في الكثير من اللغات الآسيوية حيث هناك شخصيات لا نستطيع تعبير على لوحات المفاتيح مثل بلدي الولايات المتحدة لوحة المفاتيح، وبعض الشخصيات في الواقع يستغرق 16 بت بدلا من ثمانية بت. وهكذا، وهذا في الواقع ليس كل ما معقول أننا بحاجة أكثر الفضاء إذا كنا نريد لتناسب الأحرف أكبر من الولايات المتحدة ذاتها تلك التي تركز قمنا تميل إلى مناقشة. لذلك، نحن بحاجة الى بعض الحد الأعلى. أنا لا أعرف ما هو أفضل واحد، لكن 255 عموما هو واحد مشترك. 25 يشعر منخفضة. 16، 32 يشعر منخفضة. وأود أن يخطئ على الجانب شيء أعلى. ولكن هناك مفاضلة، كما هو الحال دائما. ما هو، ربما، واضحة مفاضلة من حجز 255 حرف لاسم كل شخص في قاعدة البيانات الخاصة بي؟ الحضور: (غير مسموع) DAVID مالان: ما هذا؟ الحضور: (غير مسموع) DAVID مالان: إنها الكثير من الذاكرة، أليس كذلك؟ M-A-L-A-N. لقد مجرد إهدار 250 أحرف فقط لتخزين اسمي دفاعيا، فقط في حالة شخص في فئة له اسم طويل حقا. الذي يبدو وكأنه المقايضة التي لا داعي لها. لذلك، اتضح أن SQL، هذه اللغة قاعدة البيانات، في الواقع تؤيد شيء دعا VARCHAR، أو متغير CHAR. وهذا هو نوع جميل من في أن هذا يسمح لك بتحديد ليس ثابت العرض، ولكن بدلا من ذلك، عرض متغير. وبشكل أكثر تحديدا، ل أقصى عرض للحقل. لذلك، وهذا يعني أن اسم يمكن يكون هناك أكثر من 250 حرفا، ولكن يمكن أن يكون بالتأكيد أقل. وقاعدة البيانات سوف تكون ذكية. إذا لم تضع في M-A-L-A-N، انها لن يؤدي الا الى استخدام خمسة، ربما ستة بايت مثل حرف فارغة زائدة، وليس إنفاق مبلغ إضافي 249 أو 250 بايت دون داع. لذلك، هذا يبدو وكأنه ينبغي لي وقد بدأت هذه القصة. ولكن هناك دائما علاقة تبادلية. لذلك، من جهة، اسم مستخدم لدي المحدد لالثابت ترميز في 16، وربما لم يكن ذلك دعوة الحق، وربما هو، ولكن لماذا لا تستخدم VARCHARs عن كل شيء؟ كان موجودا لسبب ما. لماذا لا تستخدم VARCHARs لكل حقل التي كنت لا تعرف مقدما طول إذا كان يبدو أن هناك شيء عظيم، أليس كذلك؟ استخدام الفضاء فقط بقدر ما تحتاج إلى هذا الحد؟ الحضور: أبطأ. DAVID مالان: الإملاء؟ الحضور: يجعلها أبطأ؟ DAVID مالان: أوه، أنها أبطأ. جيدة، وهذا هو دائما تقريبا الجواب بصراحة. مثل، ما هي المقايضة؟ إما يكلف مساحة أكبر أو يكلف المزيد من الوقت. لذلك، في هذه الحالة، قد يكون أبطأ. لماذا ا؟ الحضور: (غير مسموع) تحديد (غير مسموع). DAVID مالان: جيد. لذلك، قد نذكر من حتى PSED5، ولعب مع نهجكم إلى القاموس، إذا كان لديك ل تخصيص ذاكرة حيوي أو الاحتفاظ تزايد العازلة، التي يمكن أن يكون في الواقع بطيئة. إذا كان لديك لاستدعاء malloc تحت غطاء محرك السيارة، وربما هذا ما تقوم به الخلية، لذلك بالتأكيد يمكن أن يكون عليه الحال. وإذا كنت تعتقد الطريق العودة إلى PSet-- أو حتى أسبوعين، عندما فعلنا اشياء من هذا القبيل البحث الثنائي أو حتى البحث الخطي، واحدة من أشياء لطيفة عن كل كلمة في قاعدة بيانات أو كل كلمة في العمود يجري بالضبط نفس الطول، حتى إذا في مجمله مجموعة من تلك الأحرف فارغة، والتي يمكنك استخدامها وصول عشوائي على البيانات الخاصة بك، أليس كذلك؟ إذا كنت تعرف أن كل الكلمة هي 16 حرفا بعيدا، يمكنك استخدام مؤشر الحساب، وذلك ل الكلام، ويذهب لنا 16، 32، 48، 64، ويمكن أن تقفز فقط على الفور باستخدام الحساب إلى أي من الكلمات في قاعدة البيانات الخاصة بك. في حين لو كان VARCHAR، ماذا لديك بدلا من أن تفعل؟ [رنين الهاتف] لو كان VARCHAR، كنت لا يمكن استخدام الوصول العشوائي. ما لديك للبحث عن أو تفعل؟ نعم؟ الحضور: (غير مسموع) DAVID مالان: انظروا من خلال التتبع whole-- من خلال اللائحة بأكملها تبحث عن ما، على الأرجح؟ أي نوع من قيمة خاصة؟ الحضور: (غير مسموع) DAVID مالان: أبحث لالإنهاء فارغة أن ترسيم فصل الكلمات. ذلك مرة أخرى، والمقايضة، و ليس هناك إجابة صحيحة. ولكن هذا هو المكان، وخاصة عندما تحصل على المستخدمين لتكون كثيرة وتحميل الخاص على الخوادم، و عدد الأشخاص الذين يستخدمون فإنه يحصل عالية، هذه هي في الواقع قرارات غير بديهي. لذلك، يمكننا أن نترك هذه كما هذا، ولكن دعونا انتقل لأسفل إلى اليمين هنا. الآن، وهناك زوجين من الأعمدة حيث لدينا لإجراء مكالمة الحكم. هل يعقل أن تسمح للمستخدم اسم واسم المستخدم الخاص بالمستخدم أو المستخدم الاسم، لاغيا؟ وهذا هو، فقط فارغة. يشعر معنى لها قليلا، لذلك أنا لن تحقق تلك الصناديق. ولكن اتضح في قاعدة البيانات، ويمكن أن أقول لكم، شخص ما يمكن أن يكون اختياريا هذه القيمة. لم يكن هذا العمود أن تكون في الواقع هناك. الآن، هناك هذه القائمة المنسدلة. وتلاحظ ما زلت في الصف الأول هناك، لذلك أنا أتحدث عن اسم المستخدم الآن. واتضح أن قاعدة بيانات، خلافا لمجرد جدول بسيط، لديها ميزات قوية تسمى الفهارس. والمؤشر هو وسيلة للقول قاعدة بيانات مقدما بأنني الإنسان أنا أكثر ذكاء مما كنت. أعرف ما هي أنواع من الاستعلامات، حدد أو إدراج أو حذف أو تحديث، أن قانون بلدي هو الذهاب الى نهاية الأمر القيام على قاعدة البيانات هذه. أريد أن أقرأ الكثير من البيانات. أريد لادخال الكثير من البيانات. أريد أن باستمرار حذف الكثير من البيانات. لو كنت أعرف أنني على وشك أن الوصول إلى حقل مثل اسم المستخدم كثيرا، استطيع ان اقول استباقي قاعدة بيانات، وأنا أعلم أكثر مما كنت، وأريد أن المرسوم الذي يجب عليك مؤشر هذا المجال. حيث فهرسة حقل أو عمود يعني أن قاعدة البيانات مقدما يجب أن تقترض بعض الأفكار من، مثل، الأسبوع أربعة وخمسة وستة من CS50 وبناء فعليا شيء من هذا القبيل البحث الثنائي شجرة أو شيء بصفة عامة تسمى شجرة B ان كنت تعلم في مثل CS124 الدرجة في جامعة هارفارد، فئة الخوارزميات، أو أي عدد من الأماكن الأخرى. قاعدة البيانات وذكية الناس الذين تنفيذه ومعرفة كيفية تخزين هذا الجدول من المعلومات في الذاكرة بحيث عمليات البحث و عمليات أخرى بسرعة فائقة. لم يكن لديك للقيام بذلك. لم يكن لديك لتنفيذ البحث الخطي أو البحث الثنائي أو دمج النوع أو اختيار نوع، أي من ذلك. قاعدة بيانات يفعل ذلك بالنسبة لك إذا كنت تقول ذلك استباقي لمؤشر هذا المجال. ويمكنك أن ترى أيضا، هناك بعض الخصائص الأخرى يمكننا ان نقول قاعدة البيانات لفرض. ما قد يعني إذا اخترت فريد من هذه القائمة، مجرد حدسي؟ نعم؟ الحضور: (غير مسموع) DAVID مالان: نعم، اسم المستخدم يجب أن يكون فريدا. هل هذا شيء جيد أو سيئا ل قاعدة بيانات لموقع على شبكة الانترنت مع المستخدمين؟ يجب أن أسماء تكون فريدة من نوعها؟ نعم، ربما. إذا كان هذا هو ما مجال نستخدمها لتسجيل الدخول، كنت لا تريد حقا أن الناس بعد يشعر نفسه أو نفس اسم المستخدم. لذلك، فإننا يمكن أن يكون قاعدة بيانات فرض أن ذلك أنه الآن في قانون بلدي PHP أو أي لغة، ليس لدي، على سبيل المثال، تحقق بالضرورة يفعل هذا المستخدم موجودة من قبل واسمحوا لي أحدهم عضو جديد؟ قاعدة البيانات لن تسمح شخصين اسمه ديفيد أو Malans تسجيل في هذه الحالة. وبوصفها جانبا، حتى وإن كان هذا القائمة فقط يتيح لك اختيار واحد، فهرس فريد هو واحد هذا فهرسة لأداء بسرعة فائقة، ولكنه يفرض التفرد أيضا. وسوف نعود إلى ما الآخران يعني في مجرد لحظة. وفي الوقت نفسه، إذا ذهبت إلى بلدي الصف الثاني، والذي هو اسم المستخدم، يجب أن أحدد أن الاسم يجب أن تكون فريدة من نوعها؟ لا، لأنك يمكن بالتأكيد have-- هناك أي اثنين ديفيد Malans في هذه الغرفة، على الأرجح. ولكن إذا اخترنا اسما مختلفا، قد يكون لدينا بالتأكيد الاصطدامات. فكر في العودة إلى تجزئة الجداول وما شابه ذلك. لذلك، ونحن بالتأكيد لا نريد لجعل حقل اسم فريدة من نوعها. لذلك، نحن ذاهبون لمجرد ترك كما أن اندفاع، اندفاعة، اندفاعة، لا شيء. وانا ذاهب الى مغادرة كل شيء آخر وحده. في الواقع، فإن معظم هذه الحقول لن يكون لدينا أن نهتم. وعندما أكون على استعداد لحفظ هذا، إذا يتعاون الإنترنت، I انقر فوق حفظ، وجدا، جدا، جدا ببطء لا قاعدة البيانات الحصول على حفظها. والآن سأعود إلى هذا اجهة، والتي باعتراف الجميع، غير ساحق للوهلة الأولى. ولكن كل ما أنا ذاهب الى القيام به هو نقرة على الكلمة المستخدمين في أعلى اليسار. انا ذاهب لترتفع هنا، انقر فوق المستخدمين، وبشكل افتراضي، فإنه نفذت بعض SQL، ولكن أكثر على ذلك في لحظة. هنا مجرد ملخص لما فعلت. ولا داعي للقلق الذي تراه يذكر اللاتينية والسويدية هنا. تلك ليست سوى الافتراضي الإعدادات، لأن الخلية أصلا، أو PHP MyAdmin، واحد من اثنين حدث أن تكون مكتوبة من قبل بعض الشعب السويدي. ولكن هذا لا ينطبق على حالتنا هنا. كل الحق، فلماذا هو كل هذا الاهتمام؟ كما تبين، يمكنني إدراج بيانات في قاعدة بيانات من خلال كتابة التعليمات البرمجية. وأنا والمضي قدما في في الملف الخاص بي هنا، وأنا الذهاب الى المضي قدما في التظاهر مثل السلكية هذا إلى قاعدة البيانات، التي ليس في الوقت الحالي، ولكنها ستستهلك يكون عندما نصل الى مشكلة تعيين سبعة. وانا ذاهب الى المضي قدما و تنفيذ وظيفة تسمى الاستعلام، وسنقدم لكم في مشكلة وضع كود توزيع سبعة، والتي يأخذ وسيطة واحدة على الأقل، الذي هو مجرد سلسلة. سلسلة من التعليمات البرمجية SQL. لذلك، كنت على وشك أن تعلم كيفية إرسال لغة الاستعلام الهيكلية. إذا كنت ترغب في إدراج صف جديد في بلدي قاعدة بيانات لأنه قد قدم شخص ما نموذج لقانون بلدي، وأود أن حرفيا إرسال INSERT INTO المستخدمين التالية الحقول: اسم المستخدم، فاصلة والاسم والقيم، والان انا بحاجة لإدراج شيء من هذا القبيل مالان، والاقتباس، نهاية الاقتباس "ديفيد مالان". والان حتى بالنسبة لأولئك غير مألوفة مع SQL، لماذا أنا باستخدام علامات الاقتباس المفردة داخل هذه السلسلة الخضراء؟ ما قد يكون السبب هنا؟ لاحظ أنا شاركت الاختلاط-لغتين. الاستعلام هي وظيفة PHP، لكنه يأخذ حجة. وهذه الحجة يجب أن تكون هي نفسها مكتوب بلغة أخرى تسمى SQL، لغة الاستعلام الهيكلية. لذلك، كل ما كنت أبرزت فقط هنا هي هذه اللغة تسمى SQL. لذلك، ما هو مع علامات الاقتباس المفردة، كما شيك التعقل سريع؟ استمر. انهم السلاسل. لذلك، الاقتباس، نهاية الاقتباس مالان والاقتباس، نهاية الاقتباس ديفيد مالان هي السلاسل. ومجرد التفكير بشكل حدسي الآن، معرفة ما تعرفه عن C وPHP، لماذا لم أفعل هذا، وأنا عادة التنصيص مستعملة السلاسل؟ لماذا لم أكن أريد أن نفعل ذلك؟ نعم؟ الحضور: (غير مسموع) DAVID مالان: بالضبط. لأنني بالفعل باستخدام التنصيص على الطريق خارج من ذي الحجة إلى وظيفة PHP، أود فقط أن تخلط بين المترجم. انها لن أعرف، هذه يسيران جنبا إلى جنب؟ هل هذه يسيران جنبا إلى جنب؟ هل هذه يسيران جنبا إلى جنب؟ لذلك، أقلب بدلا من ذلك. أو يمكن أن أفعل شيئا من هذا القبيل، اقتباس مائل أو مائل الاقتباس. بصراحة، الذي يبدأ فقط ل الحصول على قراءتها جدا وقبيحة. ولكن هذا من شأنه أن يحقق نفس النتيجة أيضا. لذلك، إذا كان لي أن تنفيذ هذا الاستعلام الآن، دعونا نرى ما سيحدث. انا ذاهب الى المضي قدما الآن وبدلا من تنفيذ التعليمات البرمجية PHP، التي هو المكان الذي سوف يلعب في مشكلة تعيين سبعة، انا ذاهب الى بدلا من الذهاب إلى PHP MyAdmin. وانا ذاهب يدويا للذهاب إلى علامة التبويب SQL، واسمحوا لي أن التكبير في الواجهة. وانا ذاهب للصق في الشيء الذي كتبته فقط. والترميز لون له تغيرت قليلا الآن، لمجرد أن صيغ برنامج الأشياء بشكل مختلف قليلا. ولكن لاحظ أن كل ما قمت به هو قلت، تضاف إلى المستخدمين. لقد المحددة، ثم، في فاصلة فصل قائمة بالأقواس الاثنين الحقول التي أريد أن أدخل، و ثم قلت حرفيا القيم تليها paren آخر، ثم القيمتين أريد أن المكونات في و الآن لحسن التدبير، وسوف أضع فاصلة منقوطة في نهاية المطاف. لذلك، ليس هذا هو C. وهذه ليست PHP. هذا هو الآن SQL، وأنا صقه في هذه الواجهة على شبكة الإنترنت هذا مجرد الذهاب الى اسمحوا لي، وسرعان ما فوق الانتقال، تنفيذ هذا الاستعلام في قاعدة البيانات تشغيل داخل IDE CS50. لذلك هذا امر جيد. لاحظ أن قال صف واحد إدراج، وذهب بسرعة فائقة، 0.0054 ثانية لادخال تلك البيانات. لذلك، يبدو بصحة جيدة جدا. انها إخراجها الاستعلام بلدي بالنسبة لي هنا فقط لرؤيته في نوع من لون مشفرة الإصدار. ولكن الآن إذا كنت اضغط استعراض، لاحظ أنه حتى رغم أن هناك الكثير من فوضى على الشاشة، مائدتي لديها الآن صفين. لذلك، اسمحوا لي أن نمضي قدما ونفعل آخر. بدلا من ذلك، اسمحوا لي انتقل إلى علامة التبويب SQL مرة أخرى. وهذه المرة سوف تضاف شيء من هذا القبيل سوف تسلب واسمه يكون روب بودين. بودين. دعونا انقر فوق حفظ. عفوا، ليس الذهاب. انقر فوق استعراض مرة أخرى، و تلاحظ الآن لدي صفين. لذلك، وهذا هو مجرد وسيلة أكثر تعقيدا طريق الانفتاح جوجل جداول البيانات ومجرد كتابة على التوالي في عمود. ولكن ما هو المفتاح هو أن لدينا الآن بناء الجملة التي لكتابة التعليمات البرمجية بحيث في نهاية المطاف، نستطيع في الواقع القيام ببعض وهذا. أذكر أن يدعم PHP المتغيرات السوبر العالمية. ما هو في الداخل من الدولار توقيع الحصول على تسطير في PHP؟ أخذنا نظرة على واحدة أو مثالين بسيطة. وفي PSet6، أذكر لديك مرحبا نقطة PHP التي تستخدم هذا المتغير. ما يجري هناك؟ أو ما هو؟ A بصوت أعلى قليلا. الحضور: (غير مسموع) DAVID مالان: إنها الثلوج بذرة المصفوفة، التي هو مجرد طريقة أخرى للقول ل مجموعة لديها أزواج قيمة المفتاح. ومفاتيح ليست رقمية. انهم الكلمات أو الجمل. وعلى وجه التحديد، ما هي تلك أزواج قيمة المفتاح؟ من أين أتوا؟ آسف؟ الحضور: (غير مسموع) DAVID مالان: لا؟ أين تلك المفتاح أزواج قيمة تأتي من؟ أقول مرة أخرى؟ ثانية؟ أنا واحد فقط شيء السمع؟ [ضحك] هذا صحيح، نعم؟ الحضور: (غير مسموع) DAVID مالان: نعم، هم تأتي من سلسلة الاستعلام. لذا، إذا كنت الترجيع في وقت ل عندما لعبنا مع جوجل وانتقلنا إلى Google.com مائل بحث علامة استفهام ف يساوي القطط، إذا كان لي أن هاهنا، وإذا نفذت جوجل في PHP، كود PHP ان غوغل كتب سيكون لديك الوصول إلى علامة الدولار تؤكد GET داخل منها هو مفتاح يسمى Q وقيمة دعا القطط التي يمكن استخدامها بعد ذلك تستخدم لإجراء بحث الفعلي مع. لذلك، في الواقع، ما أنا ذاهب ل القيام به الآن هو العودة الى قانون بلدي PHP عليك أن نرى مرة أخرى أكثر من في PSet7. وبدلا من توصيل في ترميز القيم الصلبة التي لا يبدو وكأنه موقع ديناميكي جدا، انا ذاهب الى ان نعطيكم دعابة من ما هو الرمز الفعلي ستفعل. هل وضعت في اثنين علامات سؤال من هذا القبيل. أنا لا أعرف ما هو اسم المستخدم. أنا لا أعرف ما اسم ستكون، لكنني أعرف أنني يمكن الحصول عليها بشكل حيوي. لذلك، إذا كان رمز أننا الكتابة الآن رمز يعمل على خوادم جوجل، أو إذا كان هذا هو مرحبا نقطة PHP، الذي يأتي مع PSet6، انا ذاهب الى تمرير إلى وظيفة الاستعلام تماما مثل printf، واثنين من الحجج الأخرى. GET، الاقتباس، نهاية الاقتباس اسم المستخدم، ويحصل، واقتبس، اسم نهاية الاقتباس. والآن، لاحظ ما الهيكل العام هنا. لقد حصلت على اليسار الجانب الدعوة، تسمى هذه الوظيفة الاستعلام في PHP. لا يزال لدي باعتباره أولا حجة، مجرد سلسلة من النص. إلا أن سلسلة من النص هو مكتوب بلغة دعا SQL. وبصراحة، انها ليست لغة الكبيرة. نحن فقط بصدد الحديث عن رسميا اليوم، حقا. وبعد ذلك في مشكلة تعيين سبعة، وهناك نسبيا بعض الميزات التي نحن الذهاب إلى الاستفادة. علامات استفهام، على الرغم من أن يعني ذلك سد العجز في قيمة هنا والمكونات في قيمة أخرى هنا. والإشعار، لقد أغفلت ما من جميع أنحاء لعنة quote-- it-- حول الاقتباس يصادف هذا الوقت. لقد حذفت الاقتباس علامات حول علامة استفهام، آسف، هذه المرة. لذلك، ما هو الجميل في هذا السؤال ميزة العلامة التي PHP يميل إلى دعم، وروبي الثعبان وغيرها من اللغات، هذا يعني فقط المكونات في بعض قيمة هنا وأنت تعرف لماذا؟ يمكنك معرفة ما إذا كان استخدام علامات الاقتباس المفردة أو علامات اقتباس مزدوجة. لا يزعجني مع تلك تفاصيل رتيبا فكريا. ولكن، تأكد من انها صحيحة بحيث قانون بلدي هو في نهاية المطاف تشغيل وآمنة، والتي سوف يكون لها معنى قبل فترة طويلة. الآن، كم من الحجج مجموع، فقط ل أن تكون واضحة، هي وظيفة اتخاذ الاستعلام؟ أي شخص يريد أن يصوت لأكثر من عقدين؟ ثلاثة؟ بالتأكيد، لماذا؟ لماذا ثلاثة؟ الحضور: (غير مسموع) DAVID مالان: بالضبط. الجزء الأول هو السلسلة. الحجة الثانية هي علامة الدولار تؤكد GET قوس اسم المستخدم. والحجة الثالثة هي نفس الشيء، ولكن مجرد اسم. لذلك وبعبارة أخرى، الآن إذا كان نموذج ويب أن كان لحقول النص، واحد لاسم المستخدم الخاص بالمستخدم، واحد لله أو اسمها، فقط كأنك ترى في الموقع عندما قمت بالتسجيل ل بعض المواقع، وهذا قد يكون رمز على النهاية الخلفية التي في الواقع لا الإدراج الآن في قاعدة البيانات. الآن على النقيض من ذلك، دعونا سريع إلى الأمام. لنفترض أن المستخدم الآن تسجيل الدخول وتريد لكتابة رمز PHP يتحقق ما إذا كان والشخص الذي فقط تسجيل في هو في الواقع أحد المستخدمين، يمكنك استخدام جملة بسيطة جدا. هل يمكن القول SELECT، دعنا نقول نجم، حيث نجمة تعني كل شيء. أنا لا أعرف ما تريد، لذلك فقط أعطني كافة الأعمدة من الجدول دعا المستخدمين حيث، وهذا هو لطيف. اختر يدعم ما يسمى المسند، وهو وكأنه وسيلة للتأهل ما تريد. حيث يساوي اسم المستخدم الاقتباس، نهاية الاقتباس مالان. حتى هنا أيضا، لقد جزءا لا يتجزأ من داخل الحجة إلى وظيفة PHP، سطر من التعليمات البرمجية SQL. وهذا الرمز SQL هذا الوقت يجري حرفيا للبحث عن الاقتباس، نهاية الاقتباس مالان. الآن هذا ليس كل شيء أن من المفيد، لذلك أنا ذاهب لتخطي ذلك وانا ذاهب الى وضع بعيدا هذا غيض من برادي، وتذهب وبدلا من ذلك سد العجز في علامة استفهام هنا. لذلك، لمجرد أن يكون واضحا، ما ينبغي حجتي الثانية يمكن إذا كان شخص ما قد يسجل فقط في وI نريد للتحقق مما إذا كان هو أو هي في الواقع مستخدم؟ الحضور: (غير مسموع) DAVID مالان: نعم. أسمع الدولار علامة تسطير احصل على اقتباس، اسم المستخدم نهاية الاقتباس. والتي يجب أن تعود لي أي من الصفوف في قاعدة البيانات الخاصة بي أن يكون لديك اسم مستخدم من مالان. الآن نأمل، وانا ذاهب للحصول على العودة صفر إذا لم يكن لمالان هنا، أو واحد إذا كان لديه. لا ينبغي لي أن أعود اثنين أو ثلاثة أو أربعة. لماذا ا؟ الحضور: (غير مسموع) DAVID مالان: قلت فريدة من نوعها، أليس كذلك؟ السبب بسيط. لأني قلت انها حصلت ل تكون فريدة من نوعها، تماما منطقيا، هل يمكن أن يكون صفر أو واحد Malans فقط في هذا الجدول قاعدة بيانات معينة. الآن بوصفها جانبا، فقط حتى كنت قد رأيت ذلك، على الرغم من أنني الاستمرار في استخدام GET وعلى الرغم من PSet6 تستخدم فقط GET، هل يمكن أن يكون ما بعد بالتأكيد. وأذكر أن آخر شيء آخر تقنية لتقديم المعلومات من نموذج، ولكنها لا تظهر في URL. انها أكثر من ذلك بقليل آمنة بالتأكيد ل أشياء مثل أسماء المستخدمين وكلمات المرور، والتي سوف PSet7، في الواقع، تنطوي عليها. لذلك، دعونا نفعل هذا في PHP MyAdmin ونرى ما سيحدث. انا ذاهب للذهاب إلى علامة التبويب الخلية. ولاحظ أن القيمة الافتراضية ل PHP MyAdmin، لمجرد أن تحاول أن تكون مفيدة، هو اختيار نجم من المستخدمين حيث واحد. حسنا، هو واحد صحيحا دائما، لذلك وهذا له سخيفة فعالة من مجرد تحديد كل شيء. ولكن انا ذاهب ليكون قليلا أكثر متحذلق ويدويا اكتب من نجمة اختر من المستخدمين. الآن من الناحية الفنية، يمكنك أقتبس اسم الجداول. ومن النادر أن يكون لديك ل، ولكن لاحظ أن هذه ليست نقلت لكم العادية على لوحة المفاتيح الولايات المتحدة. وهذا هو ما يسمى backtick، التي عموما على اليد اليسرى العليا ركن من لوحة المفاتيح. ولكن من النادر أن عليك فعلا بحاجة إلى عناء مع ذلك، ولذا فإنني سوف مجرد حذف منهم على أي حال. وحتى الآن، اسمحوا لي أن المضي قدما وضرب ذهاب. وعدد الصفوف يجب أن أحصل مرة أخرى عند تحديد نجم من المستخدمين؟ الحضور: (غير مسموع) DAVID مالان: عدد الصفوف، بالتأكيد. ولكن كم في هذا قصة ملموسة الآن؟ اثنين، لأن هناك لي، وكان هناك روب. لذلك، إذا كنت انقر فوق انتقال، وأرى أن بصريا لقد حصلت مرة أخرى، في الواقع، صفين. هناك الكثير من الفوضى على الشاشة، ولكن لا أرى سوى صفين. على النقيض من ذلك، إذا كنت تفعل هذا مرة أخرى والقيام نجمة اختر من المستخدمين، حيث اسم المستخدم يساوي الاقتباس، نهاية الاقتباس مالان، والآن إذا كنت اضغط العودة، أنا لن يؤدي الا الى الحصول على العودة صف واحد. وأخيرا، إذا كنت تفعل شيء من هذا القبيل، لنفترض أنني لا يهمني الحصول على كل شيء، الذي هو نوع من معنى الآن، لأن هناك عمودين فقط. انها ليست مثل أنا اختيار كمية هائلة من البيانات. لنفترض أنني والمضي قدما في لا اختيار اسم من المستخدمين، حيث يساوي اسم المستخدم مالان، ما هو لطيف حول SQL بصراحة، غير أنه حقا لا مجرد ما كنت أقول أن تفعله. انها مقتضبة جدا، ولكن لكم حرفيا فقط اقول انه ما تريد القيام به. اختر اسم من المستخدمين حيث اسم المستخدم يساوي مالان. وحقا هو ان صريحة. حتى الآن، إذا أنا ضربت العودة، كم الصفوف أنا ذاهب للحصول على العودة؟ واحدة، لأنه مجرد مالان، ونأمل. أو الصفر اذا لم يكن هناك، ولكن واحدة الحد الأقصى. وعدد الأعمدة سوف أعود؟ عدد الأعمدة؟ هذه المرة، وأنا مجرد الذهاب للحصول على واحدة لأنني لم اختيار النجم الذي هو كل شيء. الآن أنا اختيار اسم فقط، لذلك أنا مجرد الحصول على العودة عمود واحد وصف واحد. ويبدو نوعا من نحو مناسب مثير للسخرية، مجرد النظر السوبر صغيرة من هذا القبيل. لذلك، ما يحدث حقا؟ عند تنفيذ SQL الاستعلام باستخدام حدد، ما الذي تحصل عليه مرة أخرى من قاعدة البيانات هو مثل جدول مؤقت مع الصفوف والأعمدة، ربما، إلا أن حذف أي شيء لم يتم تحديد فعلا لك. لذلك، انها مثل إذا كان شخص كبيرة جدول لجميع الطلاب مسجلة لبعض مجموعة من الطلاب، وأقول لكم، تعطيني كل طالبة الذي قمت مسجل لمجموعة من الطلاب لدينا، ما زميلك في مجموعة من الطلاب قد تفعل وأنها قد يسلم فقط لكم جدول كامل. وهذا مثل قوله اختر نجوم. وانه مزعج قليلا إذا أردت فقط طالبة. ولذا، إذا كنت بدلا من ذلك قال: اختر نجمة من جدول قاعدة البيانات حيث يساوي العام الاقتباس، طالبة نهاية الاقتباس، فهو كما لو أن صديقك في مجموعة من الطلاب أبرز حرفيا و نسخ فقط الصفوف طالبة، لصق عليها إلى Google الجديدة جدول بيانات أو ملف إكسل، وسلمت لكم مرة أخرى على الناتج الملف فقط. هذا كل ما يحدث على المفهوم هنا. حتى في نهاية المطاف، يمكننا أن نفعل بعض الأشياء الفاخرة جدا عن طريق تخزين أشياء مثل أسماء المستخدمين وكلمات السر وغيرها. ولكن، كما تبين، ينبغي لنا أن نفعل بشكل مختلف من هذا القليل. انها ليست ذكية فقط تخزين اسم مستخدم وكلمة مرور. شخص ما في وقت سابق، وأعتقد أن إلى هنا، اقترح معرف. الآن ID يمكن أن يكون مثل ID هارفارد أو ييل صافي ID، ولكنها قد تكون أكثر بساطة في حالة قاعدة البيانات الخاصة بنا. وبالفعل، حالة شائعة هو أن يكون عمود آخر. وانا ذاهب للذهاب قبل وتحرير مائدتي. وإذا كنت يتلاعب هذه الواجهة لPSet7، سترى أن تتمكن من التحقق هذا الزر هنا وإضافة حقل في بداية الجدول. والآن إذا كنت اضغط العودة، انه سيكون أن تعطيني واحدة من تلك الأشكال في وقت سابق من. انا ذاهب لإضافة حقل يسمى ID. وانا ذاهب لجعله نوع عددي. لدي مجموعة كاملة من القيم العددية. أنا مجرد الذهاب لاختيار INT و لا داعي للقلق حول أحجام متباينة. ليس لدي لتحديد طول أو قيمة، لأنه سيكون 32 بت مهما كانت. سمات، لم نكن نرى قبل. أي مصلحة في أي من هذه خيارات القائمة هذه المرة؟ لINT؟ ماذا تقترحون؟ لا؟ هل أي من هذه معنى؟ نعم. نعم، غير موقعة، أليس كذلك؟ عموما، إذا نحن ذاهبون لإعطاء الجميع رقم فريد، الذي حيث هذه القصة الذهاب، وأنا حقا أريد فقط شخص أن يكون عدد مثل الصفر واحد واثنين وثلاثة وأربعة. ولست بحاجة للتعامل مع الأرقام السالبة. يبدو تماما مثل تعقيد لا مبرر له. أريد أربعة مليارات القيم الممكنة، لا أربعة مليارات القيم الممكنة، لذلك أنا فقط ضاعف قدرة بلدي INT. بوصفها جانبا، إذا كنت تريد أن تتصل هذا إلى شيء مثل الفيسبوك، مرة أخرى في نوع من بلدي اليوم عندما الفيسبوك جاء لأول مرة، أعتقد أن ما كانوا استخدام في قاعدة البيانات الخاصة بهم الخلية لتخزين المستخدم المعرف، كان مجرد INT. لكن بطبيعة الحال، هناك الكثير من أناس حقيقيين في العالم. هناك الكثير من وهمية الفيسبوك حسابات في العالم. وذلك في نهاية المطاف، الفيسبوك فاضت حجم من INT، وهو أربعة مليارات القيمة. وهذا هو السبب، واذا نظرتم حول وهناك المواقع يمكن أن أقول لكم ما ID الفريد الخاص بك هو. وإذا كنت لم اختار اسم المستخدم في الفيسبوك، سترى ID الفريد الخاص بك. اعتقد انها PHP دوت الشخصية ID علامة استفهام يساوي شيئا. التي هي الآن شيء من هذا القبيل كبيرة INT، أو طويلة طويلة اذا صح التعبير، الذي هو قيمة 64 بت أو شيء مماثل. لذلك، وحتى في العالم الحقيقي تفعل هذه قضايا في نهاية المطاف يهم في بعض الأحيان. واتضح هنا، إذا أنا إعطاء جميع المستخدمين بلدي هوية فريدة من نوعها، أريد أن أكون صريحا والسوبر الحد الأدنى من جعل هذا المجال فريدة من نوعها. ولكن تبين هناك واحد قطعة من التسميات اليوم أيضا هذا هو المفتاح الأساسي. إذا كنت تصميم قاعدة بيانات الطاولة وكنت تعرف مسبقا أن واحدا من الأعمدة في هذا الجدول يجب وسيحدد صفوف فريد في الجدول، وتريد أن تحديد ذلك ونقول للقاعدة البيانات، هذا هو المفتاح الأساسي الخاص بي. قد يكون هناك تكرارات في مجالات أخرى، ولكن أنا أقول أن هذا قاعدة البيانات هو بلدي الابتدائي وأهم ميدان بلدي، هذا ما يضمن أن تكون فريدة من نوعها. الآن، وهذا يبدو زائدا عن الحاجة. وإنني أقترح الآن أننا إضافة، بالضغط هنا حفظ، وcalled-- الميدان وانا ذاهب المضي قدما وانقر AI، سوف نعود ل أنه في لحظة، وفروا. وإنني أقترح الآن أن مائدتي تبدو هذه. لدي حقل INT يسمى ID، حقل CHAR دعا اسم المستخدم، حقل VARCHAR يسمى الاسم، ولكن ID، اذا كان الأولي، وبالتالي فريدة من نوعها، لماذا أنا فقط النفايات الوقت تقديم ما هي بالفعل ثاني فريدة من نوعها دعا حقل معرف هذا وINT؟ اسم المستخدم، أذكر، كان وقال نحن فريدة من نوعها بالفعل. حتى مجرد منطقيا، لا تحتاج أي خبرة قاعدة البيانات لسبب من خلال هذا، لماذا قد عرضته ل وINT كما بلدي معرف فريد كذلك؟ ما أقول this-- مرة أخرى؟ الحضور: (غير مسموع) DAVID مالان: عشوائية وصول أسهل، لماذا؟ الحضور: (غير مسموع) DAVID مالان: نعم، انها مجرد الحصول على الأرقام. لذلك، إذا كنت تعتقد أن هذا حقا هو الجدول، مثل صفيف، الآن لدي معرفات فريدة أستطيع أن القفز حولها. وأفضل من ذلك لا يزال هو أن كيف كبير هو INT سيكون مرة أخرى؟ 32 بت أو أربعة بايت. كيف كبير هو اسمي سيكون؟ الحد الأقصى؟ 16 بايت. لذا، إذا كنت رعاية حقا عن أداء التعليمات البرمجية الخاصة بك، بذاكرتي إلى PSet5، تفضل للبحث عن قيمة أربعة بايت أو 16 قيمة بايت، أليس كذلك؟ انها حقا بهذه البساطة. ما عليك القيام به أربع مرات كما الكثير من العمل للبحث عن أسماء لأن تلك هي 16 بايت. لذلك، عليك أن حرفيا قارن بين كل 16 بايت لتكون بالتأكيد نعم، هذا هو اسم المستخدم أريد. في حين لINT، يمكنك تفعل ذلك مع بايت أربعة فقط. وبوصفها جانبا لتلك المهتمين في أجهزة الكمبيوتر، اتضح تتمكن من احتواء شيء من هذا القبيل وINT أو قيمة 32 بت في شيء دعا سجل في الكمبيوتر وحدة المعالجة المركزية، مما يعني أنها عظمى، بسرعة فائقة، حتى في أدنى مستوى مستوى الأجهزة في الكمبيوتر. لذلك، هناك مزايا فقط في كل مكان. لذا، ماذا يعني هذا؟ في الواقع، عندما كنت تصميم جدول قاعدة البيانات، وتقريبا كل الوقت أنت ذاهب للا فقط على البيانات التي تهتم بها، ولكن أيضا شيء من هذا القبيل معرف فريد لأن هذا هو الذهاب الى دعونا نفعل أشياء أخرى. ودعونا رحلة أكثر من مشكلة واحدة هنا. لنفترض أن يكون لدى المستخدمين لا مجرد أسماء وأسماء، ولكن لديهم أيضا أشياء مثل المدن والدول ورموز البريدي، على الأقل هنا في الولايات المتحدة. لذلك، انا ذاهب الى المضي قدما وأقول بسرعة، تعطيني ثلاثة أعمدة المزيد في نهاية الجدول. وهذه ستكون مدينة، هذه ستكون الدولة، وهذا سيكون البريدي. الآن أنواع مدينة، ما هي البيانات يجب أن يكون هذا، ربما؟ VARCHAR؟ أنا لا أعرف ما أطول اسم المدينة هو. في مكان ما في أمريكا، هناك ربما بعض كلمة طويلة للغاية، لذلك دعونا اذهبوا مع 255، إلى حد ما تاريخيا أو تعسفية. الدولة، ماذا تريد أن تفعل؟ دعوة الحكم، أليس كذلك؟ ما هو ربما الأكثر كفاءة؟ عدد الحروف؟ ربما اثنين فقط، اذا كنا نستطيع تفلت من مجرد القيام، مثل، MA عن ماساتشوستس وهكذا دواليك. لذلك، وانا ذاهب للذهاب قيمة CHAR من اثنين. الرمز البريدي هو مثير للاهتمام. نحن هنا في 02138، بحيث يقترح علينا أن نستخدم ما؟ انها INT، أليس كذلك؟ INT، INT، باختصار؟ سوف باختصار العمل. لا؟ CHAR أو خمسة، ولكن أريد INT. لماذا ابعاد على INT؟ إقناع لي من ذلك. ما هو غبي حول INT، فكرتي؟ نعم. الحضور: خذ المزيد من الذاكرة. DAVID مالان: خذ المزيد من الذاكرة. أربعة بايت، ولكن كنت اقتراح الرمز البريدي خمسة بايت أو كان شخص ما بأنه CHAR، الذي يشعر وكأنه إيه، وهذا ليس حقا القضية. حسنا، قصة ممتعة. سنوات مضت، عندما اعتدت على استخدام Microsoft Outlook ل البريد الإلكتروني الخاص بي، أنا في نهاية المطاف يريد التحول إلى Gmail. وهكذا، صدرت لي كل من بلدي جهات الاتصال من Outlook كملف CSV. مفصولة بفواصل القيم، مما يعني فقط أنا كان كل أصدقائي أسماء والأخير أسماء وأرقام الهاتف والرموز البريدية وكل ذلك. وبعد ذلك قدم خطأ من فتحه في Excel، وهو برنامج جداول البيانات التي يفهم ملفات CSV كما رأينا. ولكن بعد ذلك، لا بد لي من ضرب، مثل، قيادة أو تحكم S عند نقطة واحدة. وإكسل على ما يبدو في ذلك الوقت كان ميزة حيث أي وقت شهدت عددا، فإنه حاول أن تكون مفيدة. وإذا بدأ هذا العدد مع الأصفار، فإنه سيكون مجرد التخلص منها. لماذا تحتاج الرائدة الأصفار على الأعداد الصحيحة؟ انهم لا معنى له، رياضيا. انهم لا معنى له في نظام البريدية في الولايات المتحدة. لذلك، لقد كان لسنوات I، حتى يومنا هذا، ما زلت لدي أصدقاء أنه عندما حالة نادرة أنني بحاجة لشخص ما معالجة هذه الأيام، أنا لا تزال ترى أن I لديك صديق في كامبريدج، ماساتشوستس، 2138. وانه مزعج إذا كنت محاولة لفرز من برمجيا توليد المغلفات أو مجرد ذرة عليه. وهذا بسبب هذا السبب، اخترت نوع بيانات خاطئة. لذلك، وأنا أحب فكرتك. دعونا استخدام حقل CHAR. خمسة أحرف، ما عدا هناك حالة الزاوية. إذا كنت لا تزال إرسال البريد، الرمز البريدي أحيانا رموز هذه الأيام، انهم، مثل، بالإضافة إلى أربعة. لذلك، نحن بحاجة إلى واصلة ثم نحن بحاجة إلى أربعة أرقام أكثر. ذلك أن نكون صادقين، ما في وسعها يذهب العديد من الطرق المختلفة. في الوقت الراهن، وانا ذاهب للحفاظ على انها بسيطة وأنا فقط أريد أن أقول أنه ل خمسة قيمة CHAR ونحن الذهاب لتخطي اندفاعة كاملة بالإضافة إلى أربعة. ولكن هذه هي أنواع المفاضلات. ويمكنك التفكير في نفس المشاكل الناشئة مع أرقام الهواتف أو غيرها من المجالات. والآن، وهذا هو الواقع طريق الحماقة أن يذهب إلى أسفل. افترض كل من روب وأنا وهانا وماريا و[؟ Davon؟] واندي وغيرهم على جميع الموظفين يعيش في كامبريدج، ماساشوستس، 02138. هذا في الواقع أشعر أنني غبي إضافة إلى بلدي مستخدمي الجدول، المدينة، الدولة، والرمز البريدي. لماذا ا؟ الحضور: (غير مسموع) DAVID مالان: قل مرة أخرى؟ الحضور: (غير مسموع) DAVID مالان: انهم دائما الذهاب إلى يسيران جنبا إلى جنب، أليس كذلك؟ عندما اتضح، كنا نعتقد كان هذا هو الحال حتى وشامل بحثت في الولايات المتحدة كلها، وتبين أن هناك هي بعض التناقضات حيث المدن متعددة لها نفس الرمز البريدي، والذي هو غريب. ولكن، إذا كان لنا أن تنص في الوقت الراهن أن 02138 هو دائما كامبريدج، ماساشوستس، لماذا في العالم سيكون لكم تخزين في قاعدة البيانات الخاصة بك كامبريدج وMA 02138 و بالنسبة لي ولهانا وروب و ل[؟ Davon؟] وبالنسبة للآخرين الذين يعيشون هنا في كامبريدج، انها زائدة عن الحاجة تماما. يجب علينا الابتعاد مع مجرد تخزين ماذا؟ فقط الرمز البريدي. ولكن بعد ذلك، إذا كنا تخزين فقط الرمز البريدي، وأنا لا يريدون، على الأرجح، لموقعي لمعرفة أين هو 02138. لذلك، ولست بحاجة جدول آخر. وهذا موافق. وفي الواقع، وهذا هو واحد من عمليات تصميم الجداول تصميم عليك أن تفعل في PSet7 كذلك حيث تريد عامل من البيانات المشتركة. تماما مثل كنا العوملة من رمز مشترك والعوملة من المشترك أنماط من CSS، هنا أيضا في قاعدة البيانات، إذا كنت بحاجة إلى 02138 فقط لفريد تحديد مسقط لشخص ما، لا تخزن كامبريدج، ماساشوستس لل كل مستخدم الرتق في الجدول الخاص بك. بدلا من ذلك، لديك جدول منفصل يسمى الكود البريدية التي يجب أن يكون ما الأعمدة؟ ربما حقل ID، لمجرد، ل المبادئ التي نتحدث عنها الآن. ربما حقل الرمز البريدي 02138 ل. ثم ربما ما الأعمدة الأخرى؟ المدينة والدولة، ولكن واحدة فقط صف 02138، 02139 صف واحد، صف واحد 90210. وهذا هو حرفيا جميع رموز البريدي أعرف. وحتى الآن، ماذا يمكنك أن تفعل؟ وهذه مشكلة كبيرة، لأن أنا الآن قد حصلت على جدولين. لذلك، المستخدمين بلدي هي في الغالب أكثر من هنا، لكن معلومات حالة مدينتهم هنا. لذلك، اتضح مع SQL، هناك في الواقع وسيلة للانضمام المعلومات، وسترى ذلك في PSET. ولكن اتضح يمكنك تفعل شيئا مثل هذا. نجمة اختر من المستخدمين، JOIN الكود البريدية ON المستخدمين دوت البريدي يساوي الكود البريدية دوت البريدي. الذي هو القليل من الالفاظ، باعتراف الجميع، ولكن هذا فقط يعني حدد كل شيء من عملية اتخاذ بلدي الجدول المستخدمين والجدول الكود البريدية بلدي. الانضمام إليهم في واحد ميدان لديهم في العمود. لذلك، والقيام حرفيا شيئا مثل هذا، وتعطيني العودة جدول مؤقت جديد هذا على نطاق أوسع، وهذا أكبر، التي لديها كل من أعمدة من كل منهما. وأنه، بكل بساطة، سيكون بناء الجملة من أجل القيام بشيء من هذا القبيل. لذلك، لا يوجد هذا في المستقبل، ولكن هناك يجري أن تكون قرارات التصميم الأخرى عليك لديك لجعل، وليس فقط مع الفهارس ولكن تعمل أيضا في التحديات. في الواقع، هناك التحدي في أي تصميم قاعدة البيانات حيث في بعض الأحيان شخصين قد ترغب للوصول إلى نفس الصفوف من قاعدة البيانات الطاولة. لذلك، وهذا هو الشيء الذي سنقوم لقاء في PSet7 كذلك. ولكنني اعتقدت أن ننظر في واحد الهجوم الذي هو ممكن في SQL. ما هي بعض من المشاكل التي يمكن أن تنشأ؟ لذلك، عليك أن تواجه هذه في PSet7. ونقول لكم صراحة ما الترميز حل لهذه المشكلة. ولكن إذا كنت تأخذ فئة مستوى أعلى، خصوصا في أنظمة التشغيل، وأنت تسير لقاء قضية atomicity، مشكلة تحاول أن تفعل أشياء متعددة في وقت واحد دون انقطاع. واعتقدت أن إدخال هذا فكرة PSet7 مع كناية علمت نفسي في مارجو أنظمة التشغيل CS164 سيلتزر ل قبل الطبقة سنوات. لنفترض أن لديك واحدة من هذه النوم ثلاجات في غرفة النوم الخاصة بك أو المنزل، وكان لديك ميل الحقيقي للحليب. وهكذا، جئت إلى البيت من الطبقات يوم واحد، يمكنك فتح الثلاجة. أوه، اللعنة. ليس هناك الحليب في الثلاجة. لذلك، يمكنك إغلاق الثلاجة، قفل الباب، قفل النوم الخاصة بك، المشي قاب قوسين أو أدنى لCVS، في الحصول على الخط، والبدء في سحب بعض الحليب. وانها سوف يستغرق بعض الوقت، لأن تلك الخروج النفس لعنة عدادات تأخذ إلى الأبد لاستخدام على أي حال. لذلك وفي الوقت نفسه، الحجرة الخاصة بك تأتي المنزل. انه أو انها حقا يحب الحليب أيضا. أنها تأتي في غرفة النوم، فتح الثلاجة، أوه، الرتق. لا يوجد المزيد من الحليب. لذلك، وقال انه أو انها أيضا يذهب قاب قوسين أو أدنى. ولكن الآن، لأن هناك مثل اثنين أو ثلاثة أو أربعة CVSes قريب، حدوثها للذهاب إلى واحدة من مختلفة منها في الساحة. وحتى الآن، بضع دقائق في وقت لاحق، كل واحد منكما العودة الى الوطن وهتاف اشمئزاز، أسوأ مشكلة من أي وقت مضى. الآن لديك الكثير من الحليب لأنه سوف تتأزم. وتريد الحليب، ولكنك لا أحب الحليب. وحتى الآن، كان هذا مكلفة خطأ لأن كل واحد منكما اتخاذ قرار على أساس حالة بعض متغير كان في عملية يتم تغييرها من قبلك، البادئ من الذهاب للحصول على الحليب. لذلك، ربما ما هو الإنسان الحل لهذه المشكلة؟ الحضور: (غير مسموع) DAVID مالان: ترك ملاحظة، أليس كذلك؟ دائما ترك ملاحظة، إذا كنت على دراية بأن المعرض. نعم، هناك نوعان من منا. لذلك، يترك دائما ملاحظة، أو قفل حرفيا الثلاجة مع نوع من قفل أو شيء فوق الجزء العلوي من هذا القبيل. ولكن هذا يحدث فعلا أن تكون المشكلة الرئيسية مع تصميم قاعدة البيانات، وخصوصا عندما كنت قد يكون متصفحات متعددة وأجهزة الكمبيوتر المحمولة متعددة، العديد من المستخدمين عن يحاولون تحديث المعلومات في وقت واحد. المعلومات الحساسة على وجه الخصوص مثل المعلومات المالية، حيث مع تداول الأسهم موقع مثل عليك أن تكون بناء، ما إذا كنت ترغب في التحقق من كيفية الكثير من المال لديك وبعد ذلك إذا كان لديك ما يكفي، شراء بعض الأسهم؟ ولكن ماذا لو كان شخص آخر لديه حساب مشترك معكم هو محاولة في وقت واحد لشراء بعض الأسهم؟ لذلك، كان هو أو هي التحقق من رصيد الحساب، كل واحد منكما نعود إلى نفس الجواب، ليس هناك حليب. أو كليهما لكم مرة أخرى الحصول على الجواب، لديك 100 $ في الحساب. كلا منكم محاولة لاتخاذ القرار لشراء سهم واحد من بعض أسهم الشركة. والآن، ماذا يحدث؟ لديك اثنين من الأسهم؟ لا يوجد لديك الأسهم؟ مشاكل من هذا القبيل يمكن أن تنشأ. لذلك، فإننا سوف تواجه ذلك. هجمات حقن SQL، والحمد لله، هي شيء ونحن سوف تساعدك مع، ولكن هذه هي بوحشية شائعة هذه الأيام لا يزال. لذلك، وهذا هو مجرد مثال. أنا لا تدعي أن نظام هارفارد PIN هو عرضة لهذا الهجوم بالتحديد. لقد جربنا. ولكن، كما تعلمون أننا لديك حقل من هذا القبيل. وييل صافي ID لديه مماثلة أبحث الشاشة في هذه الأيام. وكما تبين، أنه ربما يتم تطبيق نظام PIN في PHP. وإذا كان were-- انها not-- أنها قد يكون الرمز الذي يبدو مثل هذا. لديهم اثنين من المتغيرات. تعطيني اسم المستخدم وكلمة المرور من متغير عمومي آخر السوبر التي تحدثنا عنها في وقت سابق. ربما هارفارد لديها استفسار مثل نجمة اختر من المستخدمين حيث أن اسم المستخدم يساوي وكلمة المرور تعادل. وتلاحظ أن أنا فقط توصيله في استخدام التدوين متعرج من الآخر اليوم، وهو ما يعني مجرد سد العجز في قيمة هنا. أنا لا تستخدم ل علامة استفهام التقنية. ليس لدي أي لحظة أو الحجج الثالثة. أنا مجرد حرفيا بناء سلسلة نفسي. المشكلة، على الرغم من أن اذا كان هناك من يرغب في الحصول على scroob، وهي إشارة إلى الفيلم، بتسجيل الدخول مع شيء من هذا القبيل، ولقد إزالة النقاط التي عادة التستر كلمات السر، ما إذا كان الخبيثة لا سيما وكلمة السر الخاصة به ربما هو 12345، في فيلم اسمه "Spaceballs" لكنه حاسم أنواع ل اقتباس واحد بعد خمس سنوات، ثم حرفيا كلمة أو في الفضاء، ثم الاقتباس، واحد يساوي نهاية الاقتباس الاقتباس واحد، لكن لاحظ أنه أغفل ماذا؟ انه حذف الاقتباس على اليمين وانه حذف الاقتباس على اليسار. لأنه إذا كان هذا المهاجم قرينة scroob ل غير أن الناس الذين كتب هذا الرمز PHP لم تكن مشرقة جدا، ربما لديهم فقط بعض واحد يقتبس حول الاستيفاء من متغير في الأقواس المعقوفة؟ وذلك ربما، ما في وسعه النوع من إكمال فكرهم بالنسبة لهم، ولكن في الطريقة التي يجري للسماح له اختراق في النظام PIN. وبعبارة أخرى، لنفترض أن هذا هو رمز ونحن الآن سد العجز في ما scroob كتبته. وانها الأحمر، لأنه أمر سيئ. والنص الأساسي هو ما كتبته في، scroob يمكن خداع الخادم هارفارد إلى بناء استعلام SQL سلسلة يشبه هذا. كلمة يساوي 12345 أو واحد يساوي واحد. النتيجة التي، منطقيا، غير أن هذا سيتم تسجيل scroob في حال كلمة المرور الخاصة به هي 12345 أو إذا كان أحد أنداد واحد، والذي هو بطبيعة الحال دائما صحيحا، وهو ما يعني scroob يحصل دائما في. وهكذا، فإن السبيل لإصلاح هذا، كما هو الحال في الكثير من الحالات، سيكون لكتابة الدفاعية. لاستخدام شيء من هذا القبيل لدينا وظيفة الاستعلام الفعلية، التي سترى في PSet7، حيث أننا سد العجز في شيء من هذا القبيل علامات استفهام هنا. وجمال وظيفة الاستعلام أننا تعطيك هو يدافع ضد هذه ما يسمى هجمات حقن SQL، حيث شخص ما خداع التعليمات البرمجية في حقن له أو لها كود SQL الخاصة. لأن ما وظيفة الاستعلام نقدم لكم سوف تفعل في الواقع، إذا كنت تستخدم بناء الجملة علامة استفهام والثانية والثالثة حجة هنا، ما لم أنه إضافة إلى مدخلات أن المستخدم قدمت؟ ونقلت تلك مائل. لذلك، فإنه يهرب أي يحتمل شخصيات خطرة. هذه تبدو غريبة الآن، ولكنها ليست ضعفا لأنه لا تغيير منطق بعد الآن لأن ذلك كله هو كلمة السر الآن اقتباس واحد هذا ليس، في الواقع، كلمة المرور scroob ل. لذلك، كان هناك بعض النكات حول هذا على مر السنين. لذلك، كان هذا صورة تم التقاطها بعض المهوس في موقف للسيارات حيث يمكنك يمكن أن نعرف أن بعض المدن والدول في محاولة لمسح الترخيص الخاص بك لوحة لفاتورة لك أو لتذكرة لك إذا كنت تمر دون، مثل، الشيء E-Z باس. لذلك، هذا الشخص يفترض أنه ربما الشعب كتابة نظام E-Z ممر لم تكن مشرقة جدا، وربما لأنهم فقط متصلا معا سلسلة، حتى انه أو انها لا يمكن ضار ليس فقط إكمال فكرهم، ولكن في الواقع تنفيذ أمر سيئ، التي كنا لم يذكر حتى الآن، ولكن ربما يمكنك تخمين. أنه بالإضافة إلى حذف و إدراج وتحديث وتحديد، هناك أيضا الكلمة يسمى انخفاض، الذي حرفيا حذف كل شيء في قاعدة البيانات، التي هو سيء للغاية. يمكننا أن التكبير في هذا إذا انها صعبة قليلا لنرى. هذا، الآن، هو الكرتون الشهير هذا هو ذكي رائعة الآن ومفهومة. [ضحك] نعم، بارد. نوع من geeking بها. لذلك فان هذه، إذن، هي هجمات حقن SQL. وانهم من السهل جدا لتجنب باستخدام رمز الصحيح أو المكتبات الصحيحة. وسترى في PSet7، وهذا لماذا نعطي لك وظيفة الاستعلام. لذلك، وزوجين من المضايقون أننا نظن أننا سوف تعطيك هنا في منطقتنا الدقائق المتبقية معا. لذا، وكما تذكرون من الأسبوع الصفر، ونحن أدخلت هذه المصابيح الخفيفة اللذين لطيفة، وليس لمجرد انهم جميلة وملونة، ولكن لأنها تدعم شيء يسمى API، تطبيق واجهة برمجة و في CS50 حتى الآن، لدينا ركزت في معظمها على GET و POST، ولكن اتضح هناك أفعال أخرى مثل HTTP PUT. وفي الواقع، كان هذا شريحة من الأسبوع الصفر حيث إذا كنت كتابة التعليمات البرمجية التي ترسل على غرار PSet6 طلب HTTP التي يشبه هذا مع هذا جزء من النص في الجزء السفلي، وهو ما يسمى JSON، أو جافا سكريبت تدوين كائن أننا سوف نتحدث عن الأسبوع القادم، يمكنك تشغيل أو إيقاف أو تغيير لون أضواء مثل هؤلاء. حتى إذا كان لديها CS50 أيضا بالإضافة إلى بعض تلك المصابيح هنا في نيو هيفن إذا كنت ترغب في الاقتراض منها للمشاريع النهائية، أيضا بعض مايكروسوفت العصابات، التي هي مثل الساعات الذي ترتديه حول معصمك التي لها API بحيث بالمثل لك يمكن كتابة البرامج الخاصة بك بالنسبة لهم. لدينا حساب مع كود أبل دائرة الرقابة الداخلية بحيث أنه إذا كان لديك ووتش أبل أو اي فون أو آي باد أو آي بود، يمكنك كتابة التعليمات البرمجية التي يعمل في الواقع على تلك. لدينا مجموعة كاملة من Arduinos، والتي هي أجهزة الكمبيوتر متناهية الصغر بدون الحالات، أساسا، أنه يمكنك الاتصال عبر USB، عادة الخاصة ماك أو جهاز الكمبيوتر الخاص بك، كتابة التعليمات البرمجية التي يتم تشغيلها على هذه البدنية الأجهزة التي غالبا ما يكون استشعار عليها حتى تتمكن من التفاعل مع العالم الحقيقي. لدينا مجموعة كاملة أجهزة ليب موشن، التي هي USB لأجهزة ماكينتوش وأجهزة أجهزة الكمبيوتر، وهنا مرة أخرى، في نيو هافن. وإذا كنت توصيله إلى جهاز ماكنتوش، يمكنك التحكم في الواقع جهاز الكمبيوتر الخاص بك من خلال كتابة البرمجيات التي عبر أشعة تحت الحمراء، الأرقام من حيث الأيدي البشرية الخاصة بك، حتى دون لمس لوحة المفاتيح. كنا نظن أننا سوف تتقاسم سريعة نلمح في ذلك، على سبيل المثال. [عزف الموسيقى] لذلك، لدينا ككل حفنة من هذه الأشياء، أيضا، دعا ميو شارات الذي وضع أكثر من ساعدك ثم يمكنك التحكم الحقيقي العالم أو العالم الافتراضي مثل هذا. [عزف الموسيقى] أو، لدينا أيضا بعض جوجل من الورق المقوى، الذي هو حرفيا، مثل، صندوق من الورق المقوى كنت قد وضعت على جهاز الوجه، ولكن الشريحة في هاتفك إلى ذلك بحيث يمكنك وضع الزجاج الخاص بك الهاتف قريبة جدا من عينيك. وجوجل هي كرتون رخيصة جدا في 10 $ أو 20 $. ولها عدسات صغيرة أن قليلا قبالة التحول الصورة على الشاشة للتنمية البشرية الخاص عيون لتعطيك إحساسا بالعمق بحيث يكون لديك فعلا 3D البيئة أمامك. لدينا أيضا بعض سامسونج جير، الذي هو إصدار أغلى من ذلك، ولكن هذا يمكن أن تنزلق على نحو مماثل في الروبوت الهاتف وتعطيك الوهم of-- أو إعطاء التجربة الواقع الافتراضي. وفي لدينا النهائية دقيقتين، كنا نظن أننا سوف تحاول أن تفعل هذا. اذا كان يمكنني توقع ما قد كولتون هنا فقط لشحذ شهيتك، اسمحوا لي أن نمضي قدما ورمي على الشاشة الكبيرة هنا. اسمحوا لي أن قتل الاضواء. كولتون، هل تريد المضي قدما ووضع على الخلوي لحظة وتأتي على أكثر من منتصف المرحلة؟ وتريد project-- هذا هو ما ترى كولتون. الآن، وخدمة الواي فاي في هنا ليست قوية جدا لهذا الجهاز أن هذا هو السوبر مقنعة، ولكن كولتون هو حرفيا في هذا المكان السحري مستقبلية. يرى صورة واحدة فقط. كنت ترى عينه اليمنى واليسرى أن دماغه يتم خياطة معا في الأبعاد الثلاثة البيئة على وجهه. انه مجرد اختيار خيار القائمة هنا. وهكذا مرة أخرى، وقال انه يرتدي هذه السماعة مع هاتف سامسونج عليه هذا إسقاط لاسلكيا النفقات العامة لدينا. الآن أنت على سطح المريخ، وأعتقد؟ COLTON: أعتقد ذلك. لست متأكدا (غير مسموع). [ضحك] DAVID مالان: تبين المريخ ديه هذه القوائم. COLTON: (غير مسموع) بعض بارد الأماكن إذا كنا نريد أن يذهب to-- DAVID مالان: أين نريد أن نذهب؟ COLTON: (غير مسموع) DAVID مالان: ودعنا نرى حيث أخذ في كولتون لنا الآن. COLTON: (غير مسموع) DAVID مالان: لذا، هناك الكثير من الأماكن المختلفة التي يمكن أن تتخذ لنفسك. هناك FAPIs عبر التي يمكن أن إرسال ألعاب أو التفاعلات التي تشغيل، في نهاية المطاف، على الهاتف. لذلك، كنت حقا فقط كتابة التطبيق الهاتف المحمول. ولكن بفضل البرنامج وقدرات الرسومات، الآن كولتون في هذا الكوخ الصغير للغاية. وفي خطر الساحقة أنفسنا، كولتون وسوف حول عصا ل وفي نهاية الدرجة هنا اليوم إذا كنت ترغب في الخروج واللعب. ونحن سوف تجلب لهم العودة الأسبوع المقبل أيضا. دون مزيد، اللغط هذا كل شيء لهذا اليوم. سنرى في الأسبوع القادم. [MUSIC - RAGGA توأم، "رجلا سيئا"]