1 Overview of Database Management System - . - . - . - . - . - . - . .
1 Overview of Database Management System - . - . - . - . - . - . - . .
1.14.1Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.14.2Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.14.3Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.14.4Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.14.5People Interacting with Database . . . . . . . . . . . . . . . . . . . 16
1.14.6Data Dictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.14.7Functional Components of Database System
Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.15 Database Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.15.1 Two-Tier Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.15.2 Three-tier Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.15.3 Multitier Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.16 Situations where DBMS is not Necessary . . . . . . . . . . . . . . . . . . . 26
1.17 DBMS Vendors and their Products . . . . . . . . . . . . . . . . . . . . . . . . 26
2 Entity–Relationship Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2 The Building Blocks of an Entity–Relationship Diagram . . . . . . 32
2.2.1 Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.2 Entity Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.3 Relationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.4 Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.2.5 ER Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3 Classification of Entity Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3.1 Strong Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.3.2 Weak Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.4 Attribute Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.4.1 Symbols Used in ER Diagram . . . . . . . . . . . . . . . . . . . . . . 35
2.5 Relationship Degree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.5.1 Unary Relationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.5.2 Binary Relationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5.3 Ternary Relationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5.4 Quaternary Relationships . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.6 Relationship Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.6.1 One-to-Many Relationship Type . . . . . . . . . . . . . . . . . . . . 41
2.6.2 One-to-One Relationship Type . . . . . . . . . . . . . . . . . . . . . 41
2.6.3 Many-to-Many Relationship Type . . . . . . . . . . . . . . . . . . 41
2.6.4 Many-to-One Relationship Type . . . . . . . . . . . . . . . . . . . . 42
2.7 Reducing ER Diagram to Tables . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.7.1 Mapping Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.7.2 Mapping Regular Entities . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.7.3 Converting Composite Attribute in an ER Diagram
to Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.7.4 Mapping Multivalued Attributes in ER Diagram
to Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Contents XIII
3 Relational Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.2 CODD’S Rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.3 Relational Data Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.3.1 Structural Part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.3.2 Integrity Part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.3.3 Manipulative Part . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
3.3.4 Table and Relation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.4 Concept of Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.4.1 Superkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
3.4.2 Candidate Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.4.3 Foreign Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.5 Relational Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.5.1 Entity Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.5.2 Null Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.5.3 Domain Integrity Constraint . . . . . . . . . . . . . . . . . . . . . . . 71
3.5.4 Referential Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.6 Relational Algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.6.1 Role of Relational Algebra in DBMS . . . . . . . . . . . . . . . . 72
3.7 Relational Algebra Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
3.7.1 Unary and Binary Operations . . . . . . . . . . . . . . . . . . . . . . 72
XIV Contents
5 PL/SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
5.2 Shortcomings in SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
5.3 Structure of PL/SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
5.4 PL/SQL Language Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
5.5 Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
5.6 Operators Precedence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
5.7 Control Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
5.8 Steps to Create a PL/SQL Program . . . . . . . . . . . . . . . . . . . . . . . 226
5.9 Iterative Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
5.10 Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
5.10.1 Implicit Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
5.10.2 Explicit Cursor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
5.11 Steps to Create a Cursor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
5.11.1 Declare the Cursor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
5.11.2 Open the Cursor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
5.11.3 Passing Parameters to Cursor . . . . . . . . . . . . . . . . . . . . . . 237
5.11.4 Fetch Data from the Cursor . . . . . . . . . . . . . . . . . . . . . . . 237
5.11.5 Close the Cursor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
5.12 Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
5.13 Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
5.14 Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
5.15 Exceptions Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
5.16 Database Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
5.17 Types of Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
XVI Contents
Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
http://www.springer.com/978-3-540-48397-7