الفرقة Database 1 الثانية قواعد بيانات 1 Lecture 9 مراجعة By DR. Hany Hamdy Hussien 1
Why Databases? اسباب االستعانة بقواعد البيانات مستقلة عن باقى التنسيقات التحكم فى التكرار والحفاظ على تناسق البيانات ضمان االمن و السالمة للبيانات و القاعدة امكانية التوسع فى القاعدة و البيانات السماح بالدخول خاص صيانة افضل للبيانات و القاعدة الحصول على تزامن افضل للتعامل و الكتابة مع اكثر من بيان فى نفس الوقت 2
The Levels of Data in a Database مستوى البيانات فى القاعدة بت Bits حرف Characters حقل Fields سجل Records سجالت لها عالقة Data files Databases طبقة : Example )اعلى ABC Company Address Book Mailing list, Employee list, Vendor list) 4
Disadvantages of Databases عيوب قواعد البيانات معقدة و صعبة و تحتاج لوقت اطول تكلفة البرامج و المعدات االضرار التى تسبها القاعدة بباقى التطبيقات تكلفة التحويل من النظام اليدوى لنظام قواعد الحاجة الى تدريب المستخدمين االخرى البيانات 4
Database Intro مقدمة فى قواعد البيانات البيانات فيها مجموعة من البيانات تكون اكثر من جدول : المرتبطة مع بعضها البعض يوجد عالقات بين هذه الجداول تتكون قاعدة البيانات بجدول أو أكثر يتكون الجدول من سجالت Records ويتكون كل سجل من حقول Fields والتي تخزن تتم معالجتها لتصبح بعد ذلك معلومات محرك قاعدة البيانات Database Engine الحذف اإلضافة البحث التعديل. 3
أهمية قواعد البيانات سرعة الوصول ) سهولة المعالجة الحذف االضافة ( التعديل سهولة االستعالم و الحفظ بشكل منسق ) ( هرمى سهولة التخزين سهولة الربط السرية الكاملة 6
مزايا قواعد البيانات إمكانية إضافة ملفات جديدة إضافة بيانات جديدة على الملفات الموجودة في القاعدة استرجاع بيانات من الملفات تحديث البيانات حذف البيانات من الملفات و إزاحة ملفات خالية يمكن تعديل البرامج دون تعديل البيانات والعكس صحيح يمكن فرض قيود التأمين والسرية على بعض البيانات الهامة إمكانية الحصول على بيانات جديدة من البيانات الموجودة وبذلك تتالفى معظم عيوب بيئة نظم الملفات الملفات. على 7
Legacy (File-based) Systems عيوب الملفات القديمة عدم التحكم بالتكرار تضارب البيانات ضعف مشاركة البيانات صعوبة الحفاظ على التغيرات التنسيقات Record format Vs. user requirements الشكل Programs Vs. record format انتاجية اقل Low productivity تكلفة الصيانة High maintenance cost 8
مكونات نظام قاعدة البيانات 1. المستخدمين / المبرمجين Users / programmers 2. االستعالم Application programs / Queries.3 نظام إدارة قاعدة البيانات DBMS Oracle / DB2 (IBM) / MS SQL Server /MS Access / Ingres / PostgreSQL / MySQL / Power Builder / Informix 4. Database تعريفات البيانات 1. Data definitions قواعد البيانات المخزنة.2 Stored database 9
مميزات استخدام نظم ادارة قواعد البيانات ندرة التكرار و إمكانية التحكم في تكرار البيانات امن و سرية البيانات عالية جدا فرض القيود على المستخدمين الذين ليس لهم صالحيات معينة توفير بيئة تخزين مناسبة و صعوبة فقد البيانات السماح باستنباط معلومات من البيانات المتواجدة توفير واجهات متعددة لتعامل المستخدم مع البيانات تمثيل العالقات المعقدة بين البيانات بسهولة تكامل البيانات بشكل عالي و متناسق. سهولة الصيانة حيث أي تعديل يتم بكل سهولة و من مكان واحد توفير طرق متعددة للحصول على النسخ االحتياطية توفير بيانات على درجة عالية من التحديث 10
متى ال نستخدم قواعد البيانات إذا إذا إذا إذا كانت تكلفة اإلعداد عالية بالنسبة لحجم المشروع كانت قاعدة البيانات و التطبيقات بسيطة و سهلة كان المشروع يحتاج لسرعة استجابة عالية جدا وبشكل ضروري كان العمل ال يحتاج إلى بيئة ذات عدة مستخدمين 11
مستخدمو قاعدة البيانات Data Users المستخدم غير المباشرscene workers behind the مديرو قاعدة البياناتadministrators database مصممو قاعدة البياناتdesigners database مطورو البرامج المساعدة المشغلون وأفراد الصيانة المستخدم المباشر a actors on the scenes المستخدمون النهائيونusers end النادرuser casual العاديuser naive المستخدم المستخدم المستخدم المستخدم المركب sophisticated user الوحيدuser stand-alone (a (b.i.ii.iii.iv.i.ii.iii.a.b 3
Database Users المستخدم النهائى 1. End users استخدام قاعدة البيانات للوصول لالهداف المبرمج 2. Application developers كتابة برنامج لعمل واجهة للتعامل مع القاعدة مدير (DBA) 3. Database Administrator تصميم و ادارة قاعدة البيانات مبرمج القاعدةprogrammer 4. Database systems كتابة برنامج القاعدة 13
واجبات برنامج مدير قواعد البيانات إنشاء قاعدة بيانات جديدة وإدارة قواعد البيانات الحالية. معالجة السجالت و استرجاعها حماية البيانات ضد التخريب و من االشخاص الغير مرخص لهم وضع نقاط إرشادية تستخدم في حالة االعطال رصد الحركة على البيانات إحصائيا و تسجيل كل تعامل وضع البيانات الهامة في مواقع افضل( server ) االحتفاظ بقاموس بيانات شامل أي بيانات عن البيانات و المستخدمين الصالحيات المتاحة لكل مستخدم و 14
واجبات مختص قواعد البيانات ضبط البيانات المخزنة في قواعد البيانات اإلشراف على إصدار التقارير المطلوبة في النظام. تحقيق أمن وسالمة البيانات و قواعد البيانات. اإلشراف على إضافة بيانات جديدة وتحديث البيانات التحقق من عدم تكرارية البيانات. التحقق من تكاملية البيانات القديمة. 15
أنواع قواعد البيانات الحجم حيث من A. مشروعات صغيره Access/Paradox/FoxPro/DBASE/ R:BASE مشروعات كبيره Oracle/SQL (Structured Query Language) DMS (Database Management System)/IDMS (Integrated Database Management System)/ Informix/Sybase. :.B 16
أنواع قواعد البيانات من حيث طريقة العمل قواعد البيانات اليدويةDatabase Manual قواعد البيانات العالئقية Relational Database قواعد البيانات غير العالئقيةDatabase Non-relational قواعد بيانات ذات الشكل هرميDatabase Hierarchy قواعد بيانات شبكية Network Database 17
أنواع قواعد البيانات التعامل كيفية و البنية حيث من العالئقي ة Relational database الموزعة:( database (Distributed السحابيةdatabase Cloud الكائني ة Object-oriented database غير م عتمدة على لغة االستعالمات البنيوية NoSQL database 18
Categories of data models.1 نماذج البيانات األوليةConceptual طريقة المستخدم الستقبال البيانات ( نماذح البيانات المنطقية مستوى اعلى انواع نماذج البيانات ER Model) Logical نماذج البيانات المادية Physical.2 تحويل البيانات االولية الى relational database schema نماذج البيانات التنفيذية Implementation.3 تصف تفاصيل تخزين البيانات بصورة مادية (.4 مفهوم متوسط يقع ما بين السابق )مهمة مصمم القاعدة مستوى منخفص( ) 19
Three-Schema Architecture یتكون مخطط قاعدة البیانات من ثالثة مستویات.I.I.II.I.III.I المخطط الداخلي Internal schema يصف البنية المادية و يستخدم نموذج البيانات الفيزيائي المخطط األولي أو المفاهيمي Conceptual schema يصف بنية التعريفات و القيود و يستخدم نموذج البيانات االولى المخطط الخارجي External schemas يصف المشاهد او الواجهات و يستخدم نموذج البيانات االولى 20
دورة حياه قواعد البيانات االسكيما تحديد المواصفات والمتطلبات الخاصة بقاعدة البيانات مرحلة جزئية ضمن جمع مواصفات ومتطلبات نظام المعلومات إعداد قاعدة البيانات األولية Conceptual Database تصميم نموذج اولي للبيانات بواسطة مخططات E-RD) ( تصميم قاعدة البيانات المنطقية Logical Database ERDإلى مخطط تحويل قاعدة البيانات األولية أو مخطط DB Schema تحسين قاعدة البيانات المنطقية Normalization بتطبيق قواعد تطبيع البيانات تنفيذ قاعدة البيانات الفيزيائية physical database يتم استخدام نظام الدارة قواعد البيانات SQL Server.1.2.3.4.5 3
Normalization intro مقدمة للتطبيع هوعملية تفكيك )تحليل / تجزئ ) تراكيب البيانات الكبيرة )الموجودة في عالقة واحدة عامة( الى تمثيل بسيط )عدة عالقات بسيطه( طبقا العتماد البيانات على بعضها البعض. التطبيع هى عملية تقسيم البيانات إلى مجموعة من العالقات: )التجانس - االعتمادية -خالية من التكرار( بالطبع فإن القضاء على التكرارية تماما أمر غير ممكن وما يتم دائما هو تقليل التكرارية ما أمكن قواعد التطبيع هي مجموعة المعايير المتبعة في تصميم قواعد البيانات هي خطوات لتجزئة العالقات relationsالجداول إلى عالقات أصغر هو عملية جعل البيانات طبيعية أكثر مقارنة بالنموذج الرياضي المثالي 3
لماذا التطبيع لمعرفة وفهم المعنى الكامن في البيانات التي تحتويها قاعدة البيانات لمعرفة وفهم العالقات واإلعتماديات المتبادلة بين البيانات لتقليل تكرارية البيانات data redundancy والتناقض الذي قد يحصل بينها. لحماية البيانات من المشاكل التي قد إدخال بيانات جديدة أو تعديل بيانات تطرأ عند معالجتها أي عند إجراء موجودة أو حذفها..1.2.3.4 23
مزايا التطبيع تقليل تكرارية البيانات) تقليل مساحة التخزين ) تقليل التضاربinconsistency الحاصل بين البيانات. تقليل تكلفة تحديث البيانات ومعالجتها. إلغاء العالقات التي من نوع many-to-manyوذلك عالقات من نوعone-to-many زيادة وتطوير مرونة النظام إلى بتحويلها 24
عيوب التطبيع االضطرار كانت ترفع أحيانا إلى استخدام الفهارس التي تعقد عملية من كفاءتها. زيادة تعقيدات النظام. تقليل كفاءة بعض أوامر استرجاع البيانات خاصة العالقات المعالجة المعقدة وإن وبسبب ھذه العيوب يتم في بعض األحيان تطبيق قواعد التطبيع العكسيةDemoralization 25
SQL server intro مقدمة أحد أفضل أنظمة خوادم قواعد البيانات نظام إدارة قواعد البيانات المركزيةSQL Server نظام األمان العالي الوظائف المعرفة مسبقا Procedures Stored تعتمد على نظام التشغيل It is platform dependent لها واجهة رسومية و اوامر It is both GUI and command based software بيدعم لغة االستعالم (SEQUEL) It supports SQL language بيدعم العمليات Transactions 3
استخدامات SQL Server النشاء قاعدة او اكتر من قاعدة بيانات لصيانة قواعد البيانات امكانية تحليل البيانات SQL Server Analysis Services (SSAS) النشاء التقارير SQL Server Reporting Services (SSRS) 3
SQL server VS. MS Access Microsoft Access 2 Microsoft SQL Server الميزة البيانات قاعدة حجم تيرابايت 1 من أكبر جيجا( 2,147,483,647 جيجابايت 32,768 255 مستخدم كحد أقصى تعتمد على مجموعة العمل أو المبرمج غير مدعومة غير مدعومة تعتمد على النسخ االحتياطية التي قمت بعملها غير مدعومة تعتمد على المبرمج 1024( عدد الجداول عدد المستخدمين األمان أدوات تحليل البيانات دعم أنظمة SMP إصالح مشاكل قاعدة البيانات النسخ االحتياطي صالحيات المستخدمين غير محدود مدمج مع أمان Windows 2000 مدعومة مدعومة إعادة قاعدة البيانات إلى أي و تق تختاره مدعومة دعم كامل 3
متى يتم استخدام برنامج Access Access مثل Access. لديك عدد قليل من المستخدمين. حجم البيانات لن يتجاوز 2 جيجا. السهولة الشديدة في التعامل اذا اردت التوافق مع النسخ القديمة من 9xاو ماقبله. عدد العمليات Transactions قليل. 29
متى يتم استخدام برنامج SQL Server إذا كان برنامجك يتعامل مع عدد كبير من المستخدمين. إذا كان برنامجك يحتاج لدمج قواعد بيانات فرعية بقاعدة رئيسية. إذا أردت نسبة أمان عالية جدا. إذا كان حجم البيانات كبير جدا. عدد العمليات كبير جدا. إذا أردت استخدام اإلجراءات المعرفة Stored Procedure 30
مزايا SQL Server Advantages Stored Procedures اجراء مخزن ( اوامر او دالة ) Triggers نوع من انواع االجراءات التى تنفذ عند حدث معين Defaults القيم االفتراضية Rules قواعد Userانواع Defined Data Types البيانات Views مشاھد Enterprise-levelالشموليه management software Excellentاستعادة Support Data Recovery البيانات 31
عيوب SQL Server التكلفة محدود Cost Limitedدعم Compatibility 32
اصدارات SQL Server على تعمل Enterprise Edition وھي أكبر وأقوى نسخة. Standard Edition وھي المستخدمة بكثرة. Developerنسخة Enterprise مخصصة للمطورين نسخة مصغرة Windows CE Edition وھي أنظمة Windows CE لألجهزة الكفية. Express نسخة صغيرة و مجانية 33
Database Creation : SQL Server لحفظ قواعد البيانات Drive:\Program Files\Microsoft SQL Server\MSSQL\Data المكان االفتراضى طرق انشاء القاعدة New Database و اختيار كليك يمين على العنصر المسمى Database عن طريق جملة SQL Create database database_name Create database Testdb 34
Database in SQL Server انواع قواعد البيانات ) تقسم قواعد البيانات في ال SQL Server إلى نوعين : قواعد بيانات النظام System Database ( Master تخزين كافة االعدادات و المعلومات ) operators تخزین و المهامjobs )جدولة Msdb (Model القالب المستخدم النشاء قاعدة جديدة( (Tempdb تخزين بيانات مؤقتة ) قواعد بيانات المستخدمين.1.2.3.4.A.B 35
Database Creation : SQL Server خصائص القاعدة انواع ملفات القاعدة : Database File Primary البيانات االساسية.A )bh_data.mdf( )bh.ndf( Secondary البيانات الثانوية.B )bh_log.ldf( Log File السجالت.C مكونات الملفات Name Logicالقسم المنطقي للملف Type File نوع الملف Path :المسار + االسم ) على القرص الصلب( Size Initial :الحجم االبتدائي لملف البيانات بالميغابايت Group :File مجموعة الملفات التي ينتمي إليها ھذا الملف 36
Data Types انواع البيانات تحتوى على اربع تقسيمات اساسية Numeric الرقمية Dataتاريخ and Time Stringالنصوص Other اخرى.I.II.III.IV 37
Data Types Numeric االرقام 38
Data Types Date & Time تاريخ - وقت 39
Data Types String النصوص Data Type Description Length char(n) Stores n characters n bytes (where n is in the range of 1 8,000) nchar(n) Stores n Unicode characters 2n bytes (where n is in the range of 1 4,000) varchar(n) Stores approximately ncharacters Actual string length +2 bytes (where n is in the range of 1 8,000) varchar(max) Stores up to 2 31 1 characters Actual string length +2 bytes nvarchar(n) Stores approximately ncharacters 2 n (actual string length) +2 bytes (where n is in the range of 1 4,000) nvarchar(max) Stores up to ((2 31 1)/2) 2 characters 2 n (actual string length) +2 bytes 40
CREATE TABLE MyTable ( ID INT, FullName VARCHAR(50), BirthDate DATETIME) Create table by SQL النشاء جدول بطريقة كود SQL CREATE TABLE MyTable ( ID INT PRIMARY KEY, FullName VARCHAR(60)) 41
42