introduction to data management cse 344 › courses › cse344 › ...introduction to data...
TRANSCRIPT
![Page 1: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/1.jpg)
1
Introduction to Data Management
CSE 344
Lecture 10:
Relational Algebra Wrap-up
Systems Architecture
CSE 344 - Winter 2014
![Page 2: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/2.jpg)
Announcements
• WQ4 is due next Tuesday
• HW3 is due next Thursday
• Today’s lecture: How DBMSs work
– Relational algebra and query execution
• 2.4, 5.1-5.2,16.2-16.3
• (Optional) Chapter 15, more in CSE 444
– Client-server architecture
• 9.1
2 CSE 344 - Winter 2014
![Page 3: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/3.jpg)
Query Evaluation Steps
Parse & Check Query
Decide how best to
answer query: query
optimization
(logical and physical
query plan)
Query Execution
SQL query
Return Results
Translate query
string into internal
representation
(query parse tree)
Check syntax,
access control,
table names, etc.
Query
Evaluation
3
![Page 4: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/4.jpg)
The WHAT and the HOW
• SQL = WHAT we want to get form the data
• Relational Algebra = HOW to get the data we
want
• The passage from WHAT to HOW is called
query optimization
4 CSE 344 - Winter 2014
![Page 5: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/5.jpg)
Overview: SQL = WHAT
SELECT DISTINCT x.name, z.name
FROM Product x, Purchase y, Customer z
WHERE x.pid = y.pid and y.cid = y.cid and
x.price > 100 and z.city = ‘Seattle’
It’s clear WHAT we want, unclear HOW to get it
Product(pid, name, price)
Purchase(pid, cid, store)
Customer(cid, name, city)
5 CSE 344 - Winter 2014
![Page 6: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/6.jpg)
6
Query Optimizer = HOW SELECT DISTINCT x.name, z.name
FROM Product x, Purchase y, Customer z
WHERE x.pid = y.pid and y.cid = z.cid and
x.price > 100 and z.city = ‘Seattle’
CSE 344 - Winter 2014
Product(pid, name, price)
Purchase(pid, cid, store)
Customer(cid, name, city)
1. Which (equivalent) logical plan is the most efficient?
2. Physical plan:
• How to implement each operation in the plan?
• How to pass data from one operation to the other?
(pipeline/on-the-fly, main-memory buffer, disk)
![Page 7: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/7.jpg)
7
From SQL to RA
Product Purchase
pid=pid
price>100 and city=‘Seattle’
x.name,z.name
δ
cid=cid
Customer
Π
σ
Product(pid, name, price)
Purchase(pid, cid, store)
Customer(cid, name, city)
SELECT DISTINCT x.name, z.name
FROM Product x, Purchase y, Customer z
WHERE x.pid = y.pid and y.cid = z.cid and
x.price > 100 and z.city = ‘Seattle’
![Page 8: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/8.jpg)
8
From SQL to RA
Product Purchase
pid=pid
price>100 and city=‘Seattle’
x.name,z.name
δ
cid=cid
Customer
Π
σ
SELECT DISTINCT x.name, z.name
FROM Product x, Purchase y, Customer z
WHERE x.pid = y.pid and y.cid = z.cid and
x.price > 100 and z.city = ‘Seattle’
Can you optimize
this query plan?
![Page 9: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/9.jpg)
9
An Equivalent Expression
Product Purchase
pid=pid
city=‘Seattle’
x.name,z.name
δ
cid=cid
Customer
Π
σ price>100
σ
Query optimization =
finding cheaper,
equivalent expressions
![Page 10: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/10.jpg)
Extended RA:
Operators on Bags
• Duplicate elimination d
• Grouping g
• Sorting t
CSE 344 - Winter 2014 10
![Page 11: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/11.jpg)
11
Logical Query Plan
SELECT city, count(*)
FROM sales
GROUP BY city
HAVING sum(price) > 100
sales(product, city, price)
g city, sum(price)→p, count(*) → c
s p > 100
P city, c
T1(city,p,c)
T2(city,p,c)
T3(city, c)
T1, T2, T3 = temporary tables
CSE 344 - Winter 2014
![Page 12: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/12.jpg)
CSE 344 - Winter 2014
Typical Plan for Block (1/2)
R S
join condition
s selection condition
fields
join condition
…
SELECT-PROJECT-JOIN
Query
12
![Page 13: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/13.jpg)
CSE 344 - Winter 2014
Typical Plan For Block (2/2)
fields
g subfields1, sum/count/min/max(subfields2)
havingcondition
s selection condition
join condition
… … 13
![Page 14: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/14.jpg)
CSE 344 - Winter 2014
How about Subqueries?
SELECT Q.sno
FROM Supplier Q
WHERE Q.sstate = ‘WA’
and not exists
(SELECT *
FROM Supply P
WHERE P.sno = Q.sno
and P.price > 100)
14
Supplier(sno,sname,scity,sstate)
Part(pno,pname,psize,pcolor)
Supply(sno,pno,price)
Sno of Suppliers
from WA
who did not
Supply a part
with price > 100
![Page 15: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/15.jpg)
SELECT Q.sno
FROM Supplier Q
WHERE Q.sstate = ‘WA’
and not exists
(SELECT *
FROM Supply P
WHERE P.sno = Q.sno
and P.price > 100)
CSE 344 - Winter 2014
How about Subqueries?
15
Correlation !
Supplier(sno,sname,scity,sstate)
Part(pno,pname,psize,pcolor)
Supply(sno,pno,price)
Sno of Suppliers
from WA
who did not
Supply a part
with price > 100
![Page 16: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/16.jpg)
Let’s try to De-Correlate! (soln-1)
SELECT Q.sno
FROM Supplier Q
WHERE Q.sstate = ‘WA’
and not exists
(SELECT *
FROM Supply P
WHERE P.sno = Q.sno
and P.price > 100)
16
De-Correlation
(Solution from class)
SELECT Q.sno
FROM Supplier Q
WHERE Q.sstate = ‘WA’
and not in (SELECT P.sno
FROM Supply P
WHERE P.sno = Q.sno
and P.price > 100)
Supplier(sno,sname,scity,sstate)
Part(pno,pname,psize,pcolor)
Supply(sno,pno,price)
![Page 17: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/17.jpg)
Let’s try to De-Correlate! (soln-2)
SELECT Q.sno
FROM Supplier Q
WHERE Q.sstate = ‘WA’
and not exists
(SELECT *
FROM Supply P
WHERE P.sno = Q.sno
and P.price > 100)
17
De-Correlation
(Solution from class)
SELECT Q.sno
FROM Supplier Q, Supply P
WHERE Q.sstate = ‘WA’
And Q.sno = P.sno
GROUP BY Q.sno
HAVING MAX(P.price) <= 100
Supplier(sno,sname,scity,sstate)
Part(pno,pname,psize,pcolor)
Supply(sno,pno,price)
![Page 18: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/18.jpg)
How about Subqueries?
(Decorrelation)
SELECT Q.sno
FROM Supplier Q
WHERE Q.sstate = ‘WA’
and not exists
(SELECT *
FROM Supply P
WHERE P.sno = Q.sno
and P.price > 100)
18
De-Correlation
SELECT Q.sno
FROM Supplier Q
WHERE Q.sstate = ‘WA’
and Q.sno not in
(SELECT P.sno
FROM Supply P
WHERE P.price > 100)
Supplier(sno,sname,scity,sstate)
Part(pno,pname,psize,pcolor)
Supply(sno,pno,price)
How to model “not in” (nested)
Using RA operators?
![Page 19: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/19.jpg)
How about Subqueries?
(Un-nesting)
19
Un-nesting
SELECT Q.sno
FROM Supplier Q
WHERE Q.sstate = ‘WA’
and Q.sno not in
(SELECT P.sno
FROM Supply P
WHERE P.price > 100)
(SELECT Q.sno
FROM Supplier Q
WHERE Q.sstate = ‘WA’)
EXCEPT
(SELECT P.sno
FROM Supply P
WHERE P.price > 100)
Supplier(sno,sname,scity,sstate)
Part(pno,pname,psize,pcolor)
Supply(sno,pno,price)
EXCEPT = set difference
CSE 344 - Winter 2014
![Page 20: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/20.jpg)
CSE 344 - Winter 2014
Conversion to RA, finally!
Supply
ssstate=‘WA’
Supplier
sPrice > 100
20
(SELECT Q.sno
FROM Supplier Q
WHERE Q.sstate = ‘WA’)
EXCEPT
(SELECT P.sno
FROM Supply P
WHERE P.price > 100)
−
Supplier(sno,sname,scity,sstate)
Part(pno,pname,psize,pcolor)
Supply(sno,pno,price)
Finally…
sno sno
![Page 21: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/21.jpg)
CSE 344 - Winter 2014 21
From Logical Plans
to Physical Plans
![Page 22: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/22.jpg)
Example
CSE 344 - Winter 2014 22
SELECT sname
FROM Supplier x, Supply y
WHERE x.sid = y.sid
and y.pno = 2
and x.scity = ‘Seattle’
and x.sstate = ‘WA’
Give a relational algebra expression for this query
Supplier(sid, sname, scity, sstate)
Supply(sid, pno, quantity)
![Page 23: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/23.jpg)
--------(s -----------------(Supplier ------------Supply))
Relational Algebra
CSE 344 - Winter 2014 23
Supplier(sid, sname, scity, sstate)
Supply(sid, pno, quantity)
SELECT sname
FROM Supplier x, Supply y
WHERE x.sid = y.sid
and y.pno = 2
and x.scity = ‘Seattle’
and x.sstate = ‘WA’
Give a relational algebra expression for this query
![Page 24: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/24.jpg)
sname(s scity=‘Seattle’ sstate=‘WA’ pno=2 (Supplier sid = sid Supply))
Relational Algebra
CSE 344 - Winter 2014 24
Supplier(sid, sname, scity, sstate)
Supply(sid, pno, quantity)
SELECT sname
FROM Supplier x, Supply y
WHERE x.sid = y.sid
and y.pno = 2
and x.scity = ‘Seattle’
and x.sstate = ‘WA’
Give a relational algebra expression for this query
![Page 25: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/25.jpg)
25
Supplier Supply
sid = sid
s scity=‘Seattle’ sstate=‘WA’ pno=2
sname
Relational Algebra
CSE 344 - Winter 2014
Relational algebra expression is
also called the “logical query
plan”
Supplier(sid, sname, scity, sstate)
Supply(sid, pno, quantity)
![Page 26: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/26.jpg)
26
Physical Query Plan 1
Supplier Supply
sid = sid
s scity=‘Seattle’ sstate=‘WA’ pno=2
sname
(File scan) (File scan)
(Block-nested loop)
(On the fly)
(On the fly)
CSE 344 - Winter 2014
A physical query plan is a logical
query plan annotated with
physical implementation details
• Details of each operator
• How info is passed between
the operators
Supplier(sid, sname, scity, sstate)
Supply(sid, pno, quantity)
Can you think of any
Other types of
Join algo?
![Page 27: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/27.jpg)
27
Supplier Supply
sid = sid
a s scity=‘Seattle’ sstate=‘WA’
sname
(File scan) (File scan)
(Sort-merge join)
(Scan
write to T2)
(On the fly)
b s pno=2
(Scan
write to T1)
Physical Query Plan 2
c
d
CSE 344 - Winter 2014
Supplier(sid, sname, scity, sstate)
Supply(sid, pno, quantity)
![Page 28: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/28.jpg)
Supply Supplier
sid = sid
s scity=‘Seattle’ sstate=‘WA’
sname
(Index nested loop)
(Index lookup on sid)
Doesn’t matter if clustered or not
(On the fly)
a s pno=2
(Index lookup on pno )
Assume: clustered
Physical Query Plan 3
(Use index)
b
c
d
(On the fly)
28
Supplier(sid, sname, scity, sstate)
Supply(sid, pno, quantity)
Why?
![Page 29: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/29.jpg)
Physical Data Independence
• Means that applications are insulated from
changes in physical storage details
– E.g., can add/remove indexes without changing apps
– Can do other physical tunings for performance
• SQL and relational algebra facilitate physical
data independence because both languages
are “set-at-a-time”: Relations as input and
output
CSE 344 - Winter 2014 29
![Page 30: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/30.jpg)
Architectures
1. Serverless
2. Two tier: client/server
3. Three tier: client/app-server/db-server
CSE 344 - Winter 2014 30
![Page 31: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/31.jpg)
Serverless
CSE 344 - Winter 2014 31
User SQLite:
• One data file
• One user
• One DBMS application
• But only a limited number of
scenarios work with such model
DBMS
Application
(SQLite)
File
Desktop
Data file
Disk
![Page 32: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/32.jpg)
Client-Server
Server Machine
Connection (JDBC, ODBC)
32
Client
Applications
• One server running the database
• Many clients, connecting via the ODBC or JDBC
(Java Database Connectivity) protocol
Supports many apps and
many users simultaneously
DB Server
File 1
File 2
File 3
![Page 33: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/33.jpg)
33
Client-Server
• One server that runs the DBMS (or RDBMS): – Your own desktop, or
– Some beefy system, or
– A cloud service (SQL Azure)
• Many clients run apps and connect to DBMS – Microsoft’s Management Studio (for SQL Server), or
– psql (for postgres)
– Some Java program (HW5) or some C++ program
• Clients “talk” to server using JDBC/ODBC protocol
CSE 344 - Winter 2014
![Page 34: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/34.jpg)
3-Tiers DBMS Deployment
DB Server (DBS)
File 1
File 2
File 3
34
Application Server
(AppS)
Web Server (WS)
Web-based applications
Connection
(e.g., JDBC)
HTTP/SSL
Browser
1. Open amazon.com
3. Search for books
9. Gets the results
WS: 2. Provides the page
WS: 4. Sends info to AppS
8. Returns answers from
AppS to users’ browsers AppS: Runs “business logic”
e.g. converts price from USD to EUR
5. Forms and asks queries to DBS,
7. Returns results to WS
DBS: 6. Executes queries
![Page 35: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/35.jpg)
CSE 344 - Winter 2014
DBMS Deployment: Cloud
35
Users Easy scaleup, scaledown
HTTP/SSL
Developers
DB Server Web & App Server
![Page 36: Introduction to Data Management CSE 344 › courses › cse344 › ...Introduction to Data Management CSE 344 Lecture 10: Relational Algebra Wrap-up Systems Architecture ... SQL query](https://reader036.vdocuments.mx/reader036/viewer/2022062603/5f0d464e7e708231d43988fa/html5/thumbnails/36.jpg)
Using a DBMS Server
1. Client application establishes connection to server
2. Client must authenticate self
3. Client submits SQL commands to server
4. Server executes commands and returns results
CSE 344 - Winter 2014 36
DB Server
File 1
File 2
File 3