KEMBAR78
DISE - Database Concepts | PPSX
Diploma in Software Engineering
Module IV: Database Concepts
Rasan Samarasinghe
ESOFT Computer Studies (pvt) Ltd.
No 68/1, Main Street, Pallegama, Embilipitiya.
Contents
1. Introduction to Databases
2. Data
3. Information
4. Database
5. Database System
6. Database Applications
7. Evolution of Databases
8. Traditional Files Based Systems
9. Limitations in Traditional Files
10. The Database Approach
11. Advantages of Database Approach
12. Disadvantages of Database Approach
13. Database Management Systems
14. DBMS Functions
15. Database Architecture
16. ANSI-SPARC 3 Level Architecture
17. The Relational Data Model
18. What is a Relation?
19. Primary Key
20. Cardinality and Degree
21. Relationships
22. Foreign Key
23. Data Integrity
24. Data Dictionary
25. Database Design
26. Requirements Collection and analysis
27. Conceptual Design
28. Logical Design
29. Physical Design
30. Entity Relationship Model
31. A mini-world example
32. Entities
33. Relationships
34. ERD Notations
35. Cardinality
36. Optional Participation
37. Entities and Relationships
38. Attributes
39. Entity Relationship Diagram
40. Entities
41. ERD Showing Weak Entities
42. Super Type / Sub Type Relationships
43. Mapping ERD to Relational
44. Map Regular Entities
45. Map Weak Entities
46. Map Binary Relationships
47. Map Associated Entities
48. Map Unary Relationships
Content
49. Map Ternary Relationships
50. Map Supertype/Subtype Relationships
51. Normalization
52. Advantages of Normalization
53. Disadvantages of Normalization
54. Normal Forms
55. Functional Dependency
56. Purchase Order Relation in 0NF
57. Purchase Order Relation in 1NF
58. Purchase Order Relations in 2NF
59. Purchase Order Relations in 3NF
60. Normalized Relations
61. BCNF – Boyce Codd Normal Form
62. Structured Query Language
63. What We Can Do with SQL ?
64. SQL Commands
65. SQL CREATE DATABASE
66. SQL CREATE TABLE
67. SQL DROP
68. SQL Constraints
69. SQL NOT NULL
70. SQL PRIMARY KEY
71. SQL CHECK
72. SQL FOREIGN KEY
73. SQL ALTER TABLE
74. SQL INSERT INTO
75. SQL INSERT INTO SELECT
76. SQL SELECT
77. SQL SELECT DISTINCT
78. SQL WHERE
79. SQL AND & OR
80. SQL ORDER BY
81. SQL UPDATE
82. SQL DELETE
83. SQL LIKE
84. SQL IN
85. SQL BETWEEN
86. SQL INNER JOIN
87. SQL LEFT JOIN
88. SQL RIGHT JOIN
89. SQL UNION
90. SQL AS
91. SQL Aggregate Functions
92. SQL Scalar functions
93. SQL GROUP BY
94. SQL HAVING
95. Database Administration
96. SQL Database Administration
Introduction to Databases
Key terms to get know…
• Data ?
• Information ?
• Database ?
• Database System ?
Data
Data are numbers, characters, images or other
outputs from devices that is more suitable to
move or process. Data can be known as distinct
types of information.
Information
Information is a result of processing and
manipulating and organizing data that adds to
the knowledge of the person receiving it.
Database
Database is a collection of interrelated data
items that can be processed by one or more
application systems.
Database System
An information system that consists from…
 Database
 DBMS
 Hardware
 Software
 People
Database Applications
• Library
• University
• Banking
• Telecommunication
• Sales and Distribution
• Manufacturing
• Human Resources
• Airline
Evolution of Databases
Types of Database Models
Traditional Files Based Systems
Limitations in Traditional Files
• Data Redundancy
• Inconsistent Data
• Inflexibility
• Limited Data Sharing
• Poor Data Control
• Security Problems
• Data Isolation
The Database Approach
Advantages of Database Approach
• Minimal Data Redundancy
• Consistency of Data
• Flexibility
• Sharing of Data
• Data Control
• Proper Security
• Integration of Data
• Ease of Application Development
• Data Manipulation
Disadvantages of Database Approach
• Complexity
• Size
• Cost of DBMS
• Additional Hardware Cost
• Higher Impact of a Failure
• Cost of Conversion
Database Management Systems (DBMS)
DBMS is a software that enables users to define,
create, maintain and control the access to a
database.
DBMS Functions
A. Data Definition
B. Data Entry
C. Data Manipulation
D. Data Display
E. Data Security
F. Data Integrity
G. Backup and Recovery
Database Architecture
ANSI-SPARC 3 Level Architecture
ANSI-SPARC 3 Level Architecture
• External Schema
– Defines the external view of data
as seen by a particular user or
program
• Conceptual Schema
– Defines the logical view of the
data
as seen by all users and programs
• Internal Schema
– Defines the physical view of data
as seen by a DBMS
The Relational Data Model
Data elements are stored in different tables
made up of rows and columns. Relates data in
different tables through the use of common
data element(s).
What is a Relation?
Data is presented to the user as tables:
• Tables are comprised of rows and a fixed number of
named columns.
• Columns are attributes describing an entity. Each column
must have an unique name and a data type.
The Relational Data Model
The Relational Data Model
The Relational Data Model
The Relational Data Model
Primary Key
Each table has a primary key. The primary key is
a column or combination of columns that
uniquely identify each row of the table.
(Composite Key)
Cardinality and Degree
The cardinality of a table refers to the number of
rows in the table.
The degree of a table refers to the number of
columns.
Relationships
Relationships
A database is a group of related files.
Relationships
Foreign Key
A foreign key is a set of columns in one table
that serve as the primary key in another table.
Data Integrity
Data Integrity refers to the validity of data.
Problems may encounter!
• Two employees with same NID, EmpNo?
• Employee who is 10 years or 70 years?
• Employee who does not work for you?
Solutions?
• Entity Integrity
• Domain Integrity
• Referential Integrity
Data Dictionary
A Data Dictionary is a file or a set of files that
contains a database's metadata.
Names of all tables and their owners.
Names of all indexes and the tables in those
indexes relate.
Constraints defined on tables.
Database Design
The database design process can be broken down
into four phases.
Requirements Collection and Analysis
Conceptual Design
Logical Design
Physical Design
Requirements Collection and analysis
Prospective database
uses are interviewed to
understand and
document their data
requirements.
Conceptual Design
This is high level
description of the
structure of a database.
E.g. E-R diagram
Logical Design
This is the process of
mapping the database
structure developed in
the previous phase to a
particular database
model.
E.g. map E-R model to
relational
Physical Design
This is the process of
defining structure that
enables the database
to be queried in an
efficient manner.
Entity Relationship Model
• An Entity Relationship Model is a data model for describing
the data within databases or information systems.
• It’s a graphical representation of entities and their
relationships to each other.
A mini-world example
• A Company is organized in to departments.
• Each department has a number and an
employee who manages the department.
• We keep track of the start date when that
employee started managing the
department.
• A department may have several locations.
• A department controls a number of
projects. Each of which has a name, a
number and a single location.
A mini-world example cont’d
• We store each employee’s name, national Id
number, address, salary, birth date and sex.
• An employee is assigned to one
department, but may work on several
projects.
• We keep track of the number of hours per
week that an employee works on each
project.
• We also keep track of the direct supervisor
of each employee.
A mini-world example cont’d
• We keep track of the dependants of each
employee for insurance purposes.
• We keep each dependant’s name, sex,
birth date and relationship to the
employee.
Such information is gathered from the
mini-world to perform Phase 1 of
database design process.
Entities
Relationships
Relationships
Relationships
Relationships
Relationships
Relationships
Relationships
Relationships
Relationships
ERD Notations
Cardinality
Optional Participation
When the number of participants in the
relationship is zero
Entities and Relationships
Attributes
• Simple Attribute
• Multi-valued Attribute
• Composite Attribute
Attributes
• Derived Attribute
• Identifier
• Composite Identifier
Entity Relationship Diagram
Entities
• Strong (Regular) Entity
• Weak Entity
• Identifying Relationship
ERD Showing Weak Entities
Relationships Cont’d
• Unary Relationship
• Ternary Relationship
Super Type / Sub Type Relationships
Mapping ERD to Relational
Step 1: Map Regular Entities
2: Map Weak Entities
3: Map Binary Relationships
4: Map Associated Entities
5: Map Unary Relationships
6: Map Ternary (and n-ary) Relationships
7: Map Supertype/Subtype Relationships
1: Map Regular Entities
1: Map Regular Entities
Project (Proj_No, Location, Proj_Name)
2: Map Weak Entities
3: Map Binary Relationships
1. Map Binary One-to-Many Relationships
2. Map Binary Many-to-Many Relationships
3. Map Binary One-to-One Relationships
3.1 Map Binary One-to-Many Relationships
3.1 Map Binary One-to-Many Relationships
3.2 Map Binary Many-to-Many Relationships
3.3 Map Binary One-to-One Relationships
4: Map Associated Entities
5: Map Unary Relationships
6: Map Ternary (and n-ary) Relationships
7: Map Supertype/Subtype Relationships
Normalization
• In relational database design, the process of
organizing data to minimize redundancy.
• Normalization usually involves dividing a
database into two or more tables and defining
relationships between the tables.
Advantages of Normalization
Reduction of data redundancy within tables:
 Reduce data storage space.
 Reduce inconsistency of data.
 Remove insert, update and delete anomalies.
 Improve flexibility of the system.
Disadvantages of Normalization
Reduction in efficiency of certain data retrieval
as relations may be joined during retrieval.
• Increase join
• Increase use of indexes: storage (keys)
• Increase complexity of the system
Normal Forms
 1NF any multi-valued attributes have been
removed
 2NF any partial functional dependencies have
been removed
 3NF any transitive dependencies have been
removed
 BCNF any remaining anomalies that result
from functional dependencies have been
removed
Functional Dependency
Functional Dependency is a constraint between two
attributes or two sets of attributes
The functional dependency of B on A is represented
by an arrow: A → B
e.g.
NID → Name, Address, Birth date
VID → Model, Color
ISBN → Title, Author, Publisher
Purchase Order Relation in 0NF
First Normal Form - 1NF
• No multi valued columns exists.
• All the key attributes are defined.
• All non-key attributes are fully functionally
dependent on the primary key.
Purchase Order Relation in 0NF
Purchase Order Relation in 0NF
1NF - Actions Required
1. Examine for repeat groups of data
2. Remove repeat groups from relation
3. Create new relation(s) to include repeated
data
4. Include key of the 0NF to the new relation(s)
5. Determine key of the new relation(s)
Purchase Order Relation in 0NF
Purchase Order Relation in 1NF
Purchase Order Relation in 1NF
Purchase Order Relation in 1NF
Problems - 1NF
INSERT PROBLEM
Cannot know available parts until an order is placed
(e.g. P4 is bush)
DELETE PROBLEM
Loose information of part P7 if we cancel purchase order
115 (e.g. Delete PO-PART for Part No P7)
UPDATE PROBLEM:
To change description of Part P3 we need to change every
record in PO-PART containing Part No P3
Second Normal Form - 2NF
• Relations should not contain any partial
functional dependencies.
• E.g. No attribute is dependent on only a
partial of the primary key.
PO-PART Relation (Parts Ordered) in 1NF
Part Description is depended only on Part No,
which is part of the key of PO-PART.
Parts Ordered Relation in 1NF
2NF - Actions Required
If entity has a concatenated key
1. Check each attribute against the whole key
2. Remove attribute and partial key to new
relation
3. Optimize relations - consider combining
tables that have identical primary keys
Parts Ordered Relation in 1NF
Parts Ordered Relations in 2NF
Purchase Order Relations in 2NF
Purchase Order Relation in 2NF
Problems - 2NF
INSERT PROBLEM
Cannot know available suppliers until an order is placed
(e.g. 200 is hardware stores)
DELETE PROBLEM
Loose information of supplier 100 if we cancel purchase
order 116 (e.g. Delete PO for Supplier No 100)
UPDATE PROBLEM
To change name of Supplier 222 we need to change every
record in PO containing Supplier No 222
Third Normal Form - 3NF
• No any transitive dependencies are exist.
• Transitive dependency is a functional
dependency between two or more non-key
attribute.
PO Relation in 2NF
Supplier name is a non-key field depended on
another non-key field (supplier no) in addition
to be depended on the key purchase order no.
Purchase Order Relation in 2NF
3NF - Actions Required
1. Check each non-key attribute for dependency
against other non-key fields
2. Remove attribute depended on another non-
key attribute from relation
3. Create new relation comprising the attribute
and non-key attribute which it depends on
4. Determine key of new relation
Purchase Order Relation in 2NF
PO and SUPPLIER Relations in 3NF
Purchase Order Relations in 3NF
Purchase Order Relation in 3NF
Normalized Relations
BCNF – Boyce Codd Normal Form
• Boyce Codd Normal Form is a higher version of the
Third Normal form.
• In BCNF Every determinant in table is a candidate
key.
A table that is in 3NF but not in BCNF
3NF without BCNF
STU_ID STAFF_ID CLASS_CODE ENROLL_GRADE
125 25 21344 A
125 20 32456 C
135 20 28458 B
135 25 27563 C
144 20 32456 B
• Each Class_Code identifies a class uniquely.
• A student can take many classes.
• A staff member can teach many classes, but each
class is tought by only one staff.
3NF without BCNF
PROBLEMS
• If a different member is assigned to teach class 32456 two
rows must be updated.
• Also if student 135 drops out we lose data on who teaches the
class.
STU_ID STAFF_ID CLASS_CODE ENROLL_GRADE
125 25 21344 A
125 20 32456 C
135 20 28458 B
135 25 27563 C
144 20 32456 B
BCNF – Boyce Codd Normal Form
STU_ID STAFF_ID ENROLL_IDCLASS_CODE
CLASS_CODESTU_ID ENROLL_ID CLASS_CODE ENROLL_ID
3NF but not in BCNF
3NF and BCNF
BCNF – Boyce Codd Normal Form
STU_ID CLASS_CODE ENROLL_GRADE
125 21344 A
125 32456 C
135 28458 B
135 27563 C
144 32456 B
CLASS_CODE STAFF_ID
21344 25
32456 20
28458 20
27563 25
Structured Query Language (SQL)
• SQL is using for storing, manipulating and
retrieving data stored in relational database.
• All relational DBMS like MySQL, MS Access,
Oracle, Sybase, Informix, postgres and SQL
Server uses SQL as standard database
language.
What We Can Do with SQL ?
Access data in relational DBMS.
Define the data in database
Manipulate the data in database.
Create and drop databases and tables.
Create view, stored procedure in a database.
Set permissions on tables, procedures, and
views.
SQL Commands
SQL Commands
SQL CREATE DATABASE
CREATE DATABASE DBstudent;
SQL CREATE TABLE
CREATE TABLE tblStudent
(
StudentID int,
FirstName varchar(50),
LastName varchar(50),
Address varchar(255),
Phone varchar(50)
);
SQL DROP
DROP TABLE table_name;
DROP DATABASE database_name;
SQL Constraints
SQL constraints are used to specify rules for the
data in a table.
NOT NULL
PRIMARY KEY
CHECK
FOREIGN KEY
SQL NOT NULL
CREATE TABLE tblPayment
(
PaymentID int NOT NULL,
Amount varchar(255) NOT NULL,
PayedDate datetime
) ;
SQL PRIMARY KEY
CREATE TABLE Course
(
CourseID int NOT NULL,
CourseName varchar(255) NOT NULL,
Duration varchar(50),
CourseFee varchar(50),
PRIMARY KEY (CourseID)
);
SQL CHECK
CREATE TABLE tblStudent
(
StudentID int NOT NULL,
FirstName varchar(50),
LastName varchar(50),
Address varchar(255),
Phone varchar(50),
CHECK (StudentID > 1000)
);
SQL FOREIGN KEY
CREATE TABLE tblPayment
(
PaymentID int NOT NULL,
Amount varchar(255) NOT NULL,
PayedDate datetime,
StudentID int,
PRIMARY KEY (PaymentID),
FOREIGN KEY (StudentID) REFERENCES
tblStudent(StudentID)
);
SQL ALTER TABLE
ALTER TABLE tblStudent ADD DateOfBirth date;
ALTER TABLE tblStudent MODIFY COLUMN
DateOfBirth year;
ALTER TABLE tblStudent DROP COLUMN
DateOfBirth;
SQL INSERT INTO
INSERT INTO tblStudent (StudentID, FirstName,
LastName, Address, Phone) VALUES (1000,
'Thilina', 'Perera', 'Colombo, Sri Lanka',
'0777475323');
SQL INSERT INTO SELECT
INSERT INTO tblStudent (StudentID, FirstName,
LastName, Address, Phone)
SELECT EmpID, FirstName, LastName, Address,
Phone FROM tblEmployer;
SQL SELECT
SELECT * FROM tblStudent;
SELECT StudentId, FirstName FROM tblStudent;
SQL SELECT DISTINCT
SELECT DISTINCT FirstName FROM tblStudent;
SQL WHERE
SELECT * FROM tblStudent WHERE StudentID=1;
SQL AND & OR
SELECT * FROM tblStudent WHERE
Address='Matara' OR Address='Colombo';
SELECT * FROM tblStudent WHERE
FirstName='Roshan' AND Address='Colombo';
SQL ORDER BY
SELECT * FROM tblStudent ORDER BY FirstName
DESC;
SELECT * FROM tblStudent ORDER BY FirstName
ASC;
SQL UPDATE
UPDATE tblStudent SET FirstName='Sampath',
Address='Kandy' WHERE StudentID=2;
SQL DELETE
DELETE FROM tblStudent WHERE StudentID=3;
SQL LIKE
SELECT * FROM tblStudent WHERE FirstName
LIKE 'S%';
SELECT * FROM tblStudent WHERE FirstName
LIKE '_uwan';
SQL IN
SELECT * FROM tblStudent WHERE Address IN
('matara','galle');
SELECT * FROM tblStudent WHERE Address NOT
IN ('matara','galle');
SQL BETWEEN
SELECT * FROM tblStudent
WHERE StudentID BETWEEN 1000 AND 2000;
SQL INNER JOIN
SELECT tblStudent.FirstName,
tblPayment.PaymentID FROM tblStudent INNER
JOIN tblPayment ON
tblStudent.StudentID=tblPayment.StudentID;
SQL LEFT JOIN
SELECT tblStudent.FirstName,
tblPayment.PaymentID FROM tblStudent LEFT
JOIN tblPayment ON
tblStudent.StudentID=tblPayment.StudentID;
SQL RIGHT JOIN
SELECT tblPayment.PaymentID,
tblStudent.FirstName FROM tblStudent RIGHT
JOIN tblPayment ON
tblStudent.StudentID=tblPayment.StudentID;
SQL UNION
SELECT FirstName FROM tblStudent UNION
SELECT FirstName FROM tblStudent2;
SELECT FirstName FROM tblStudent UNION ALL
SELECT FirstName FROM tblStudent2;
SQL AS (Aliases)
SELECT StudentID AS 'Student ID' FROM
tblStudent;
SELECT S.FirstName, P.PaymentID FROM
tblStudent AS S INNER JOIN tblPayment AS P ON
S.StudentID=P.StudentID;
SQL Aggregate Functions
SQL aggregate functions return a single value,
calculated from values in a column.
AVG() - Returns the average value
COUNT() - Returns the number of rows
FIRST() - Returns the first value
LAST() - Returns the last value
MAX() - Returns the largest value
MIN() - Returns the smallest value
SUM() - Returns the sum
SQL Scalar functions
SQL scalar functions return a single value, based
on the input value.
UCASE() - Converts a field to upper case
LCASE() - Converts a field to lower case
INITCAP() - Converts the first letter of a field to
upper case.
SQL GROUP BY
SELECT StudentID, SUM(Amount) FROM
tblPayment GROUP BY StudentID;
SQL HAVING
SELECT StudentID, SUM(Amount) FROM
tblPayment GROUP BY StudentID HAVING
SUM(Amount)>2000;
Database Administration
Installing and Upgrading
Database Security
Enrolling Users
Monitoring Activities
Optimizing the Performance
Producing Reports
Backup and Recovery
SQL Database Administration
GRANT SELECT, INSERT ON dbstudent.* TO
'silva'@'localhost' IDENTIFIED BY 'silva123';
REVOKE INSERT ON dbstudent.* FROM
'silva'@'localhost';
The End
http://twitter.com/rasansmn

DISE - Database Concepts

  • 1.
    Diploma in SoftwareEngineering Module IV: Database Concepts Rasan Samarasinghe ESOFT Computer Studies (pvt) Ltd. No 68/1, Main Street, Pallegama, Embilipitiya.
  • 2.
    Contents 1. Introduction toDatabases 2. Data 3. Information 4. Database 5. Database System 6. Database Applications 7. Evolution of Databases 8. Traditional Files Based Systems 9. Limitations in Traditional Files 10. The Database Approach 11. Advantages of Database Approach 12. Disadvantages of Database Approach 13. Database Management Systems 14. DBMS Functions 15. Database Architecture 16. ANSI-SPARC 3 Level Architecture 17. The Relational Data Model 18. What is a Relation? 19. Primary Key 20. Cardinality and Degree 21. Relationships 22. Foreign Key 23. Data Integrity 24. Data Dictionary 25. Database Design 26. Requirements Collection and analysis 27. Conceptual Design 28. Logical Design 29. Physical Design 30. Entity Relationship Model 31. A mini-world example 32. Entities 33. Relationships 34. ERD Notations 35. Cardinality 36. Optional Participation 37. Entities and Relationships 38. Attributes 39. Entity Relationship Diagram 40. Entities 41. ERD Showing Weak Entities 42. Super Type / Sub Type Relationships 43. Mapping ERD to Relational 44. Map Regular Entities 45. Map Weak Entities 46. Map Binary Relationships 47. Map Associated Entities 48. Map Unary Relationships
  • 3.
    Content 49. Map TernaryRelationships 50. Map Supertype/Subtype Relationships 51. Normalization 52. Advantages of Normalization 53. Disadvantages of Normalization 54. Normal Forms 55. Functional Dependency 56. Purchase Order Relation in 0NF 57. Purchase Order Relation in 1NF 58. Purchase Order Relations in 2NF 59. Purchase Order Relations in 3NF 60. Normalized Relations 61. BCNF – Boyce Codd Normal Form 62. Structured Query Language 63. What We Can Do with SQL ? 64. SQL Commands 65. SQL CREATE DATABASE 66. SQL CREATE TABLE 67. SQL DROP 68. SQL Constraints 69. SQL NOT NULL 70. SQL PRIMARY KEY 71. SQL CHECK 72. SQL FOREIGN KEY 73. SQL ALTER TABLE 74. SQL INSERT INTO 75. SQL INSERT INTO SELECT 76. SQL SELECT 77. SQL SELECT DISTINCT 78. SQL WHERE 79. SQL AND & OR 80. SQL ORDER BY 81. SQL UPDATE 82. SQL DELETE 83. SQL LIKE 84. SQL IN 85. SQL BETWEEN 86. SQL INNER JOIN 87. SQL LEFT JOIN 88. SQL RIGHT JOIN 89. SQL UNION 90. SQL AS 91. SQL Aggregate Functions 92. SQL Scalar functions 93. SQL GROUP BY 94. SQL HAVING 95. Database Administration 96. SQL Database Administration
  • 4.
    Introduction to Databases Keyterms to get know… • Data ? • Information ? • Database ? • Database System ?
  • 5.
    Data Data are numbers,characters, images or other outputs from devices that is more suitable to move or process. Data can be known as distinct types of information.
  • 6.
    Information Information is aresult of processing and manipulating and organizing data that adds to the knowledge of the person receiving it.
  • 7.
    Database Database is acollection of interrelated data items that can be processed by one or more application systems.
  • 8.
    Database System An informationsystem that consists from…  Database  DBMS  Hardware  Software  People
  • 9.
    Database Applications • Library •University • Banking • Telecommunication • Sales and Distribution • Manufacturing • Human Resources • Airline
  • 10.
  • 11.
  • 12.
  • 13.
    Limitations in TraditionalFiles • Data Redundancy • Inconsistent Data • Inflexibility • Limited Data Sharing • Poor Data Control • Security Problems • Data Isolation
  • 14.
  • 15.
    Advantages of DatabaseApproach • Minimal Data Redundancy • Consistency of Data • Flexibility • Sharing of Data • Data Control • Proper Security • Integration of Data • Ease of Application Development • Data Manipulation
  • 16.
    Disadvantages of DatabaseApproach • Complexity • Size • Cost of DBMS • Additional Hardware Cost • Higher Impact of a Failure • Cost of Conversion
  • 17.
    Database Management Systems(DBMS) DBMS is a software that enables users to define, create, maintain and control the access to a database.
  • 18.
    DBMS Functions A. DataDefinition B. Data Entry C. Data Manipulation D. Data Display E. Data Security F. Data Integrity G. Backup and Recovery
  • 19.
  • 20.
    ANSI-SPARC 3 LevelArchitecture
  • 21.
    ANSI-SPARC 3 LevelArchitecture • External Schema – Defines the external view of data as seen by a particular user or program • Conceptual Schema – Defines the logical view of the data as seen by all users and programs • Internal Schema – Defines the physical view of data as seen by a DBMS
  • 22.
    The Relational DataModel Data elements are stored in different tables made up of rows and columns. Relates data in different tables through the use of common data element(s).
  • 23.
    What is aRelation? Data is presented to the user as tables: • Tables are comprised of rows and a fixed number of named columns. • Columns are attributes describing an entity. Each column must have an unique name and a data type.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
    Primary Key Each tablehas a primary key. The primary key is a column or combination of columns that uniquely identify each row of the table. (Composite Key)
  • 29.
    Cardinality and Degree Thecardinality of a table refers to the number of rows in the table. The degree of a table refers to the number of columns.
  • 30.
  • 31.
    Relationships A database isa group of related files.
  • 32.
  • 33.
    Foreign Key A foreignkey is a set of columns in one table that serve as the primary key in another table.
  • 34.
    Data Integrity Data Integrityrefers to the validity of data. Problems may encounter! • Two employees with same NID, EmpNo? • Employee who is 10 years or 70 years? • Employee who does not work for you? Solutions? • Entity Integrity • Domain Integrity • Referential Integrity
  • 35.
    Data Dictionary A DataDictionary is a file or a set of files that contains a database's metadata. Names of all tables and their owners. Names of all indexes and the tables in those indexes relate. Constraints defined on tables.
  • 36.
    Database Design The databasedesign process can be broken down into four phases. Requirements Collection and Analysis Conceptual Design Logical Design Physical Design
  • 37.
    Requirements Collection andanalysis Prospective database uses are interviewed to understand and document their data requirements.
  • 38.
    Conceptual Design This ishigh level description of the structure of a database. E.g. E-R diagram
  • 39.
    Logical Design This isthe process of mapping the database structure developed in the previous phase to a particular database model. E.g. map E-R model to relational
  • 40.
    Physical Design This isthe process of defining structure that enables the database to be queried in an efficient manner.
  • 41.
    Entity Relationship Model •An Entity Relationship Model is a data model for describing the data within databases or information systems. • It’s a graphical representation of entities and their relationships to each other.
  • 42.
    A mini-world example •A Company is organized in to departments. • Each department has a number and an employee who manages the department. • We keep track of the start date when that employee started managing the department. • A department may have several locations. • A department controls a number of projects. Each of which has a name, a number and a single location.
  • 43.
    A mini-world examplecont’d • We store each employee’s name, national Id number, address, salary, birth date and sex. • An employee is assigned to one department, but may work on several projects. • We keep track of the number of hours per week that an employee works on each project. • We also keep track of the direct supervisor of each employee.
  • 44.
    A mini-world examplecont’d • We keep track of the dependants of each employee for insurance purposes. • We keep each dependant’s name, sex, birth date and relationship to the employee. Such information is gathered from the mini-world to perform Phase 1 of database design process.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
    Optional Participation When thenumber of participants in the relationship is zero
  • 58.
  • 59.
    Attributes • Simple Attribute •Multi-valued Attribute • Composite Attribute
  • 60.
    Attributes • Derived Attribute •Identifier • Composite Identifier
  • 61.
  • 62.
    Entities • Strong (Regular)Entity • Weak Entity • Identifying Relationship
  • 63.
  • 64.
    Relationships Cont’d • UnaryRelationship • Ternary Relationship
  • 65.
    Super Type /Sub Type Relationships
  • 66.
    Mapping ERD toRelational Step 1: Map Regular Entities 2: Map Weak Entities 3: Map Binary Relationships 4: Map Associated Entities 5: Map Unary Relationships 6: Map Ternary (and n-ary) Relationships 7: Map Supertype/Subtype Relationships
  • 67.
  • 68.
    1: Map RegularEntities Project (Proj_No, Location, Proj_Name)
  • 69.
    2: Map WeakEntities
  • 70.
    3: Map BinaryRelationships 1. Map Binary One-to-Many Relationships 2. Map Binary Many-to-Many Relationships 3. Map Binary One-to-One Relationships
  • 71.
    3.1 Map BinaryOne-to-Many Relationships
  • 72.
    3.1 Map BinaryOne-to-Many Relationships
  • 73.
    3.2 Map BinaryMany-to-Many Relationships
  • 74.
    3.3 Map BinaryOne-to-One Relationships
  • 75.
  • 76.
    5: Map UnaryRelationships
  • 77.
    6: Map Ternary(and n-ary) Relationships
  • 78.
  • 79.
    Normalization • In relationaldatabase design, the process of organizing data to minimize redundancy. • Normalization usually involves dividing a database into two or more tables and defining relationships between the tables.
  • 80.
    Advantages of Normalization Reductionof data redundancy within tables:  Reduce data storage space.  Reduce inconsistency of data.  Remove insert, update and delete anomalies.  Improve flexibility of the system.
  • 81.
    Disadvantages of Normalization Reductionin efficiency of certain data retrieval as relations may be joined during retrieval. • Increase join • Increase use of indexes: storage (keys) • Increase complexity of the system
  • 82.
    Normal Forms  1NFany multi-valued attributes have been removed  2NF any partial functional dependencies have been removed  3NF any transitive dependencies have been removed  BCNF any remaining anomalies that result from functional dependencies have been removed
  • 83.
    Functional Dependency Functional Dependencyis a constraint between two attributes or two sets of attributes The functional dependency of B on A is represented by an arrow: A → B e.g. NID → Name, Address, Birth date VID → Model, Color ISBN → Title, Author, Publisher
  • 84.
  • 85.
    First Normal Form- 1NF • No multi valued columns exists. • All the key attributes are defined. • All non-key attributes are fully functionally dependent on the primary key.
  • 86.
  • 87.
  • 88.
    1NF - ActionsRequired 1. Examine for repeat groups of data 2. Remove repeat groups from relation 3. Create new relation(s) to include repeated data 4. Include key of the 0NF to the new relation(s) 5. Determine key of the new relation(s)
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
    Problems - 1NF INSERTPROBLEM Cannot know available parts until an order is placed (e.g. P4 is bush) DELETE PROBLEM Loose information of part P7 if we cancel purchase order 115 (e.g. Delete PO-PART for Part No P7) UPDATE PROBLEM: To change description of Part P3 we need to change every record in PO-PART containing Part No P3
  • 94.
    Second Normal Form- 2NF • Relations should not contain any partial functional dependencies. • E.g. No attribute is dependent on only a partial of the primary key.
  • 95.
    PO-PART Relation (PartsOrdered) in 1NF Part Description is depended only on Part No, which is part of the key of PO-PART.
  • 96.
  • 97.
    2NF - ActionsRequired If entity has a concatenated key 1. Check each attribute against the whole key 2. Remove attribute and partial key to new relation 3. Optimize relations - consider combining tables that have identical primary keys
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
    Problems - 2NF INSERTPROBLEM Cannot know available suppliers until an order is placed (e.g. 200 is hardware stores) DELETE PROBLEM Loose information of supplier 100 if we cancel purchase order 116 (e.g. Delete PO for Supplier No 100) UPDATE PROBLEM To change name of Supplier 222 we need to change every record in PO containing Supplier No 222
  • 103.
    Third Normal Form- 3NF • No any transitive dependencies are exist. • Transitive dependency is a functional dependency between two or more non-key attribute.
  • 104.
    PO Relation in2NF Supplier name is a non-key field depended on another non-key field (supplier no) in addition to be depended on the key purchase order no.
  • 105.
  • 106.
    3NF - ActionsRequired 1. Check each non-key attribute for dependency against other non-key fields 2. Remove attribute depended on another non- key attribute from relation 3. Create new relation comprising the attribute and non-key attribute which it depends on 4. Determine key of new relation
  • 107.
  • 108.
    PO and SUPPLIERRelations in 3NF
  • 109.
  • 110.
  • 111.
  • 112.
    BCNF – BoyceCodd Normal Form • Boyce Codd Normal Form is a higher version of the Third Normal form. • In BCNF Every determinant in table is a candidate key. A table that is in 3NF but not in BCNF
  • 113.
    3NF without BCNF STU_IDSTAFF_ID CLASS_CODE ENROLL_GRADE 125 25 21344 A 125 20 32456 C 135 20 28458 B 135 25 27563 C 144 20 32456 B • Each Class_Code identifies a class uniquely. • A student can take many classes. • A staff member can teach many classes, but each class is tought by only one staff.
  • 114.
    3NF without BCNF PROBLEMS •If a different member is assigned to teach class 32456 two rows must be updated. • Also if student 135 drops out we lose data on who teaches the class. STU_ID STAFF_ID CLASS_CODE ENROLL_GRADE 125 25 21344 A 125 20 32456 C 135 20 28458 B 135 25 27563 C 144 20 32456 B
  • 115.
    BCNF – BoyceCodd Normal Form STU_ID STAFF_ID ENROLL_IDCLASS_CODE CLASS_CODESTU_ID ENROLL_ID CLASS_CODE ENROLL_ID 3NF but not in BCNF 3NF and BCNF
  • 116.
    BCNF – BoyceCodd Normal Form STU_ID CLASS_CODE ENROLL_GRADE 125 21344 A 125 32456 C 135 28458 B 135 27563 C 144 32456 B CLASS_CODE STAFF_ID 21344 25 32456 20 28458 20 27563 25
  • 117.
    Structured Query Language(SQL) • SQL is using for storing, manipulating and retrieving data stored in relational database. • All relational DBMS like MySQL, MS Access, Oracle, Sybase, Informix, postgres and SQL Server uses SQL as standard database language.
  • 118.
    What We CanDo with SQL ? Access data in relational DBMS. Define the data in database Manipulate the data in database. Create and drop databases and tables. Create view, stored procedure in a database. Set permissions on tables, procedures, and views.
  • 119.
  • 120.
  • 121.
    SQL CREATE DATABASE CREATEDATABASE DBstudent;
  • 122.
    SQL CREATE TABLE CREATETABLE tblStudent ( StudentID int, FirstName varchar(50), LastName varchar(50), Address varchar(255), Phone varchar(50) );
  • 123.
    SQL DROP DROP TABLEtable_name; DROP DATABASE database_name;
  • 124.
    SQL Constraints SQL constraintsare used to specify rules for the data in a table. NOT NULL PRIMARY KEY CHECK FOREIGN KEY
  • 125.
    SQL NOT NULL CREATETABLE tblPayment ( PaymentID int NOT NULL, Amount varchar(255) NOT NULL, PayedDate datetime ) ;
  • 126.
    SQL PRIMARY KEY CREATETABLE Course ( CourseID int NOT NULL, CourseName varchar(255) NOT NULL, Duration varchar(50), CourseFee varchar(50), PRIMARY KEY (CourseID) );
  • 127.
    SQL CHECK CREATE TABLEtblStudent ( StudentID int NOT NULL, FirstName varchar(50), LastName varchar(50), Address varchar(255), Phone varchar(50), CHECK (StudentID > 1000) );
  • 128.
    SQL FOREIGN KEY CREATETABLE tblPayment ( PaymentID int NOT NULL, Amount varchar(255) NOT NULL, PayedDate datetime, StudentID int, PRIMARY KEY (PaymentID), FOREIGN KEY (StudentID) REFERENCES tblStudent(StudentID) );
  • 129.
    SQL ALTER TABLE ALTERTABLE tblStudent ADD DateOfBirth date; ALTER TABLE tblStudent MODIFY COLUMN DateOfBirth year; ALTER TABLE tblStudent DROP COLUMN DateOfBirth;
  • 130.
    SQL INSERT INTO INSERTINTO tblStudent (StudentID, FirstName, LastName, Address, Phone) VALUES (1000, 'Thilina', 'Perera', 'Colombo, Sri Lanka', '0777475323');
  • 131.
    SQL INSERT INTOSELECT INSERT INTO tblStudent (StudentID, FirstName, LastName, Address, Phone) SELECT EmpID, FirstName, LastName, Address, Phone FROM tblEmployer;
  • 132.
    SQL SELECT SELECT *FROM tblStudent; SELECT StudentId, FirstName FROM tblStudent;
  • 133.
    SQL SELECT DISTINCT SELECTDISTINCT FirstName FROM tblStudent;
  • 134.
    SQL WHERE SELECT *FROM tblStudent WHERE StudentID=1;
  • 135.
    SQL AND &OR SELECT * FROM tblStudent WHERE Address='Matara' OR Address='Colombo'; SELECT * FROM tblStudent WHERE FirstName='Roshan' AND Address='Colombo';
  • 136.
    SQL ORDER BY SELECT* FROM tblStudent ORDER BY FirstName DESC; SELECT * FROM tblStudent ORDER BY FirstName ASC;
  • 137.
    SQL UPDATE UPDATE tblStudentSET FirstName='Sampath', Address='Kandy' WHERE StudentID=2;
  • 138.
    SQL DELETE DELETE FROMtblStudent WHERE StudentID=3;
  • 139.
    SQL LIKE SELECT *FROM tblStudent WHERE FirstName LIKE 'S%'; SELECT * FROM tblStudent WHERE FirstName LIKE '_uwan';
  • 140.
    SQL IN SELECT *FROM tblStudent WHERE Address IN ('matara','galle'); SELECT * FROM tblStudent WHERE Address NOT IN ('matara','galle');
  • 141.
    SQL BETWEEN SELECT *FROM tblStudent WHERE StudentID BETWEEN 1000 AND 2000;
  • 142.
    SQL INNER JOIN SELECTtblStudent.FirstName, tblPayment.PaymentID FROM tblStudent INNER JOIN tblPayment ON tblStudent.StudentID=tblPayment.StudentID;
  • 143.
    SQL LEFT JOIN SELECTtblStudent.FirstName, tblPayment.PaymentID FROM tblStudent LEFT JOIN tblPayment ON tblStudent.StudentID=tblPayment.StudentID;
  • 144.
    SQL RIGHT JOIN SELECTtblPayment.PaymentID, tblStudent.FirstName FROM tblStudent RIGHT JOIN tblPayment ON tblStudent.StudentID=tblPayment.StudentID;
  • 145.
    SQL UNION SELECT FirstNameFROM tblStudent UNION SELECT FirstName FROM tblStudent2; SELECT FirstName FROM tblStudent UNION ALL SELECT FirstName FROM tblStudent2;
  • 146.
    SQL AS (Aliases) SELECTStudentID AS 'Student ID' FROM tblStudent; SELECT S.FirstName, P.PaymentID FROM tblStudent AS S INNER JOIN tblPayment AS P ON S.StudentID=P.StudentID;
  • 147.
    SQL Aggregate Functions SQLaggregate functions return a single value, calculated from values in a column. AVG() - Returns the average value COUNT() - Returns the number of rows FIRST() - Returns the first value LAST() - Returns the last value MAX() - Returns the largest value MIN() - Returns the smallest value SUM() - Returns the sum
  • 148.
    SQL Scalar functions SQLscalar functions return a single value, based on the input value. UCASE() - Converts a field to upper case LCASE() - Converts a field to lower case INITCAP() - Converts the first letter of a field to upper case.
  • 149.
    SQL GROUP BY SELECTStudentID, SUM(Amount) FROM tblPayment GROUP BY StudentID;
  • 150.
    SQL HAVING SELECT StudentID,SUM(Amount) FROM tblPayment GROUP BY StudentID HAVING SUM(Amount)>2000;
  • 151.
    Database Administration Installing andUpgrading Database Security Enrolling Users Monitoring Activities Optimizing the Performance Producing Reports Backup and Recovery
  • 152.
    SQL Database Administration GRANTSELECT, INSERT ON dbstudent.* TO 'silva'@'localhost' IDENTIFIED BY 'silva123'; REVOKE INSERT ON dbstudent.* FROM 'silva'@'localhost';
  • 153.

Editor's Notes

  • #23 Record/Tuple – A row in a Relation Field /Attribute – A column in a Relation Domain – Set of values of an Attribute Degree – The number of Fields in a Relation Cardinality – the number of Records in a Relation Null – the value not given or unknown for a field.
  • #28  Can record data about a Department even if there is NO Employees assigned to it Entity instances can exists on its own. i.e. independent of other instances Department data are not repeated for all their employees Avoids inconsistent problem e.g. change of manager
  • #35 Entity Integrity : There are no duplicate rows in a table.  Domain Integrity : Enforces valid entries for a given column by restricting the type, the format, or the range of values.  Referential integrity : Rows cannot be deleted, which are used by other records.  User-Defined Integrity : Enforces some specific business rules that do not fall into entity, domain, or referential integrity Refers to the validity of data. Data integrity can be compromised in a number of ways: Human errors when data is entered Errors that occur when data is transmitted from one computer to another Software bugs or viruses Hardware malfunctions, such as disk crashes Natural disasters, such as fires and floods
  • #36 For instance, suppose that in a commercial bank's database, the administrator wants to determine which table holds information about loans. Making an educated guess that the table most likely has the word "LOAN" in it, he would issue the following query on the data dictionary (the first query is for an Oracle DB, while the second is for an SQL Server DB): SELECT * FROM DBA_TABLES WHERE TABLE_NAME LIKE '%LOAN%'; SELECT * FROM SYSOBJECTS WHERE TYPE='U' AND NAME LIKE '%LOAN%';
  • #80 Normalisation is a set of data design standards. It is a process of decomposing unsatisfactory relations into smaller relations. Like entity–relationship modelling were developed as part of database theory.
  • #113 Boyce and Codd Normal Form is a higher version of the Third Normal form.
  • #137 The ORDER BY keyword sorts the records in ascending order by default.
  • #141 The IN operator allows you to specify multiple values in a WHERE clause.
  • #143 The INNER JOIN keyword selects all rows from both tables as long as there is a match between the columns in both tables.
  • #146 The SQL UNION operator combines the result of two or more SELECT statements. (both statements should have same number of columns)
  • #149 INITCAP() Not works in MySQL
  • #150 The GROUP BY statement is used in conjunction with the aggregate functions to group the result-set by one or more columns.
  • #151  USE WITH GROUP BY The HAVING clause was added to SQL because the WHERE keyword could not be used with aggregate functions.
  • #152 Database administration refers to the set of activities performed to ensure that a database is always available as needed.
  • #153 Go to: C:\Program Files\MySQL\MySQL Server 5.6\bin Enter: Mysql –u root –p