Database Using MySQL Creation, Manipulation, and Management Jerome Locson Developer, Ariba Tech Solutions [email protected]
May 25, 2015
Database Using MySQL
Creation, Manipulation, and Management
Jerome LocsonDeveloper, Ariba Tech [email protected]
Graduate from ADZU, BSCS PhilNITS FE Passer GTUG PH, Zamboanga Chapter Community
Manager Technopreneur, Ariba Tech Solutions Blog: www.jeromelocson.com
About me
Relational Database Concept Structure Query Language (SQL)
◦ DDL, DML and DCL Database Normalization ACID Property Relational Database Management Systems
(RDBMS), MySQL Example of MySQL Queries (PhpMyAdmin) SQL Injection Prevention
Outline
◦ Used by all major commercial database systems◦ Very simple model◦ Query with high-level languages: simple yet
expressive◦ Efficient implementations
Relational Databases
The Relational Model
Schema = structural description of relations in database Instance = actual contents at given point in time
The Relational Model Database = set of named relations (or tables) Each relation has a set of named attributes (or columns) Each tuple (or row) has a value for each attribute Each attribute has a type (or domain)
The Relational Model
NULL – special value for “unknown” or “undefined”
The Relational Model Key – attribute whose value is unique in each tuple Or set of attributes whose combined values are unique
◦ Used by all major commercial database systems◦ Very simple model◦ Query with high-level languages: simple yet
expressive◦ Efficient implementations
Relational Databases
Standard/dominant language for accessing databases and processing
Steady improvements in reliability, performance and security
Applicable to many database systems
Structure Query Language (SQL)
It can define a database (DDL) It can manipulate database (DML) and, can control a database (DCL)
What can SQL do?
defining the structure and contents of a relational database
Metadata (data about the data) defines the mapping of database to physical
hardware and devices Basic Syntax:
◦ Create Table, Alter Table, Drop Table, Create View, Create User, etc.
Data Definition Language (DDL)
specifies how queries and updates are to be done
Basic Syntax:◦ Select, Insert, Delete, Update
Data Manipulation Language (DML)
involves configuring and controlling the database - permission, roles, and referential integrity
Basic Syntax:◦ Grant, Check, Constraint, Primary Key, Foreign
Key
Data Control Language (DCL)
Process of efficiently organizing data in a database (1NF-5NF)
Too: Entity-Relationship Diagram (ERD) Goals:
◦ eliminating redundant data◦ ensuring data dependencies make sense
Forms:◦ 1NF (First Normal Form)◦ 2NF (Second Normal Form)◦ 3NF (Third Normal Form)
Database Normalization
First normal form (1NF) sets the very basic rules for an organized database:
◦ Eliminate duplicative columns from the same table.
◦ Create separate tables for each group of related data and identify each row with a unique column or set of columns (the primary key).
First Normal Form (1NF)
Second normal form (2NF) further addresses the concept of removing duplicative data:
◦ Meet all the requirements of the first normal form.◦ Remove subsets of data that apply to multiple
rows of a table and place them in separate tables.◦ Create relationships between these new tables
and their predecessors through the use of foreign keys.
Second Normal Form (2NF)
Third normal form (3NF) goes one large step further:◦ Meet all the requirements of the second normal
form.◦ Remove columns that are not dependent upon the
primary key.
Third Normal Form (3NF)
Example of Normalization
Example of Normalization
Example of Normalization
Stands for atomicity, consistency, isolation, durability
set of properties that guarantee database transactions are processed reliably
ACID Property
Atomicity (atomic)◦ requires that database modifications must follow
an "all or nothing" rule◦ If one part of the transaction fails, the entire
transaction fails and the database state is left unchanged.
ACID Property
Consistency ◦ ensures that any transaction the database
performs will take it from one consistent state to another
◦ only consistent (valid according to all the rules defined) data will be written to the database
◦ whatever rows will be affected by the transaction will remain consistent with each and every rule
ACID Property
Isolation◦ no transaction should be able to interfere with
another transaction at all◦ use a serial model where no two transactions can
occur on the same data at the same time
ACID Property
Durability◦ once a transaction has been committed, it will
remain so◦ every committed transaction is protected against
power loss/crash/errors and cannot be lost by the system and can thus be guaranteed to be completed
ACID Property
RDBMS is the basis for SQL, and for all modern database systems like MS SQL Server, IBM DB2, Oracle, MySQL, and Microsoft Access.
MySQL database is the world's most popular open source database for the Web
Supports different languages,environment, etc.
www.mysql.com
Relational Database Management Systems (RDBMS), MySQL
• mysql_connect(host, username [,password]);◦ Connects to a MySQL server on the specified host
using the given username and/or password. Returns a MySQL link identifier on success, or FALSE on failure.
• mysql_select_db(db_name [,resource])◦ Selects a database from the database server.
Useful PHP Functions for MySQL
• mysql_query(SQL, resource); ◦ Sends the specified SQL query to the database
specified by the resource identifier. The retrieved data are returned by the function as a MySQL result set.
• mysql_result(result, row [,field]); ◦ Returns the contents of one cell from a MySQL result
set. The field argument can be the field name or the field’s offset.
• mysql_fetch_array(result [,result_type])◦ Fetch a result row as an associative array, a numeric
array, or both. The result type can take the constants MYSQL_ASSOC, MYSQL_NUM, and MYSQL_BOTH.
Useful PHP Functions for MySQL
• mysql_free_result(result)◦ Frees the result set
• mysql_close(resource)◦ Closes the connection to the database.
Useful PHP Functions for MySQL
If there is error in the database connection, you can terminate the current script by using the die function.
For example: $db = mysql_connect("localhost", "root“, “”)
or die("Could not connect : " . mysql_error());
mysql_select_db("my_database") or die("Could not select database");
$result = mysql_query($query) or die("Query failed");
Error Handling
Example: Looping through the Cells<?php/* Connecting, selecting database */$link = mysql_connect("mysql_host", "mysql_user", mysql_password") or die("Could not connect : " . mysql_error());echo "Connected successfully";mysql_select_db("my_database") or die("Could not select database");
/* Performing SQL query */$query = "SELECT * FROM my_table";$result = mysql_query($query) or die("Query failed : " . mysql_error());
/* Printing results in HTML */echo "<table>\n";while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { echo "\t<tr>\n"; foreach ($line as $col_value) { echo "\t\t<td>$col_value</td>\n"; } echo "\t</tr>\n";}echo "</table>\n";
Loop through each row of the result set
Loop through each element in a row
/* Free resultset */mysql_free_result($result);
/* Closing connection */mysql_close($link);?>
Example: Looping through the Cells
Using mysql_real_escape_string() Using of string replace method for SQL
keywords like SELECT, INSERT, DELETE and UPDATE
SQL Injection Prevention
Thank you!Twitter: @jeromelocson
Email: [email protected]: www.jeromelocson.com