Dbms Ab Record Iicse - It
Dbms Ab Record Iicse - It
Submitted for the university practical examination held on.…………………at Sri Ranganathar Institute of
Engineering and Technology, Coimbatore.
Problem analysis:
PSO2 Have knowledge to build, automate and manage business solutions using
cutting edge technologies.
PSO3 Have excitement towards research in applied computer technologies.
Program Educational Outcomes
PEO1 Demonstrate technical competence with analytical and critical thinking to
understand and meet the diversified requirements of industry, academia and
research.
PEO2 Exhibit technical leadership, team skills and entrepreneurship skills to
provide business solutions to real world problems.
Work in multi-disciplinary industries with social and environmental
PEO3 responsibility, work ethics and adaptability to address complex engineering
and social problems.
PEO4 Pursue lifelong learning, use cutting edge technologies and involve in
applied research to design optimal solution
6
INDEX
Page Faculty
S.No Date Name of the Experiment Marks
No. Signature
1. DDL and DML commands
FOREIGN KEY AND
2. REFERENTIAL INTEGRITY
CONSTRAINT
QUERIES WITH WHERE
3. CLAUSE AND AGGREATE
FUNCTIONS.
4. SIMPLE JOIN OPERATION
AND SUB QUERIES
5. NATURAL JOIN, EQUI JOIN
AND OUTER JOIN
6A. STORED PROCEDURE
6B. FUNCTIONS
7. DCL AND TCL COMMAND
8. CREATION OF DATABASE
TRIGGERS
9. VIEWS AND INDEX
10. XML DATABASE CREATION
AND VALIDATION
11. CREATING DOCUMENT,
COLUMNS & GRAPH USING
NOSQL DATABASE
12. SIMPLE GUI APPLICATION
USING DATABASE
7
EX.NO: 1 DDL and DML commands
DATE :
AIM
PROCEDURE
Step 1: Start
Step 3: Create a table with necessary attributes and execute DDL and DML commands.
Step 5: Stop
SQL> CREATE TABLE EMP (EMPNO NUMBER (4), ENAME VARCHAR2 (10),
DESIGNATIN VARCHAR2 (10), SALARY NUMBER (8,2));
Table created.
EMPNO NUMBER(4)
ENAME VARCHAR2(10)
DESIGNATIN VARCHAR2(10)
SALARY NUMBER(8,2)
EMPNO NUMBER(6)
ENAME VARCHAR2(10)
DESIGNATIN VARCHAR2(10)
SALARY NUMBER(8,2)
~8~
SQL>ALTER TABLE EMP ADD (DOB DATE, DOJ DATE);
Table altered.
SQL> DESC EMP;
REMOVE / DROP
SQL> ALTER TABLE EMP DROP COLUMN DOJ;
SQL> DESC EMP;
Name Null? Type
Output
~9~
UNIQUE Constraint
MySQL> CREATE TABLE ShirtBrands(Id INTEGER, BrandName VARCHAR(40) UNIQUE,
Size VARCHAR(30));
MySQL> INSERT INTO ShirtBrands(Id, BrandName, Size) VALUES(1, 'Pantaloons', 38), (2,
'Cantabil', 40);
MySQL> INSERT INTO ShirtBrands(Id, BrandName, Size) VALUES(1, 'Raymond', 38), (2,
'Cantabil', 40);
Output
CHECK CONSTRAINT
CHECK (expr)
MySQL> CREATE TABLE Persons ( ID int NOT NULL,Name varchar(45) NOT NULL, Age
int CHECK (Age>=18) );
In the below output, we can see that the first INSERT query executes successfully, but the second
statement fails and gives an error that says: CHECK constraint is violated for key Age.
~ 10 ~
Output
RESULT
~ 11 ~
EX.NO:2
FOREIGN KEY AND REFERENTIAL INTEGRITY CONSTRAINT
DATE:
AIM
To create a set of tables and add foreign key and referential integrity constraints.
PROCEDURE
Step 1:Start
Step 5: Stop
DEPARTMENT
EMPLOYEES
~ 12 ~
OUTPUT
ERROR 1451 (23000): Cannot delete or update a parent row: a foreign key constrai
RESULT
~ 13 ~
EX.NO: 3 QUERIES WITH WHERE CLAUSE AND AGGREATE FUNCTIONS.
DATE :
AIM
PROCEDURE
Step 1: Start
Step 4:stop
Syntax:
~ 14 ~
WHERE Clause with OR condition
AGGREGATE FUNCTIONS
~ 15 ~
Output:
Output:
Consider our database has a table named employees, having the following data. Now, we are going
to understand this function with various examples:
Output:
~ 16 ~
MySQL avg() function example
Consider our database has a table named employees, having the following data. Now, we are going
to understand this function with various examples:
Output:
RESULT
~ 17 ~
EX.NO:4 SIMPLE JOIN AND SUB QUERIES
DATE :
AIM:
To execute and verify the SQL commands for Simple JOIN and sub queries.
PROCEDURE
STEP 1: Start
STEP 2: Create the table with its essential attributes.
STEP 3: Insert attribute values into the table
STEP 4: Execute Commands for JOIN operation and extract information from the table.
STEP 5: Execute Commands for Sub queries operation.
STEP 6: Stop
Consider two tables "officers" and "students", having the following data.
Output
~ 18 ~
MYSQL SUBQUERY
RESULT
~ 19 ~
EX.NO :5 NATURAL JOIN,EQUI JOIN AND OUTER JOIN
DATE :
AIM
To write a query to perform natural join ,equi join and outer join.
PROCEDURE
Step 1: Start
Step 3: Perform natural join,equi join and outer join operations with queries
Step 4: Stop
Syntax:
SELECT [column_names | *] FROM table_name1 NATURAL JOIN table_name2;
NATURAL JOIN:
~ 20 ~
MYSQL RIGHT OUTER JOIN
Syntax:
SELECT columns FROM table1 RIGHT [OUTER] JOIN table2 ON table1.column = table2.co
lumn;
Consider two tables "officers" and "students", having the following data.
~ 21 ~
EQUI JOIN
MySQL> SELECT cust. customer_name, bal.balance FROM customer AS cust, balance AS bal
WHERE cust.account = bal.account_num;
RESULT
~ 22 ~
STORED PROCEDURE
EX.NO:6
DATE :
AIM :
To write a SQL block to display the student name, marks whose average mark is above
60%.
ALGORITHM
STEP 1:Start
STEP 3:Insert the values into the table and Calculate total and average of each student
STEP 4: Execute the procedure function the student who get above 60%.
STEP 6: End
PROGRAM:
Output
Procedure created.
Table created
SQL> insert into student values (101,'priya', 78, 88,77,60,89);
~ 23 ~
1 row created.
~ 24 ~
SQL> insert into student values (102,'surya', 99,77,69,81,99);
1 row created.
SQL> insert into student values (103,'suryapriya', 100,90,97,89,91);
1 row created.
SQL> select * from student;
101 priya 78 88 77 60 89
102 surya 99 77 69 81 99
103 suryapriya 100 90 97 89 91
SQL> declare
2 ave number(5,2);
3 tot number(3);
4 cursor c_mark is select*from student where mark1>=40 and mark2>=40 and
5 mark3>=40 and mark4>=40 and mark5>=40;
6 begin
7 dbms_output.put_line('regno name mark1 mark2 mark3 mark4 mark4 mark5 total
8 average');
9 dbms_output.put_line(' ');
10 for student in c_mark
11 loop
12 tot:=student.mark1+student.mark2+student.mark3+student.mark4+student.mark5;
13 ave:=tot/5;
14 dbms_output.put_line(student.regno||rpad(student.name,15)
15 ||rpad(student.mark1,6)||rpad(student.mark2,6)||rpad(student.mark3,6)
16 ||rpad(student.mark4,6)||rpad(student.mark5,6)||rpad(tot,8)||rpad(ave,5));
17 end loop;
18 end;
19 /
OUTPUT
RESULT
~ 25 ~
EX NO: 6b FUNCTIONS
DATE :
AIM
PROCEDURE
STEP 1: Start
STEP 4: Frame the searching procedure for both positive and negative searching.
STEP 5: Execute the Function for both positive and negative result .
STEP 6: Stop
Table created.
1 row created.
1 row created.
begin
select username||','||doorno ||','||street ||','||place||','||pincode into address from phonebook
where phone_no=phone;
return address;
exception
when no_data_found then return 'address not found';
end;
/
Function created.
~ 26 ~
SQL>declare
2 address varchar2(100);
3 begin
4 address:=findaddress(20312);
5 dbms_output.put_line(address);
6 end;
7/
OUTPUT
RESULT
~ 27 ~
EX.NO:7 DCL AND TCL COMMANDS
DATE :
AIM
PROCEDURE
Step 1: Start
Step 5: Stop.
DCL COMMANDS
GRANT
REVOKE
1 row created.
~ 28 ~
SQL> SELECT * FROM EMP;
ROLL BACK
Rollback complete.
COMMIT
SQL> COMMIT;
Commit complete.
RESULT
~ 29 ~
EX.NO:8 CREATION OF DATABASE TRIGGERS
DATE :
AIM
To create database triggers using PL/SQL code
PROCEDURE
SYNTAX
create or replace trigger trigger name [before/after] {DML
statements} on [table name] [for each row/statement] begin
exception
end;
PROGRAM
SQL>create table poo(rno number(5),name varchar2(10));Table created.
SQL>insert into poo values (01.‟kala‟);
1 row created.
SQL>select * from poo;
RNO NAME
------ ----------
1 kala
2 priya
SQL>create or replace trigger pool before insert on poo for each row
2 declare
3 rno poo.rno%type
4 cursor c is select rno from poo;
5 begin
6 open c;
7 loop;
8 fetch c into rno;
9 if:new.rno=rno then
10 raise_application_error(-20005,‟rno already exist‟);
11 end if;
12 exit when c%NOTFOUND
13 end loop;
14 close c;
15 end;
16 /
Trigger created.
~ 30 ~
OUTPUT
SQL>insert into poo values(01,‟kala‟)
Insert into poo values (01,‟kala‟)
*
ERROR at line1:
ORA-20005:rno already exist
ORA-06512:”SECONDCSEA.POOL”,line 9
ORA-04088:error during execution at trigger “SECONDCSEA.POOL”
RESULT
Thus the PL/SQL blocks are developed for triggers and the results are verified.
~ 31 ~
EX.NO:9 VIEWS AND INDEX
DATE :
AIM
To execute and verify the SQL commands for Views and Indexes.
PROCEDURE
STEP 1: Start
STEP 5: Execute different Commands and extract information from the View.
STEP 6: Stop
CREATION OF TABLE
Table created.
TABLE DESCRIPTION
SQL> DESC EMPLOYEE;
EMPLOYEE_NAME VARCHAR2(10)
EMPLOYEE_NO NUMBER(8)
DEPT_NAME VARCHAR2(10)
DEPT_NO NUMBER(5)
DATE_OF_JOIN DATE
CREATION OF VIEW
SQL> CREATE VIEW EMPVIEW AS SELECT EMPLOYEE_NAME,EMPLOYEE_NO,
DEPT_NAME,DEPT_NO,DATE_OF_JOIN FROMEMPLOYEE;
view created.
DESCRIPTION OF VIEW
EMPLOYEE_NAME VARCHAR2(10)
EMPLOYEE_NO NUMBER(8)
DEPT_NAME VARCHAR2(10)
DEPT_NO NUMBER(5)
~ 32 ~
DISPLAY VIEW
1 ROW CREATED.
DELETION OF VIEW
DELETE STATEMENT
SQL> DELETE FROM EMPVIEW WHERE EMPLOYEE_NAME='SRI';
UPDATE STATEMENT:
1 ROW UPDATED.
~ 33 ~
DROP A VIEW:
VIEW DROPED
CREATE INDEX
MySQL> CREATE DATABASE
indexes;Query OK, 1 row affected (0.01
sec)
USE indexes;
Database changed
MySQL>CREATE TABLE
first_name varchar(50),
last_name varchar(50),
(1, 'John', 'Smith', 'ABC123', 60000), (2, 'Jane', 'Doe', 'DEF456', 65000),
(3, 'Bob', 'Johnson', 'GHI789', 70000), (4, 'Sally', 'Fields', 'JKL012', 75000),
(5, 'Michael', 'Smith', 'MNO345', 80000), (6, 'Emily', 'Jones', 'PQR678', 85000),
(7, 'David', 'Williams', 'STU901', 90000), (8, 'Sarah', 'Johnson', 'VWX234', 95000),
+ + + + + + + + + + +
| id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered
| 1 | SIMPLE | employees | NULL | ref | salary | salary | 5 | const | 1 | 100.00 |
+ + + + + + + + + + +
RESULT
~ 34 ~
EX.NO:10 XML DATABASE CREATION AND VALIDATION
DATE :
Aim
Algorithm
Step 1: Start
Step 4:Create XML Schema for data values and load values
Step 6:Stop
CREATE TABLE
created TIMESTAMP
);
<list>
<personperson_id="1"fname="Kapek"lname="Sainnouine"/>
<personperson_id="2"fname="Sajon"lname="Rondela"/>
<personperson_id="3"><fname>Likame</fname><lname>Örrtmons</lname></person>
<personperson_id="4"><fname>Slar</fname><lname>Manlanth</lname></person>
<person><fieldname="person_id">5</field><fieldname="fname">Stoma</field>
<fieldname="lname">Milu</field></person>
<person><fieldname="person_id">6</field><fieldname="fname">Nirtam</field>
<fieldname="lname">Sklöd</field></person>
<personperson_id="7"><fname>Sungam</fname><lname>Dulbåd</lname></person>
<personperson_id="8"fname="Sraref"lname="Encmelt"/>
</list>
LOAD XML LOCAL INFILE 'c:/db/person.xml' //this is ths location of the xml data file
~ 35 ~
OUTPUT
MySQL> SELECT
Result
~ 36 ~
EX.NO:11
CREATING DOCUMENT, COLUMNS & GRAPH USING NOSQL
DATE :
Aim
Algorithm
Step 1:Start
Step 5:Stop
>Connection string:
mongodb://localhost:27017
output:
~ 37 ~
Create collection in mongodb
OUTPUT:
mydbnew>db.details.insertOne({"website":"mywebsite"})
Output:
Db.details.find()
~ 38 ~
Output
PROCEDURE:
To access the MongoDB Charts application, you must be logged into Atlas
If you have an Atlas Project with clusters containing data you wish to visualize,
Step 3: Select the project from the Context dropdown in the left navigation pane.
Step 4: Create an Atlas cluster. The MongoDB Charts application makes it easy to connect
Collections in your cluster asdata sources. Data sources reference specific collections and
charts views that you can access in the Chart Builder to visualize the data in those collections
or charts views.
Step 5: Launch the MongoDB Charts application. In Atlas, click Charts in the navigation bar.
~ 39 ~
OUTPUT
Result
~ 40 ~
EX.NO:12
DATE : SIMPLE GUI APPLICATION USING DATABASE
Aim
Algorithm
Step 1: Start
Step 3:Design Login Screen with User Name and Password fields.
Step 5: Stop
PROGRAM
import tkinter as tk
import
MySQL.connectorfrom
tkinter import *
def submitact():
user = Username.get()
passw = password.get()
logintodb(user, passw)
try:
cursor.execute(savequery)
myresult = cursor.fetchall()
~ 41 ~
# Printing the result of the
# query
for x in myresult:
print(x)
print("Query Executed successfully")
except:
db.rollback()
print("Error occurred")
root = tk.Tk()
root.geometry("300x300")
root.title("DBMS Login Page")
root.mainloop()
Output:
Result
~ 42 ~
EX.NO:13 CASE STUDY USING REALTIME DATABASE APPLICATIONS
DATE :
Bank Entity: Attributes of Bank Entity are Bank Name, Code and Address.
and Address.
Customer_id is Primary Key for Customer Entity.
Branch Entity : Attributes of Branch Entity are Branch_id, Name and Address.
Balance.
Account_number is Primary Key for Account Entity.
Loan Entity: Attributes of Loan Entity are Loan_id, Loan_Type and Amount.
This bank ER diagram illustrates key information about bank, including entities such as
branches, customers, accounts, and loans. It allows us to understand the relationships between
entities.
~ 43 ~
ER Diagram of Bank Management System :
Relationships are:
One Bank can have many Branches but one Branch can not belong to many Banks, so
the relationship between Bank and Branch is one to many relationship.
One Branch can have many Accounts but one Account can not belong to many
Branches, so the relationship between Branch and Account is one to many
relationship.
~ 44 ~
Loan availed by Customer => M : N
(Assume loan can be jointly held by many Customers).
One Customer can have more than one Loans and also One Loan can be availed by one
or more Customers, so the relationship between Loan and Customers is many to many
relationship.
NORMALIZATION PROCESS
Database normalization is a stepwise formal process that allows us to decompose
database tables in such a way that both data dependency and update anomalies are minimized. It
makes use of functional dependency that exists in the table and primary key or candidate key in
analyzing the tables. Normal forms were initially proposed called First Normal Form
(INF), Second Normal Form (2NF), and Third Normal Form (3NF). Subsequently, R, Boyce, and
E. F. Codd introduced a stronger definition of 3NF called Boyce-Codd Normal Form. With the
exception of 1NF, all these normal forms are based on functional dependency among the attributes
of a table. Higher normal forms that go beyond BCNF were introduced later such as Fourth Normal
Form (4NF) and Fifth Normal Form (5NF). However, these later normal forms deal with situations
that are very rare.
~ 45 ~
TRIGGERS
To ensure the integrity and consistency of data during a transaction (A transaction is a unit of
program that updates various data items, read more about it here), the database system
maintains four properties. These properties are widely known as ACID properties.
Atomicity
This property ensures that either all the operations of a transaction reflect in database or none.
The logic here is simple, transaction is a single unit, it can’t execute partially. Either it executes
completely or it doesn’t, there shouldn’t be a partial execution.
Let’s say first operation passed successfully while second failed, in this case A’s balance would
be 300$ while B would be having 700$ instead of 800$. This is unacceptable in a banking system.
Either the transaction should fail without executing any of the operation or it should process both
the operations. The Atomicity property ensures that.
There are two key operations are involved in a transaction to maintain the atomicity of the
transaction.
Abort: If there is a failure in the transaction, abort the execution and rollback the changes made
by the transaction.
Consistency
Database must be in consistent state before and after the execution of the transaction. This
ensures that there are no errors in the database at any point of time. Application programmer is
responsible for maintaining the consistency of the database.
Example:
A transferring 1000 dollars to B. A’s initial balance is 2000 and B’s initial balance is 5000.
~ 46 ~
Before the transaction:
Total of A+B = 2000 + 5000 = 7000$
The data is consitendct before and after the execution of the transaction so this example
maintains the consistency property of the database.
Isolation
A transaction shouldn’t interfere with the execution of another transaction. To preserve the
consistency of database, the execution of transaction should take place in isolation (that means no
other transaction should run concurrently when there is a transaction already running).
For example account A is having a balance of 400$ and it is transferring 100$ to account B & C
both. So we have two transactions here. Let’s say these transactions run concurrently and both
the transactions read 400$ balance, in that case the final balance of A would be 300$ instead of
200$. This is wrong.
If the transaction were to run in isolation then the second transaction would have read the correct
balance 300$ (before debiting 100$) once the first transaction went successful.
Durability
Once a transaction completes successfully, the changes it has made into the database should
be permanent even if there is a system failure. The recovery-management component of
database systems ensures the durability of transaction.
STORED PROCEDURE
EXEC bank.GetTransactions
@AccountID = 100000,
@StartDate = '4/1/2007',
@EndDate = '4/30/2007'
~ 47 ~
Conclusion:
The case study was analyzed and find out problem statement of banking System, It
is used to analyze to structure of the Database. It shows relationships between entities and their
attributes. An ER model provides a means of communication among the various modules in
banking system with database connectivity was established.
~ 48 ~
Ex.No : CBS1 Case Study Using Real Life Database Applications
Date :
To develop a Inventory Control System using Oracle as s back end(data base) and Microsoft Visual basic
as a front end.
TABLE CREATION:
TABLE NAME:SUPPLIER
SQL> create table supplier (supno number(10), supname varchar2(20),supdate date, price
number(20),quantity number(10),ITEM_NAME VARCHAR2(20));
Table created.
1 row created.
1 row created.
TABLE NAME:ITEM
Table created.
1 row created.
1 row created.
SQL> COMMIT;
Commit complete.
CODING
FORM1:
Form3.Show
End Sub
End Sub
FORM2:
End Sub
Private Sub Command6_Click()
Adodc1.Recordset.MoveFirst
End Sub
Private Sub Command7_Click()
Adodc1.Recordset.MoveLast
End Sub
Private Sub Command8_Click()
If Adodc1.Recordset.BOF = False Then
Adodc1.Recordset.MovePrevious
Else
MsgBox "BEGIN OF FILE!!", vbOKOnly, "Warning"
End If
End Sub
Private Sub Command9_Click()
Form1.Show
End Sub
FORM3:
Private Sub Command1_Click()
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields("itemno") = Text1.Text
Adodc1.Recordset.Fields("item_name") = Text2.Text
Adodc1.Recordset.Fields("price") = Text4.Text
Adodc1.Recordset.Fields("quat_available") = Text5.Text
Adodc1.Recordset.Update
MsgBox "Data Added"
End Sub
Private Sub Command10_Click()
Form2.Show
End Sub
Private Sub Command3_Click()
Adodc1.Recordset.Delete
Adodc1.Recordset.Update
End Sub
Private Sub Command4_Click()
Unload Me
End Sub
HOME PAGE
SUPPLIER FORM
ITEM FORM
RESULT:
Thus the Inventory Control System Mini project has been implemented and executed successfully.
Ex.No : CBS2 Database Programming for Implicit and Explicit Cursor
Date:
Aim :
To develop a database application for Implicit and Explicit Cursor.
Table Creation :
CREATE TABLE CUSTOMERS(
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
);
Table Created
+ + + + + +
| 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 |
+ + + + + +
PL/SQL Implicit Cursor
Create procedure:
DECLARE
total_rows number(2);
BEGIN
UPDATE customers
SET salary = salary + 5000;
IF sql%notfound THEN
dbms_output.put_line('no customers updated');
ELSIF sql%found THEN
total_rows := sql%rowcount;
dbms_output.put_line( total_rows || ' customers updated ');
END IF;
END;
/
6 customers updated
PL/SQL procedure successfully completed.
Create procedure:
DECLARE
c_id customers.id%type;
c_name customers.name%type;
c_addr customers.address%type;
CURSOR c_customers is
BEGIN
OPEN c_customers;
LOOP
FETCH c_customers into c_id, c_name, c_addr;
END LOOP;
CLOSE c_customers;
END;
1 | Ramesh| Ahmedabad
2 | Khilan| Delhi
3 | kaushik| Kota
4 | Chaitali| Mumbai
5 | Hardik| Bhopal
6 | Komal| MP
Result :
Thus the database program is developed for implicit and explicit cursor and executed successfully.