0% found this document useful (0 votes)
18 views36 pages

DDD Topic 4 - Data Retrieval

This document covers topics related to data retrieval from relational databases including table and view structure, data types, null values, and retrieving data using SQL. It discusses creating tables from entities, different relationship types, and using SQL for data definition, manipulation, aggregation, and queries.

Uploaded by

Hawi Atieno
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views36 pages

DDD Topic 4 - Data Retrieval

This document covers topics related to data retrieval from relational databases including table and view structure, data types, null values, and retrieving data using SQL. It discusses creating tables from entities, different relationship types, and using SQL for data definition, manipulation, aggregation, and queries.

Uploaded by

Hawi Atieno
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 36

Data Retrieval (1) Topic 4 - 4.

Scope and Coverage


This topic will cover:
• Table and view structure in a relational database
• Data types
• Null values
• Retrieving data using SQL

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.2

Learning Outcomes
By the end of this topic students will be able to:
• Implement more complex relationships
• Describe how to retrieve data from one or more
tables using SQL
• Recognise and identify different data-types in SQL

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.3

Creating Tables from Entities


(some further issues)
• Representing tables

• Representing relationships
- One-to-many relationships
- One-to-many recursive relationships
- One-to-one relationships

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.4

One-to-Many Relationship
Attributes: Module Module Name
Module Code
Module Code(PK) QB210 Business Database Applications
1 Module Name QB251 User Centred Systems Analysis
QB313 Advanced Business Database
Applications
0...*

Module Student ID
Student on Attributes Code
Module Module Code (FK) QB210 M00002
Student No (FK) QB210 M00003
QB251 M00002
0...*

Student No Student
1 Name
Attributes: M00001 Amina Begum
Student Student No(PK) M00002 Sarah Aka
Student Name M00003 Dave Smith

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.5

One-to-Many Recursive Relationship


-1 A student is a mentor to
potentially many other
students.
0...*
Student
1
StudentID Surname FirstName MentorID
22 Smith Dave
55 Singh Jagpal 22
76 May Emily 22

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.6

One-to-Many Recursive Relationship


-2
A student is a mentor StudentID Surname FirstName MentorID
potentially many other
students. 22 Smith Dave
55 Singh Jagpal 22
Dave Smith is a mentor 76 May Emily 22
to two other students

Student (StudentID, Surname, FirstName, MentorID)


Primary Key StudentID
Foreign Key MentorID references Student(StudentID)

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.7

One-to-One Relationship

Student Portfolio
1 1

1. Mandatory on both sides


2. Mandatory on one side
3. Optional on both sides

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.8

Mandatory on Both Sides


Student (StudentID, Surname, FirstName, MentorID,
PortfolioID, PortfolioDate, PortfolioGrade)

The attributes belonging to the portfolio are in bold.

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.9

Mandatory on one Side of 1:1


• Entity that has optional participation is designated
parent entity.

• Student (StudentID, Surname, FirstName,


MentorID, PortfolioID)

• Portfolio(PortfolioID, PortfolioDate, PortfolioGrade)

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.10

Optional on Both Sides


• Arbitrary. Depends on semantics.

Student Studio
1 1

A student may have the use


of a single student. A studio
might be used by a single
student. Where does the FK
go?

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.11

Objectives of SQL
• Create the database and relation structures
• Perform basic tasks such as inserts, updates and
deletes
• Simple and complex queries

Structured Query Language

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.12

Data Definition Language DDL


• For defining database structures and controlling
access to data
- CREATE TABLE, CREATE INDEX , CREATE
SEQUENCE , GRANT ACCESS etc.

• Data Manipulation Language DML


- For retrieving and updating data
• SELECT, INSERT, UPDATE, DELETE

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.13

Data Manipulation Language DML


• For retrieving and updating data

• SELECT
• INSERT
• UPDATE
• DELETE

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.14

Select branchID, Count(staff_id)


From workers
Where branchType = ‘Main’
Group by branchID
Having Count (staff_id) > 1
Order by branchID

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.15

What columns will appear

Select branchID, Count(staff_id)


From workers Which table

Where branchType = ‘Main’ Condition

Group by branchID Groups by some column


Having Count (staff_id) > 1 Value

Order by branchID
Restricts what will
Specifies the order of the result Be grouped

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.16

Literals
Insert into Student (Stu_id, First_name, Last_name)
Values (1,’Satpal’,’Singh’);

Non-numeric in single quotes.


Numeric NOT in quotes

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.17

Select
SELECT first_name
FROM Students
WHERE Student_type = ‘Overseas’;

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.18

All the Columns or some of them


Select *
from Students
Where student_type = ‘Overseas’;

Select student_id, first_name, last_name,


From Students
Where student_type = ‘Overseas’;

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.19

Order by
Select first_name, last_name, stu_id
From Students
Where student_type = ‘Overseas’
Order by last_name;

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.20

Order by
Select first_name, last_name, stu_id
From Students
Where student_type = ‘Overseas’
Order by last_name desc;

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.21

Aggregate Functions - 1
• Count
• Sum
• Avg
• Min
• Max

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.22

Aggregate Functions - 2
• Count – returns number of values in a column

• Sum – returns the sum total of values of a column

• Avg – returns the mean average of values in


column

• Min – returns the lowest value in a column

• Max – returns the highest value in a column

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.23

Example of Aggregate Function


Select branchID, Count(staff_id)
From workers
Where branchType = ‘Main’
Group by branchID
Having Count (staff_id) > 1
Order by branchID
•This counts the number of members of staff in
main branches where there are more than 1 staff. It
groups them by the branchID.

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.24

Group By
• As shown in the previous slide...

• This clause is used with an aggregate function and


groups the results by some attribute

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.25

Having Clause
• Modifies the group by clause
- Select branchID, Count(staff_id)
From workers
Where branchType = ‘Main’
Group by branchID
Having Count (staff_id) > 1
Order by branchID
• In this case only selecting groups where it has been
calculated by the count function that there are more
than one member of staff.

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.26

Sub-Queries
Select d.department_name, d.location
From departments d, workers w
Where d.dept_no = w.dept_no
And w.age =
(select max(w2.age)
From workers w2);

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.27

Joins
Select d.department_name, w.first_name,
w.last_name
From departments d, workers w
Where d.dept_no = w.dept_no;

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.28

Fixing Errors
• Not specifying join condition properly

• Syntax errors

• Spelling errors for keywords

• Columns not existing on tables

• Data-types being mixed up

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.29

Datatypes

• What is a datatype?

• What is a domain?

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.30

String Datatypes
• Character or Char
• Varying Character of Varchar
• Bit (N)

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.31

Char or Varchar
• ‘Gary__’ a 6 long Char

• ‘Gary’ a 6 long varchar

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.32

Numeric Datatypes
• Numeric or Decimal e.g. 8.23 with point set

• Integer e.g. 8

• Float e.g. 8.23 but could also be changed so that


point moves when needed

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.33

Datetime Types
• Date

• Time

• Timestamp

• Interval

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.34

Null Values
• What are null values?

• Activity: think of all the different things that null


could represent.

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.35

Learning Outcomes
By the end of this topic students will be able to:
• Implement more complex relationships
• Describe how to retrieve data from one or more
tables using SQL
• Recognise and identify different data-types in SQL

V1.0 © NCC Education Limited


Data Retrieval (1) Topic 4 - 4.36

References
• Connolly, T. and Begg, C. (2004) Database Solutions: A
step-by-step guide to building database, 2nd Edition
Addison-Wesley - Chapters 9 and 10
• Connolly, T. and Begg, C. (2004). Database Systems: A
Practical Approach to Design, Implementation, and
Management, 4th Edition. Addison Wesley - Chapters 5, 6
and 7
• Benyon-Davies, P. (2003). Database Systems, 3rd Revised
Edition. Palgrave Macmillan – Chapters 11, 12 and 13
• Dietrich, Suzanne W, (2001) Understanding Relational
Database Query Languages - Chapter 5

V1.0 © NCC Education Limited

You might also like