Database Systems

Preview:

Citation preview

Introduction To Oracle And Other Earthly Matters

Lecture #3 - Feb 5, 2008,

in database systems course, Tel Aviv UniversityPresented by Jackie Assa

Agenda

Bureaucracy…Bureaucracy… Database architecture overviewDatabase architecture overview Buzzwords SSH Tunneling Intro to Oracle Comments on homework (If time permits) Intro to

programming

Agenda

Bureaucracy…Bureaucracy… Database architecture overviewDatabase architecture overview Buzzwords SSH Tunneling Intro to Oracle Comments on homework (If time permits) Intro to

programming

The Forum!

Please Join the Forum at:http://www.cs.tau.ac.il/system/forums/

Homework #1 Submission date is 19 Feb. (No late arrivals

will be accepted) Work should be done in pairs Please, please, please, names and ID on the

submittals. Details in the course forum Simple SQL queries on our “hr” database Submission will include an answers document

and a SQL script with all the queries. Name of the script should be <yourname>.sql (sent as an attachment)

Project Hard work, but real. Work in groups of 4 Project goal: to tackle and resolve real-life

DB related development issues One Two stages. Most programming language are accepted

(Check with me) Thinking out of the box will be rewarded

Agenda

Bureaucracy… Database architecture overviewDatabase architecture overview Buzzwords SSH Tunneling Intro to Oracle Comments on homework (If time permits) Intro to

programming

DB System from lecture #1

Data files

Database server(someone else’s

C program) Applications

connection

(ODBC, JDBC)

“Two tier database system”

A core infrastructure

1,2,3 tiers

Abstractly(DB) system layers may include

Application

DB infrastructure

DB driver

transport

DB engine

Storage

Why (at least 1 reason)

DB programmer

App programmer

DBA

Gui designerTester

Application layer

Why should it actually use database? Persistence layer Access data storage Interfacing between systems Large volumes Scalability Redundancy

Application

DB infrastructure

DB driver

transport

DB engine

Storage

Infrastructure layer

Goals: Database “hiding” Schema abstraction Encapsulation of db mechanisms Reuse

How: (In two words)

Application

DB infrastructure

DB driver

transport

DB engine

Storage

DB driver / bridge

Used for: API for database connectivity Protocol converter Performance improvements Transaction management

Examples: In a minute…

Application

DB infrastructure

DB driver

transport

DB engine

Storage

Transport

Mainly TCP but not only Secure Efficient Fast but not fast enough

Application

DB infrastructure

DB driver

transport

DB engine

Storage

DB engine Total management of the DB

environment including Security Scalability (clustering) Maintenance Fault tolerant (disaster management) Monitoring Services

Large DB engines include Microsoft SQL Server, Oracle, SyBase, MySQL, etc.

Application

DB infrastructure

DB driver

transport

DB engine

Storage

DB engine (2)

DB engine management includes: Databases/Tables/FieldsCreation/removal/modification/

optimization Connections/Users/RolesSecurity/monitoring/logging Jobs/Processes/ThreadsScheduling/balancing/managing

Storage

NAS/SAN, Raid and other stuff…(sorry… not in this course)

Application

DB infrastructure

DB driver

transport

DB engine

Storage

Agenda

Bureaucracy… Database architecture overview Buzzwords SSH Tunneling Intro to Oracle Comments on homework (If time permits) Intro to

programming

Terms…

ODBC ADO OLE-DB DAO MDAC/UDA JDBC ORM

ODBC (Mainly Microsoft)

Open Database Connectivity (ODBC) is a widely accepted application “C” programming interface (API) for database access.

Maximum interoperability Expose database

capabilities, not supplement them, except: File access data Cursor lib

ODBC – Example architecture

ODBC

Examples of common tasks: Selecting a data source and connecting to

it. Submitting an SQL statement for

execution. Retrieving results (if any). Processing errors. Committing or rolling back the transaction

enclosing the SQL statement. Disconnecting from the data source.

OLE-DB (Microsoft) General COM model describing how

applications access data Presents a single, consistent means of

access to the application

Uses two models, rowset and binder

OLE-DBInterface

Consumer /Application Oracle DB

Provider DBMS

Exchange

Excel

MicrosoftWindowsCOM

My app

OLE-DB models

Rowset:

Binder

ADO (Microsoft) ActiveX Data Objects (ADO) provides

consistent, high-performance access to data. COM based, provides ease of use, high speed,

low memory overhead, and a small disk footprint.

Actually a simple interface to OLE DB. Includes extensions such as: Multidimensional

(ADO MD), Remote Data Service (RDS), etc. Alas…. Ado.net

Two words about .Net and java

Virtual machine

MDAC… UDA

UDA (Universal Data Access) and/or MDAC (Microsoft Data Access Components) include (ADO), OLE DB, and (ODBC).

JDBC

Java DB connectivity API Similar to ODBC Why do you need it:

Pure Java Simple API Well….Multi-platform

JDBC

Supports n-Tier architectures Tabular data handling SQL but

not only SQL

JDBC API includes:

DriverManager, Connection, Statement, PreparedStatement, CallableStatement, ResultSet, SQLException, DataSource

JDBC 2.0 includes: Transactions, improved connections, and more…

JDBC Type Driver: Type 1 - (JDBC-ODBC Bridge) drivers. Type 2 - native API for data access which provide Java

wrapper classes Type 3 - 100% Java, use vendor independent Net-protocol to

access a vendor independent remote listener. This listener converts vendor independent calls to vender dependent ones.

Type 4 - They are also written in 100% Java and are the most efficient among all driver types.

ORM

Object-Relational mapping is a programming technique for converting data between incompatible type systems in relational databases and object-oriented programming languages. (wikipedia)

For example: Hibernate, EJB3.0, JDO

Agenda

Bureaucracy… Database architecture overview Buzzwords SSH Tunneling Intro to Oracle Comments on homework (If time permits) Intro to

programming

Welcome to

SSH

Application

DB infrastructure

Db bridge/driver

Transport (TCP)

DB engine ServerMachine

ClientMachine

Standard way Using Tunnel

Application

DB infrastructure

Db bridge/driver

DB engine ServerMachine

ClientMachine

Tunnel machine(SSH server)

proxy

ProxyMachineTCP

SSH

TCP

SSH in TAUApplication

DB infrastructure

Db bridge/driver

DB engine

Tunnel machine(SSH server)

proxy

YOUR MACHINE(HOME/LAB) define DB at 127.0.0.1, port 1555

Nova.cs.tau.ac.il

Ida.cs.tau.ac.ilPort 1521

Tera Term Pro connects to nova andforward local port 1555 to ida port 1521

For more details: http://www.cs.tau.ac.il/faq/ssh_tunnelling.htm

Agenda

Bureaucracy… Database architecture overview Buzzwords SSH Tunneling Intro to Oracle Comments on homework (If time permits) Intro to

programming

Products we will be using Oracle database – (express edition) SQLDeveloper JDeveloper

Free to download on oracle.comMore tutorials on http://www.tau.ac.il/~jackassa/db/

java programming.pdfJDBC.pdfprogram with PLSQL.pdfSQL foundamentals I.pdfSQL foundamentals II.pdfSQL tuning.pdf

Things to contemplate on when connecting…

Host Port SID Driver Schema User password

localhost/plab-156 1521 xe/taudb/other? Thin

oracle.jdbc.driver.OracleDriver hr/user/system ?

http://www.tau.ac.il/~jackassa/db/cGuide.htm

SQL*plus demo

Invoking (TAU):Sqlplus

http://www.tau.ac.il/~jackassa/db/cGuide.htm

SQLDeveloper demo

Invoking (TAU):sqldeveloper

Oracle JDeveloper demo

Invoking (in TAU):jdev

Oracle Express Edition (XE)

Installation only at home…

XE Database hands-on demo

Installation Create a user Run a script Query Other database objects Administration tasks

Similar tutorial can be found in

http://st-curriculum.oracle.com/tutorial/DBXETutorial/index.htm

Agenda

Bureaucracy… Database architecture overview Buzzwords SSH Tunneling Intro to Oracle Comments on homework (If time permits) Intro to

programming

Additional Notes SQL functions and arithmetic conditions. Usage of quotes LIKE, SOUNDS LIKE Use the Syntax help in Query browser DESCRIBE Joins

Agenda

Bureaucracy… Database architecture overview Buzzwords SSH Tunneling Intro to Oracle Comments on homework (If time permits) Intro to

programming

Project Coding Tips

Layering Encapsulation Reuse Configuration Schema Testing

Thank you