23
Er. Nawaraj Bhandari Topic 10 Supporting Transactions

Supporting Transactions

Embed Size (px)

Citation preview

Page 1: Supporting Transactions

Er. Nawaraj Bhandari

Topic 10Supporting Transactions

Page 2: Supporting Transactions

Transactions

A transaction is an operation carried out on the database.

Transactions can generally be identified as retrievals, inserts, updates and deletes. This is remembered by the acronym CRUD (Create, Retrieve, Update and Delete).

Transactions can be made up of one or more operations.

Page 3: Supporting Transactions

Identify Transactions

What do they do?

What tables do they affect?

What attributes do they affect?

How often do they run?

How many rows do they affect?

Page 4: Supporting Transactions

Transactions of Appointment System

Transaction 1 – Add a new patient

Transaction 2 – Delete a patient

Transaction 3 – Record a appointment

Transaction 4 – Show a detail list of patient and the appointments they have had with the doctors

Transaction 5 – Show a list of patients

Transaction 6 – Update a patient record to change their address

The tables required for this system are Patient, Appointment and Doctor.

Page 5: Supporting Transactions

CRUD Matrix of Appointment System (Blank)

TransactionRelation

Patient Appointment Doctor

T1

T2

T3

T4

T5

T6

Page 6: Supporting Transactions

CRUD Matrix of Appointment System

TransactionRelation

Patient Appointment Doctor

T1 C

T2 D

T3 C

T4 R R R

T5 R

T6 U

Page 7: Supporting Transactions

Transactions in the Boat Hire System

a. Enter the details of all the boats. Update any details for boats. Delete boats.

b. Enter the details for customers. Update any details for customers.

c. Enter the details for hiring of boats.

d. Enter the details for any damage to boats.

e. List the details of all the boats.

f. List the details of all the customers; their hire and for which boats.

g. List the details for damage, to which boats, during which hire periods and for which customers.

h. Provide a summary of the hires for a particular period.

Page 8: Supporting Transactions

TransactionRelation

Boat Customer Hire Damage

A

B

C

D

E

F

G

H

Blank CRUD Matrix

Page 9: Supporting Transactions

TransactionRelation

Boat Customer Hire Damage

A C U D

B C U

C C

D C

E R

F R R R

G R R R R

H R

Completed CRUD Matrix

Page 10: Supporting Transactions

Literary agent

Fill in the CRUD matrix below to show the following transactions.

Transaction 1. Add a new Author.

Transaction 2. Create a new agent and set up an appointment for her.

Transaction 3. Delete an author and all the appointments they have had.

Transaction 4. Show a list of Agents details and the Appointments they have had and with which Authors.

Transaction 5. Update an Agent’s address

Transaction 6. Delete an Appointment.

Page 11: Supporting Transactions

Roles in a System

Not every user is the same.

Users will need to access different parts of the system and access it in different ways.

Page 12: Supporting Transactions

Boat Hire System - Roles

Manager – should be able to access all parts of the system, because their role means that they might have to add and delete any data and be able to see anything.

Admin Assistant – just carries out routine tasks, such as adding any new customers and recording damage to boats.

Table/User Boat Customer Rental Damage

Manager CRUD CRUD CRUD CRUD

Admin Assistant

R CRU CRU CRU

Page 13: Supporting Transactions

SQL Facilities to Manage Roles

Grant – gives a particular role or user in the database system access to an object (such as a table).

Revoke – removes access to an object (such as a table) from a particular role or user in the database system.

Page 14: Supporting Transactions

Grant

GRANT CREATE ON Boat TO Admin;

This command will give the role of Admin the right to create data on the table Boat.

GRANT ALL ON Boat TO Manager;

This command will give the role of Manager the right to carry out any operation on the table Boat.

Page 15: Supporting Transactions

Revoke

REVOKE ALL ON Boat FROM Admin;

– this command will take away any access rights from the role of Admin on the table Boat.

REVOKE DELETE ON Boat FROM Manager;

– this command will take away the right to delete data from the Boat table by the Manager.

Page 16: Supporting Transactions

Performance

The term ‘Performance’ is generally used by database professionals to refer to the way in which a query behaves when run against a database.

Increasingly, databases contain large amounts of data...

The rate at which a query can return an answer can be slowed when it has to sort though large numbers of records.

Performance becomes an issue...

Page 17: Supporting Transactions

Indexes

An index is a structure in a database that helps queries run more quickly.

An index is a data structure that stores the values for a specific column in a table that makes easier to find a record.

Improves performance

Index can also be unique which will prevent a duplicate value from being added to that column.

Page 18: Supporting Transactions

Improving Performance with the Use of Views

View of selected rows or columns of these tables

Table 1

Table 2

Table 3

Query

Page 19: Supporting Transactions

View

A view is a virtual table which completely acts as a real table.

The use of view as a way to improve performance.

Views can be used to combine tables, so that instead of joining tables in a query, the query will just access the view and thus be quicker.

Page 20: Supporting Transactions

View

We can perform different SQL queries.

DESC department_worker_view;

Page 21: Supporting Transactions

De-Normalisation

Normalising our data model means we will have the minimum amount of redundancy.

If we are running a query that joins tables, this will be slower than running a query against a single table or view. This can have an effect on performance.

Denormalisation can be done by including an attribute in a table that should not be there according to the rules of normalisation.

Page 22: Supporting Transactions

References

http://stackoverflow.com/questions/7605707/clustered-vs-non-clustered

Page 23: Supporting Transactions

ANY QUESTIONS?