DISE - Database Concepts

Post on 19-Feb-2017

71 views 1 download

Transcript of DISE - Database Concepts

Diploma in Software Engineering

Module IV: Database Concepts

Rasan SamarasingheESOFT Computer Studies (pvt) Ltd.No 68/1, Main Street, Pallegama, Embilipitiya.

Contents1. Introduction to Databases2. Data3. Information4. Database5. Database System6. Database Applications7. Evolution of Databases8. Traditional Files Based Systems9. Limitations in Traditional Files10. The Database Approach11. Advantages of Database Approach12. Disadvantages of Database Approach13. Database Management Systems14. DBMS Functions15. Database Architecture16. ANSI-SPARC 3 Level Architecture17. The Relational Data Model18. What is a Relation?19. Primary Key20. Cardinality and Degree21. Relationships22. Foreign Key23. Data Integrity 24. Data Dictionary

25. Database Design26. Requirements Collection and analysis27. Conceptual Design28. Logical Design29. Physical Design30. Entity Relationship Model31. A mini-world example32. Entities33. Relationships34. ERD Notations35. Cardinality36. Optional Participation37. Entities and Relationships38. Attributes39. Entity Relationship Diagram40. Entities41. ERD Showing Weak Entities42. Super Type / Sub Type Relationships43. Mapping ERD to Relational44. Map Regular Entities45. Map Weak Entities46. Map Binary Relationships47. Map Associated Entities48. Map Unary Relationships

Content49. Map Ternary Relationships50. Map Supertype/Subtype Relationships51. Normalization52. Advantages of Normalization53. Disadvantages of Normalization54. Normal Forms55. Functional Dependency 56. Purchase Order Relation in 0NF57. Purchase Order Relation in 1NF58. Purchase Order Relations in 2NF59. Purchase Order Relations in 3NF60. Normalized Relations61. BCNF – Boyce Codd Normal Form62. Structured Query Language63. What We Can Do with SQL ?64. SQL Commands65. SQL CREATE DATABASE66. SQL CREATE TABLE67. SQL DROP68. SQL Constraints69. SQL NOT NULL70. SQL PRIMARY KEY71. SQL CHECK72. SQL FOREIGN KEY

73. SQL ALTER TABLE74. SQL INSERT INTO75. SQL INSERT INTO SELECT76. SQL SELECT77. SQL SELECT DISTINCT78. SQL WHERE79. SQL AND & OR80. SQL ORDER BY81. SQL UPDATE 82. SQL DELETE83. SQL LIKE84. SQL IN85. SQL BETWEEN86. SQL INNER JOIN87. SQL LEFT JOIN88. SQL RIGHT JOIN89. SQL UNION90. SQL AS 91. SQL Aggregate Functions92. SQL Scalar functions93. SQL GROUP BY94. SQL HAVING95. Database Administration96. 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 DefinitionB. Data EntryC. Data ManipulationD. Data DisplayE. Data SecurityF. Data IntegrityG. 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 Entities2: Map Weak Entities3: Map Binary Relationships4: Map Associated Entities5: Map Unary Relationships6: Map Ternary (and n-ary) Relationships7: 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 Relationships2. Map Binary Many-to-Many Relationships3. 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 dateVID → Model, ColorISBN → 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 data2. Remove repeat groups from relation3. Create new relation(s) to include repeated

data4. 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 PROBLEMCannot know available parts until an order is placed (e.g. P4 is bush)

DELETE PROBLEMLoose 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 key2. Remove attribute and partial key to new

relation3. 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 PROBLEMCannot know available suppliers until an order is placed (e.g. 200 is hardware stores)

DELETE PROBLEMLoose information of supplier 100 if we cancel purchase order 116 (e.g. Delete PO for Supplier No 100)

UPDATE PROBLEMTo 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 BCNFSTU_ID STAFF_ID CLASS_CODE ENROLL_GRADE125 25 21344 A125 20 32456 C135 20 28458 B135 25 27563 C144 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_GRADE125 25 21344 A125 20 32456 C135 20 28458 B135 25 27563 C144 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_GRADE125 21344 A125 32456 C135 28458 B135 27563 C144 32456 B

CLASS_CODE STAFF_ID21344 2532456 2028458 2027563 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 NULLPRIMARY KEYCHECKFOREIGN 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 tblStudentWHERE 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 valueCOUNT() - Returns the number of rowsFIRST() - Returns the first valueLAST() - Returns the last valueMAX() - Returns the largest valueMIN() - Returns the smallest valueSUM() - Returns the sum

SQL Scalar functions

SQL scalar functions return a single value, based on the input value.

UCASE() - Converts a field to upper caseLCASE() - Converts a field to lower caseINITCAP() - 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 UpgradingDatabase SecurityEnrolling UsersMonitoring ActivitiesOptimizing the PerformanceProducing ReportsBackup 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