Dev traning 2016 databases

28
Databases SACHEEN DHANJIE

Transcript of Dev traning 2016 databases

Page 1: Dev traning 2016   databases

DatabasesSACHEEN DHANJIE

Page 2: Dev traning 2016   databases

Sacheen DhanjieSenior Developer @ Afrihost.com

Page 3: Dev traning 2016   databases

What are databases?•A structured set of data held on a computer

•A place to store data for reading and writing and updating.

Page 4: Dev traning 2016   databases

Types of databases• Relational Databases• Document Oriented Databases• Distributed Databases• Key Value Databases• There are many other types of databases, you can read up on them here: https://en.wikipedia.org/wiki/Category:Types_of_databases

Page 5: Dev traning 2016   databases

Relational Database• Relational Databases as databases that allow data tables to be related in some manner.

• This allows for data integrity• Normalization• Relationships

Page 6: Dev traning 2016   databases

Normalization• Normalization is the process of organizing the columns (attributes) and tables (relations) of a relational database to minimize data redundancy.

• Basically it means, we take a table that has many columns and split it up into smaller tables with little or no redundancy.

• Smaller organized tables also improves performance and disk space usage.

Page 7: Dev traning 2016   databases

Normalization

Page 8: Dev traning 2016   databases

Normalization

What else needs to be done?

Page 9: Dev traning 2016   databases

Normalization

Page 10: Dev traning 2016   databases

Relationships

Page 11: Dev traning 2016   databases

Relationships• How would we connect these two table?

Page 12: Dev traning 2016   databases

Relationships

Page 13: Dev traning 2016   databases

Relationships

Page 14: Dev traning 2016   databases

Relationship Type• One to Many

• One Client has Many Client Products • One to One

• One Stock Item belongs to One Client• Many to Many

• Many Users have Many Permissions• http://www.techrepublic.com/article/relational-databases-defining-relationships-between-database-tables/

Page 15: Dev traning 2016   databases

Keys

Page 16: Dev traning 2016   databases

Keys• Primary Key

• Uniquely identifies a record• Joint Key

• Two or more columns that uniquely identifies a record• Indexes

• Improves queries to the database• Useful on large tables• index columns that will be used when querying the database

• Foreign Keys• Theses are used when creating relationships between tables

Page 17: Dev traning 2016   databases

Select

Page 18: Dev traning 2016   databases

CRUD – Create/ Read / Update / Delete

Page 19: Dev traning 2016   databases

Joining Tables

Page 20: Dev traning 2016   databases

Joins

• Left Join• Inner Join• Outer Join• UnionSub Query [select from a select] => expensivehttp://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.htmlhttp://www.mysqltutorial.org/

Page 21: Dev traning 2016   databases

Transactions

Page 22: Dev traning 2016   databases

Transactions

START TRANSACTION – initiates the transactionCOMMIT – save everything in the transactionROLLBACK – revert all the changes

Page 23: Dev traning 2016   databases

Features• Triggers

• MySQL triggers are stored programs that are executed automatically to respond to specific events associated with table e.g., insert, update or delete a record

• Stored Procedures• SQL wrapped in a callable function

• getUsers() = select * from Users;• CALL getUsers()

Page 24: Dev traning 2016   databases

NoSQL Databases• Databases that stores information in Collections• A Collection has Documents• A Document has an Objects• Most do not support transactions• Used to store dynamic information

• GEO location data

Page 25: Dev traning 2016   databases

NoSQL Databases• MongoDB• CounchDB• neDB

Page 26: Dev traning 2016   databases

NoSQL Databases• db.items.find({}).pretty()

Page 27: Dev traning 2016   databases

Key Value Pair Databases• Redis• Riak• Key value databases are great for caching information• http://nosql-database.org/

Page 28: Dev traning 2016   databases

Questions?