HND Computing UNIT 38: Database Management Systems
HND Computing UNIT 38: Database Management Systems
Faisal saghir
1. SQL ─ Overview SQL
WhatisSQL?
SQL is Structured Query Language, which is a computer language for storing, manipulating
and retrieving data stored in a relational database.
SQL is the standard language for Relational Database System. All the Relational Database
Management Systems (RDMS) like MySQL, MS Access, Oracle, Sybase, Informix, Postgres
and SQL Server use SQL as their standard database language.
Why SQL?
SQL is widely popular because it offers the following advantages:
Allows users to define the data in a database and manipulate that data.
Allows to embed within other languages using SQL modules, libraries & pre-
compilers.
1978 – IBM worked to develop Codd's ideas and released a product named
System/R.
SQL
1986 – IBM developed the first prototype of relational database and standardized
by ANSI. The first relational database was released by Relational Software which
later came to be known as Oracle.
SQLProcess
When you are executing an SQL command for any RDBMS, the system determines the
best way to carry out your request and SQL engine figures out how to interpret the task.
There are various components included in this process.
Query Dispatcher
Optimization Engines
Classic Query Engine
SQL Query Engine, etc.
A classic query engine handles all the non-SQL queries, but a SQL query engine won't
handle logical files.
SQLCommands
The standard SQL commands to interact with relational databases are CREATE, SELECT,
INSERT, UPDATE, DELETE and DROP. These commands can be classified into the following
groups based on their nature:
Command Description
Command Description
Command Description
WhatisRDBMS?
RDBMS stands for Relational Database Management System. RDBMS is the basis for SQL,
and for all modern database systems like MS SQL Server, IBM DB2, Oracle, MySQL, and
Microsoft Access.
What is a table?
The data in an RDBMS is stored in database objects which are called as tables. This table
is basically a collection of related data entries and it consists of numerous columns and
rows.
Remember, a table is the most common and simplest form of data storage in a relational
database. The following program is an example of a CUSTOMERS table:
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
What is a field?
Every table is broken up into smaller entities called fields. The fields in the CUSTOMERS
table consist of ID, NAME, AGE, ADDRESS and SALARY.
A field is a column in a table that is designed to maintain specific information about every
record in the table.
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
+----+----------+-----+-----------+----------+
What is a column?
A column is a vertical entity in a table that contains all information associated with a
specific field in a table.
For example, a column in the CUSTOMERS table is ADDRESS, which represents location
description and would be as shown below:
+-----------+
| ADDRESS |
+-----------+
| Ahmedabad |
| Delhi |
| Kota |
| Mumbai |
| Bhopal |
| MP |
| Indore |
+----+------+
It is very important to understand that a NULL value is different than a zero value or a
field that contains spaces. A field with a NULL value is the one that has been left blank
during a record creation.
SQLConstraints
Constraints are the rules enforced on data columns on a table. These are used to limit the
type of data that can go into a table. This ensures the accuracy and reliability of the data
in the database.
Constraints can either be column level or table level. Column level constraints are applied
only to one column whereas, table level constraints are applied to the entire table.
SQL
Following are some of the most commonly used constraints available in SQL:
NOT NULL Constraint: Ensures that a column cannot have a NULL value.
DEFAULT Constraint: Provides a default value for a column when none is specified.
UNIQUE Constraint: Ensures that all the values in a column are different.
INDEX: Used to create and retrieve data from the database very quickly.
DataIntegrity
The following categories of data integrity exist with each RDBMS:
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.
DatabaseNormalization
Database normalization is the process of efficiently organizing data in a database. There
are two reasons of this normalization process:
Eliminating redundant data. For example, storing the same data in more than one
table.
Normalization guidelines are divided into normal forms; think of a form as the format or
the way a database structure is laid out. The aim of normal forms is to organize the
database structure, so that it complies with the rules of first normal form, then second
normal form and finally the third normal form.
It is your choice to take it further and go to the fourth normal form, fifth normal form and
so on, but in general, the third normal form is more than enough.
SQL
Database–FirstNormalForm(1NF)
The First normal form (1NF) sets basic rules for an organized database:
Define the data items required, because they become the columns in a table.
For example, you put all the columns relating to locations of meetings in the Location
table, those relating to members in the MemberDetails table and so on.
So, if we populate this table for a single customer having multiple orders, then it would be
something as shown below:
But as per the 1NF, we need to ensure that there are no repeating groups of data. So, let
us break the above table into two parts and then join them using a key as shown in the
following program:
CUSTOMERS Table
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
PRIMARY KEY (ID)
);
ORDERS Table
CREATE TABLE ORDERS(
ID INT NOT NULL,
CUSTOMER_ID INT NOT NULL,
ORDERS VARCHAR(155),
PRIMARY KEY (ID)
);
ID CUSTOMER_ID ORDERS
Database–SecondNormalForm(2NF)
The Second Normal Form states that it should meet all the rules for 1NF and there must
be no partial dependences of any of the columns on the primary key:
Consider a customer-order relation and you want to store customer ID, customer name,
order ID and order detail and the date of purchase:
This table is in the first normal form; in that it obeys all the rules of the first normal form.
In this table, the primary key consists of the CUST_ID and the ORDER_ID. Combined, they
are unique assuming the same customer would hardly order the same thing.
However, the table is not in the second normal form because there are partial
dependencies of primary keys and columns. CUST_NAME is dependent on CUST_ID and
there's no real link between a customer's name and what he purchased. The order detail
and purchase date are also dependent on the ORDER_ID, but they are not dependent on
the CUST_ID, because there is no link between a CUST_ID and an ORDER_DETAIL or their
SALE_DATE.
To make this table comply with the second normal form, you need to separate the columns
into three tables.
First, create a table to store the customer details as shown in the code block below:
);
The next step is to create a table to store the details of each order:
);
Finally, create a third table storing just the CUST_ID and the ORDER_ID to keep a track
of all the orders for a customer:
Database– ThirdNormalForm(3NF)
A table is in a third normal form when the following conditions are met:
);
The dependency between the zip code and the address is called as a transitive dependency.
To comply with the third normal form, all you need to do is to move the Street, City and
the State fields into their own table, which you can call as the Zip Code table.
The advantages of removing transitive dependencies are mainly two-fold. First, the
amount of data duplication is reduced and therefore your database becomes smaller.
The second advantage is data integrity. When duplicated data changes, there is a big risk
of updating only some of the data, especially if it is spread out in many different places in
the database.
For example, if the address and the zip code data were stored in three or four different
tables, then any changes in the zip codes would need to ripple out to every record in those
three or four tables.
3. SQL ─ RDBMSDatabases SQL
There are many popular RDBMS available to work with. This tutorial gives a brief overview
of some of the most popular RDBMS’s. This would help you to compare their basic features.
MySQL
MySQL is an open source SQL database, which is developed by a Swedish company –
MySQL AB. MySQL is pronounced as "my ess-que-ell," in contrast with SQL, pronounced
"sequel."
MySQL is supporting many different platforms including Microsoft Windows, the major
Linux distributions, UNIX, and Mac OS X.
MySQL has free and paid versions, depending on its usage (non-commercial/commercial)
and features. MySQL comes with a very fast, multi-threaded, multi-user and robust SQL
database server.
History
Development of MySQL by Michael Widenius & David Axmark beginning in 1994.
Windows Version was released on the 8th January 1998 for Windows 95 and NT.
Version 3.23: beta from June 2000, production release January 2001.
Version 4.0: beta from August 2002, production release March 2003 (unions).
Version 4.01: beta from August 2003, Jyoti adopts MySQL for database tracking.
Version 4.1: beta from June 2004, production release October 2004.
Version 5.0: beta from March 2005, production release October 2005.
Features
High Performance.
High Availability.
Management Ease.
MSSQLServer
MS SQL Server is a Relational Database Management System developed by Microsoft Inc.
Its primary query languages are:
T-SQL
ANSI SQL
History
1987 - Sybase releases SQL Server for UNIX.
1989 - Microsoft, Sybase, and Aston-Tate release SQL Server 1.0 for OS/2.
1990 - SQL Server 1.1 is released with support for Windows 3.0 clients.
2001 - Microsoft releases XML for SQL Server Web Release 1 (download).
2002 - Microsoft releases SQLXML 2.0 (renamed from XML for SQL Server).
Features
High Performance
High Availability
Database mirroring
Database snapshots
CLR integration
Service Broker
DDL triggers
Ranking functions
Row version-based isolation levels
XML integration
4. SQL – Syntax SQL
SQL is followed by a unique set of rules and guidelines called Syntax. This tutorial gives
you a quick start with SQL by listing all the basic SQL Syntax.
All the SQL statements start with any of the keywords like SELECT, INSERT, UPDATE,
DELETE, ALTER, DROP, CREATE, USE, SHOW and all the statements end with a semicolon
(;).
The most important point to be noted here is that SQL is case insensitive, which means
SELECT and select have same meaning in SQL statements. Whereas, MySQL makes
difference in table names. So, if you are working with MySQL, then you need to give table
names as they exist in the database.
VariousSyntaxinSQL
All the examples given in this tutorial have been tested with a MySQL server.
SQL IN Clause
SELECT SUM(column_name)
FROM table_name
WHERE CONDITION
GROUP BY column_name;
SELECT COUNT(column_name)
FROM table_name
WHERE CONDITION;
SQL
SELECT SUM(column_name)
FROM table_name
WHERE CONDITION
GROUP BY column_name
HAVING (arithematic function condition);
.....
columnN datatype,
PRIMARY KEY( one or more columns )
);
DESC table_name;
UPDATE table_name
SET column1 = value1, column2 = value2....columnN=valueN
[ WHERE CONDITION ];
USE database_name;
COMMIT;
SQL Data Type is an attribute that specifies the type of data of any object. Each column,
variable and expression has a related data type in SQL. You can use these data types while
creating your tables. You can choose a data type for a table column based on your
requirement.
SQL Server offers six categories of data types for your use which are listed below −
tinyint 0 255
bit 0 1
Note − Here, datetime has 3.33 milliseconds accuracy where as smalldatetime has 1
minute accuracy.