lecture by prof.dr.s.sridhar 1 database technology by dr.s.sridhar, ph.d.(jnud), raci(paris, nice),...
TRANSCRIPT
Lecture by Prof.Dr.S.Sridhar
1
DataBase Technologyby
Dr.S.Sridhar, Ph.D.(JNUD),RACI(Paris, NICE), RMR(USA), RZFM(Germany)
DIRECTORARUNAI ENGINEERING COLLEGETIRUVANNAMALAI
Lecture by Prof.Dr.S.Sridhar
2
DBMS CONCEPTSData Base
Management Systems
• Examples of Databases• Files & DB – Systems• Advantages of DBMS• Attributes / Entities• Normalization in RDBMS• RDBMS & Examples• SQL in DB & Examples• Entity-relationship model• 3NF• Students/s DB – Case Study• Data Base Security / Backups
Lecture by Prof.Dr.S.Sridhar
3
• What’s Database System ?- It is nothing but a computerized record keeping system.- The DB itself can be regarded as electronic filing cabinet.- It is a collection of files.
The user of the system will have the following facilities :• Adding New, empty files to the DB.• Inserting new data into existing files.• Retrieving data from existing files.• Deleting data from existing files.• Removing existing files, empty or
otherwise, from the DBData base is a collection of files.Data base is a collection of records.Data base is a collection of fields.
Lecture by Prof.Dr.S.Sridhar
4
• The above file is referred as ‘Table’ in RDBMS – Sense.
• Call this table as “CELLAR”• This contains many records.• Each record has fields.• Here
• is a record • The values inside the tableare called “ Field values”
BIN
WINE PRODUCER YEAR BOTTLES
READY
2 Chardonnary Buena Vista 1992 1 1994
3 Chardonnary Geyser Peak 1992 5 1994
6 Chardonnary Stonestreet 1991 4 1993
12 Jo.Riesling Jekel 1993 1 1994
21 Fune ‘ Blanc Ch.St.Jean 1992 4 1994
22 Fune ‘ Blanc Geyser Peak 1991 2 1993
30 Cab.Saurignon
Jekel 1986 12 1995
43 Cab.Saurignon
Jekel 1990 2 1993
45 Pinot Noir Buena Vista 1989 9 1998
50 Pinrot Noir Buena Vista 1990 2 1998
BIN
WINE
PRODUCER
YEAR
BOTTLES
READY
Fields
Lecture by Prof.Dr.S.Sridhar
5
Retrieve Data (Query Language)
SELECT WINE, BIN, PRODUCERFROM CELLARWHERE READY = 1995 ;
RESULT
is the command used to Retrivefrom which table ( file )
Condition
INSERT:INSERTINTO CELLAR ( BIN, WINE, PRODUCER )
VALUES ( 53, ‘Pinot Noir’, ‘Saintsbury’);UPDATE:
UPDATE CELLARSET BOTTLES = 4WHERE BIN = 3;
WINE
Cab.Saurignon
BIN
30
PRODUCER
JEKEL
Lecture by Prof.Dr.S.Sridhar
6
DELETEDELETEFROM CELLARWHERE BIN = 2;
Thus, the commands like, SELECT, INSERT, UPDATE and DELETE are actually the examples of Database Query Language.
SQL – Structured Query Language
Remarks :- One should be very careful. Whenever DELETE or
UPDATE operations are done in the DB.
Here, - Retrieving any amount of fields for
a particular record is done .- Inserting into file for a particular field(s) with values is done.- Updating is for a particular field in
a record is done.- Deleting is done for a record under
a matching condition.
Lecture by Prof.Dr.S.Sridhar
7
(DBMS)Data Base Management System
Application ENDPrograms USERS
Major Components:* Data* Hardware Simplified View * Software of Data base System* Users
An Overview of Database Management
Data Base
Lecture by Prof.Dr.S.Sridhar
8
Examples of Data Bases: Financial Database Personnel Database ( Employee) Payroll Database Accounting Database Inventory Database Management Information Database Library Databaseand so on.
Examples of DBMS (Data Base Management System) ORACLE INFORMIX INGRESS SYBASEand so on.
What ‘s Data ?It is the meaning full information stored in computer system.
Two Kinds Integrated Shared
Integrated, means that the Database can be thought of as a unification of several otherwise distinct data files, with any redundancy among those files wholly or partially.
Lecture by Prof.Dr.S.Sridhar
9
ExampleA Database containing both the files.EMPLOYEE
IDNONameAddressDepartmentSalariesPhone No.Permanent Address
and a training file.TRAINING
IDNOCourse a HeadedCourse DetailsCourse FeesLocation of CourseFeedbackGrade Offered
Shared Database means that individual pieces of data in the database can be shared by several different users.
For example from the file ‘EMPLOYEE’,The general details can be utilised by Personnel department.The salary details may be utilized by Financial department. All
done in shared manner.and so on.
Lecture by Prof.Dr.S.Sridhar
10
Hardware Consisting of Secondary storage volumes that are used to
hold the stored data with associated I/O devices(Disk drives etc), Devices Controllers, I/O channels,etc.
The Processors and associated main memory that are used to support the execution of the Database system software.
Software Consisting of Database Manager (DB Manager) or more
commonly used term as ‘DBMS’, Data Base Management System.
Additional utilities like Application development tools, design aids, report writers and so on.
Example: Oracle, Informix, Sybase,etc.
Users Application Programmers, who are
responsible for writing programs to access the Database for Insert, Update, Delete, Query, Reports etc.
End users who are really accessing the database for queries / data entry / report generation etc.
Lecture by Prof.Dr.S.Sridhar
11
What is Database ? It is a collection of ‘Persistent data’ that is used by
the application systems of some given enterprise.
Input data : refers the information entered into the systems for the very first time ( typically from a terminal or workstation). It may be part of persistent data but it is not initially part of the databases
Output Data : refers for messages and results coming out from the system ( typically printed or displayed on a screen). Again such information is derived from persistent data but it is not itself considered to the part of the database.
Enterprise (Egs) Persistent Data (Egs)************ **************** A Manufacturing * Product Data
Company A Bank * Account Data A Hospital * Patient Data A University A govt. Dept.
Lecture by Prof.Dr.S.Sridhar
12
Advantages of Databases Compactness ( No read for Voluminous papers) Speed ( for retrieval of Queries / Reports etc) Currency (Accurate, up-to-date information is
available on demand anytime ) Centralized control of data.
The foregoing benefits apply even more force in multi – user environment, of course, where the database is likely to be much larger and much more complex then in the single-user-case.
Redundancy of data can be avoided. In consistency can be avoided to some extent. The data can be shared by many users. Standards can be enforced. Security restrictions can be applied. Integrity can be maintained. Conflicting requirement can be balanced.
Lecture by Prof.Dr.S.Sridhar
13
RDBMS (Relational Data Base Mgmt. System)
Relational Systems are such that
1. The data perceived by users as tables.
2. The operators are at users’ disposal.(eg) Data retrieval – are operators that qurerate new tables from old and those operators include atleast ‘SELECT’, PROJECT and JOIN.
EXAMPLE :
DEPT
EMP
DEPT# DNAME BUDGET
D1
D2
D3
Marketing
Development
Research
10M
12M
5M
EMP#
ENAME DEPT Salary
E1
E2
E3
E4
John
Marsal
Lemark
Cheng
D1
D1
D2
D2
40k
25k
42k
35k
Lecture by Prof.Dr.S.Sridhar
14
SELECT – Operation extracts specified rows from a table.
PROJECT - Operation extracts specified columns from a table
JOIN - Operation joins together two tables on the basis of common values in a
common column.
Apply the above operations on DEPT & EMP Tables
SELECT DEPTs WHERE BUDGET > 8M
Result
(Specified Rows)
PROJECT DEPTs OVER DEPT#, BUDGET
Result
(Specified Columns)
JOIN DEPTs and EMPs OVER DEPT#
Result
Common
Rows
Common
Columns
DEPT# DNAME BUDGET
D1
D2
Marketing
Development
10M
12M
DEPT# BUDGET
D1
D2
D3
10M
12M
5M
DEPT#
DNAME BUDGET
EMP#
ENAME
SAL
D1
D1
D2
D2
Marketing
Marketing
Development Development
10M
10M
12M
12M
E1
E2
E3
E4
John
Marsal
Lemark
Cherq
40K
25K
42K
35K
Lecture by Prof.Dr.S.Sridhar
15
Entity – Attributes –Relationship modelsConcept Information Examples
Definition
ENTITY A Distinguishable - Supplierobject - Part
- Person- Purchase Orderand so on
PROPERTY A piece of information - Supplier number to describe an entity - Shipment Qty
- Person height- P.O.data etc.
RELATIONSHIP An entity that serves to - Shipment interconnect 2 or more (Supplier-part)entities - Assignment
(Emp-Dept.)Here Note
1) Shipment is RELATIONSHIP between supplier and part.R
RSimilarly for Assignment.
Supplier Part
Lecture by Prof.Dr.S.Sridhar
16
Entity / Relationship diagram (Example)-----*---------*----------*--------*---------*Entities : Department, Employee, DependentRelations : Dept-Emp, Emp-depAttributes : ( to employee)
Emp#, Ename,Salary
First MN Last (Group item)
Department
Dept-Emp
Employee
Emp
Ename
First MN Last
Salary
Emp-Dep
Dependent
Lecture by Prof.Dr.S.Sridhar
17
Properties:
Entities have properties : (Known as attributes). Take the case of Employee whose properties are Emp#, Ename and Salary. (all these are attributes).
Simple a Composite: Emp# is simple
But Ename contains First, MN and Last, three simple items groped together to address Ename. Such type of attributes are ‘Composite’.
Key :
It is one of the uniquely defined attributes. For eg. Emp# is unique and that is called ‘key’ to access the other properties of the entity employee, like Ename and Salary.
Key
Emp# Ename Salary
Lecture by Prof.Dr.S.Sridhar
18
Types of Relations1 – 1 (One to One)1 – M (One to Many)M – 1 (Many to One)M – M ) (Many to Many)
Examples ( 1-1)For every employee there is only one seat
R
(1-1)In an organization.(1-M) R
;.;
(M-1) R
::;
(M – M)
Emp Seat
Supplier
Customer1
Customer-m
Student1
Student-m
Teacher
Suplier1…….m
Customer11………m
Lecture by Prof.Dr.S.Sridhar
19
Many Examples of Attributes / Entities & RelationsExample 1:
Book –Student BOOK-STD R > R R< STD -BOOK
Entities : Book, StudentRelation : BOOK-STD and STD-BOOK
Attributes of Book Attributes of Student Author RollNo Title ExamNo Publisher Name Year Class ISBN Number Address Number of pages Phone No Price Remarks Printer Location of printing Edition-Nature Remarks
Book Student
Lecture by Prof.Dr.S.Sridhar
20
Example 2 ( R )Part-Sup
( R )
Sub-part ( R )
Entities : Part, SupplierRelations : Part-Sup and Sub-part
Attributes of part Attributes of Supplier
PartNo Supplier code Description Supplier address Qty Supplier phone Unit price Supplier location Opening balance Delivery time Parts-new Address demand Net balance Warranty Period Remarks Remarks
Part Supplier
Lecture by Prof.Dr.S.Sridhar
21
Example 3:Stud-fac R R RFac-stud
Entities : Student and FacultyRelations : Stud-fac and Fac-stud
Attributes of Student Attributes of Faculty RollNo Facuty ID ExamNo Name Name Classes Handling Class Qualification Address Designation PhoneNo Address Faculty Division Phone No Remarks Students Related for
Advising
Student Faculty
Lecture by Prof.Dr.S.Sridhar
22
NORMALIZATION in RDBMS
The logical design considered are:
S ( S#, SNAME, STATUS, CITY)
PRIMARY KEY ( S#)
P (P#, PNAME,COLOR, WEIGHT, CITY)
PRIMARY KEY (P#)
SP (S#, p#,QTY)
PRIMARY KEY (S#, P#)
FOREIGN KEY ( S#) REFERENCE S
FOREIGN KEY (P#) REFERENCE P
SCP (Relation) TableS# CITY P# QTY
S1
S1
S1
S1
S1
S1
S2
S2
S3
S4
S4
S4
London
London
London
London
London
London
Paris
Paris
Paris
London
London
London
P1
P2
P3
P4
P5
P6
P1
P2
P2
P2
P4
P5
300
200
400
200
100
100
300
400
200
200
300
400
Lecture by Prof.Dr.S.Sridhar
23
From the table we find ‘Redundancy’ of data. So a good design principle is “ One fact in one place” ((ie) avoid redundancy). How to do this ? That process is known as “ Normalization”. There are 3NF (Normal forms – NF).Namely First NF (1NF)
Second NF (2NF)Third NF (3NF)
1NF:Every Normalized relation is in 1NF if and only if, if satisfied the condition that it contains scalar values ONLY.
ExampleFIRST (S#, STATUS, CITY, P#, QTY)PRIMARY KEY (S#, P#)
Functional Dependencies in relation FIRST
QTY
CITY
STATUS
S#
P#
Lecture by Prof.Dr.S.Sridhar
24
Sample Tabulation of FIRST
Now problems, We face with
INSERT DELETE UPDATE
S# STATUS CITY P# QTY
S1
S1
S1
S1
S1
S1
S2
S2
S3
S4
S4
S4
20
20
20
20
20
20
10
10
10
20
20
20
London
London
London
London
London
London
Paris
Paris
Paris
London
London
London
P1
P2
P3
P4
P5
P6
P1
P2
P2
P2
P4
P5
300
200
400
200
100
100
300
400
200
200
300
400
Lecture by Prof.Dr.S.Sridhar
25
Problems with INSERT
- For examples, while inserting S5 after S! or S2 or S3 or S4, Confusion arises, Where to insert ?!- Insert a status after 20 – problem !
- Insert a city after LONDON – problem !- Insert P# after P2 – Problem !
DELETEWhile deleting some record,One should be more careful.
Now delete a record corresponding to S# = 1.This will delete all records corresponding to S# = 1, whereas user may NOT mean this !
Similarly,
UPDATE :Update city for S# = 2This will update all city values, corresponding to S# = 2, whereas user does not mean this !
Lecture by Prof.Dr.S.Sridhar
26
Second Normal Form :A relation is in 2NF if and only if is in !NF and every non-key attribute is irreducibly dependent on the primary key.
ExampleSECOND (S#, STATUS, CITY)
and SP(S#, P#, OTY)
Functional Dependencies in relationSECOND AND SP
SECOND
SAMPLE TABULATION OF SECOND AND SP
CITY
S#
STATUS
QTY
S#
P#
S# Status City
S1
S2
S3
S4
S5
20
10
10
20
30
London
Paris
Paris
London
Athens
S# P# QTY
S1
S1
S1
S1
S1
S1
S2
S2
S3
S4
S4
S4
P1
P2
P3
P4
P5
P6
P1
P2
P2
P2
P4
P5
300
200
400
200
100
100
300
400
200
200
300
400
Lecture by Prof.Dr.S.Sridhar
27
INSERT :
Eventhough S5 is not supplying any parts, we can insert the information that S5 is located in Athens, in SECOND.
DELETE :
While deleting the shipment connecting S3 and P2 in SP, we do NOT loose information that S3 is located in PARIS.
UPDATE :
In the revised structure, the city for given supplier appears once not many times. Thus S# CITY redundancy is eliminated. For example we can change for S1, the city as Amsterdam from London. This way updation is also possible in 2NF.
Third Normal Form (3NF):
A relation is in 3NF if it is in 2NF and every non-key attribute is non-transitively dependent on the primary key.
This increases the data independance,.
Lecture by Prof.Dr.S.Sridhar
28
Example:Key Key
Sample Tabulation of SC and CSThe above relation SC and CS are in 3NF.
Whereas, SECOND is not in 3NF.
SECOND
Thus SECOND (S#, STATUS, CITY) is tabulated in 3NF asSC(S#, CITY) and CS (CITY, STATUS)
S# CITY
S1
S2
S3
S4
S5
London
Paris
Paris
London
Athens
CITY STATUS
Anthen
London
Paris
Rome
30
20
10
50
S# STATUS CITY
S1
S2
S3
S4
S5
20
10
10
20
30
London
Paris
Paris
London
Athens
Lecture by Prof.Dr.S.Sridhar
29
Database Security & Back-ups
Security problems : Legal, Social and ethical aspects
Eg : does a person making the request
say for customer’s credit
- have a legal right to the requested information.
Physical Controls
Eg : Computer or Terminal room locked !
Or otherwise guarded ? !
Policy Questions
Who should have access ? !
To what level ? !
Operational Problems
- Password is used. Then
- How are the passwords Rept secrete ?
- How often they are changed ?
Lecture by Prof.Dr.S.Sridhar
30
Hardware Control- Whether the processing unit has any
security measures,such as storage protection keys or privileged operation mode ?
Operating System Security- Whether the O /S erase the contents of storage ? ! and Data files ? !
Issues Concerned with DBMS- Whether the DBMS has the concept of ownership ?
Examples of Discretionary Access control Create Security Rule SR3
GRANT RETRIEVE (S#, SNAME, CITY),
DELETE ON S WHERES.CITY = ‘LONDON’TO JIM, FRED, MARY
ON ATTEMPTED VIOLATION REJECT;
Lecture by Prof.Dr.S.Sridhar
31
CREATE SECURITY RULE EX1:GRANT RETRIVE (S#, SNAME, CITY)ON STO JAC, ANNE, CHARLEY;
CREATE SECURITY RULE EX4:
GRANT RETRIVE (S#, SNAME)ON S WHERE S. STATUS > 50TO JAC, PAVL;
CREATE VIEW SSS AS(S.S#, S.NAME) WHERES.STATUS > 50;
Request Modification :
DEFINE PERMIT RETRIEVE ON P TO U WHERE P.CITY = “London”
RETRIEVE (P.P#, P.WEIGHT)WHERE P.COLOR = “Red”
RETRIEVE (P.P#, P.WEIGHT)WHERE P.CITY = “London”
Lecture by Prof.Dr.S.Sridhar
32
Back – ups:Daily Back-up
After the day work of all transactions, copying the entire system files / data files on a floppy, disk (CD), or a tape depending on the size of total volume.
Weekly back-upMonthly back-upYearly back-upIn DBMS – Mirroring concept as
back –up.Stand-by server as back-upCD- Server as back –upSoftware, specially in Oracle like
RDBMS, auto back-up and retrieval systems.
Lecture by Prof.Dr.S.Sridhar
33
SQL – Language
CREATE TABLE
( S# S# NOT NULL, P# P# NOT NULL, QTY QTY NOT NULL,
PRIMARY KEY (S#) REFERENCE S
ON DELETE CASECADE
ON UPDATE CASCADE,
CHECK(QTY > 0 AND QTY < 5001));
This is to create a table with attributes S#, P#, QTY, all NOT NULL values and the primary key is S# also, check the condition while creating the table itself whether QTY is > 0 and QTY < 5001.
Here CASCADE is used as an Option.
ALTER TABLE S ADD COLUMN DISCOUNT
INTEGER
DEFAULT – 1;
Here we can alter the table S by adding a new column namely DISCOUNT which is an integer quantity with default value = -1.
Lecture by Prof.Dr.S.Sridhar
34
DROP TABLE S;
This will drop the created table S from the database.
Data Manipulation (Retrieval operations)
(called DML)
SELECT P.COLOR, P.CITY
FROM P
WHERE P.CITY < >’PARIS’
AND P.WEIGHT > 10;
-------------------------------------------------------------------
SELECT DISTINCT P.COLOR, P.CITY
FROM P
WHERE P.CITY < > ‘PARIS’
AND P.WEIGHT > 10;
------------------------------------------------------------------
SELECT P.COLOR, P.CITY
FROM P
WHERE P.CITY < >’PARIS’
AND P.WEIGHT > 10;
ORDER BY CITY DESC;
Lecture by Prof.Dr.S.Sridhar
35
SELECT P.P#, P.WEIGHT * 454 AS GMNTFrom P;-------------------------------------------------------------------SELECT * FROM S;-------------------------------------------------------------------SELECT S.S#, S.NAME, S.STATUS, S.CITY,
P.P#, P.NAME, P.COLOR, P. WEIGHT,
FROM S, PWHERE S.CITY = P.CITY;
-----------------------------------------------------------------S JOIN P USING CITY
------------------------------------------------------------------SELECT DISTINCT S.CITY AS SCITY,
P. CITY AS PCITYFROM S JOIN SP USING S# JOIN P USING P#;
-------------------------------------------------------------------SELECT COUNT(*) AS NFROM S;-------------------------------------------------------------------SELECT MAX (SP.QTY)AS MAXQ,
MIN (SP.QTY)AS MINQFROM SP
WHERE SP.P# = ‘P2’;
Lecture by Prof.Dr.S.Sridhar
36
Update OperationsINSERTINTO P (P#, PNAME, COLOR, CITY)VALUES (‘P8’, ‘Sprocket’,’pink’, ‘Nice’);
-------------------------------------------------------------------INSERT
INTO TEMP(S#, CITY)SELECT S.S#, S.CITYFROM SWHERE S.STATUS > 15;
-------------------------------------------------------------------DELETE
FROM SPWHERE ‘London’ =
(SELECT S.CITYFROM S
WHERE S.S# = SP. S#);-------------------------------------------------------------------All or Any conditionsSELECT DISTINCT PX.NAME
FROM P AS PXWHERE PX.WEIGHT > ALL
( SELECT PY.WEIGHTFROM P AS PYWHERE PY.COLOR = ‘Blue’);
Lecture by Prof.Dr.S.Sridhar
37
Exercises ON SQL
1) CREATE TABLE ( S# S# NOT NULL,
P# P# NOT NULL, QTY QTY NOT NULL)
Ans
2) CREATE TABLE ( S# S# NOT NULL,
P# P# NOT NULL, QTY QTY NOT NULL)
PRIMARY KEY (S#) REFERENCE S
CHECK (QTY >0 NAD QTY <= 20));
Ans
S# P# QTY
4532
4533
4534
4535
123
234
345
567
10
20
40
5
S# P# QTY
4532
4533
4535
123
234
567
10
20
5
Lecture by Prof.Dr.S.Sridhar
38
3) ALTER TABLE S ADD COLUMN DISCOUNT INTEGER DEFAULT
–1;Ans
4) DROP TABLE S;( Then the table S will NOT be in DB)
DATA MANIPULATION1) SELECT S.P#, S.QTY FROM S
WHERE S.QTY < > 20AND S.P# > 500 ;
Ans
2) SELECT DISTINCT S.S#, S.P#, S.QTYFROM SWHERE S.QTY < > 20AND S,P# > 500;
Ans
S# P# Qty Discount
4532
4533
4535
123
234
567
10
20
5
-1
10
5
S# P# QTY
4535 567 5
S# P# QTY
4535 567 5
Lecture by Prof.Dr.S.Sridhar
39
3) SELECT DISTINCT S.S#, S.P#, S.QTY
S. Discount FROM S
WHERE S.QTY < 5
AND S,P# > 125
ORDER BY S# DESC;
Ans
4) SELECT S.S#, S.P#, S.QTY * 10 AS
QTY2 FROM S
WHERE DISCOUNT > 0;
Ans
5) SELECT * FROM S;
Ans
S# P# QTY Discount
4533 234 20 10
S# P# QTY QTY2
4533
4535
234
567
20
5
200
50
S# P# Qty Discount
4532
4533
4535
123
234
567
10
20
5
-1
10
5
Lecture by Prof.Dr.S.Sridhar
40
6) SELECT S.S#, S.P#, S.QTY,P. P#, P.NAMEFROM S, PWHERE S.P# = P.P# ;
S Ans ( input)
Answer
7) S JOIN P USING P#Answer is the same as 6.
.X. in this case only
S# P# Qty Discount
4532
4533
4534
4535
123
234
345
567
10
20
40
5
-1
10
-1
5
P# PNAME
4532
4555
4535
4534
NUT
BOLT
SCREEN
ROD
S.S# S.P# S.QTY
4532
4534
4535
123
345
567
10
40
5
P# PNAME
4532
4534
4535
NUT
ROD
SCREEN
Lecture by Prof.Dr.S.Sridhar
41
8) SELECT COUNT ( * ) AS N FORM S;
Ans Count = N = 4
9) SELECT MAX ( S.QTY) AS MAXQ,
MIN (S.QTY) AS MINQ
FROM S
WHERE S. DISCOUNT = -1;
Answer MAXQ = 40
MINQ = 10
10) UPDATE Operations:
INSERT INTO P ( P#, PNMAE)
VALUES (4536, ‘STRING’);
?
Ans
DELETE FROM P WHERE P.PNAME = ‘ROD’;
P# PNAME
4532
4555
4535
4534
4536
NUT
BOLT
SCREEN
ROD
STRING
P# PNAME
4532
4555
4535
4536
NUT
BOLT
SCREEN
STRING