Вы находитесь на странице: 1из 17

Module 5: Data Access

Overview
Introduce database components involved in data access

Introduce concepts of Transact -SQL and Procedural SQL as tools to access and manipulate data
Discuss transactional management concepts

Relational Engine

Structured Query Language


Oracle and SQL Server are compliant with entry-level SQL-92 Both support many of the core features of SQL-2008 Categories of SQL statements

Data Definition Language (DDL)


Data Manipulation Language (DML)

Transaction Control Statements


Session Control Statements System Control Statements

Data Definition Language (DDL)


Define and alter database structures

Using :
CREATE, ALTER and DROP Access control: GRANT and REVOKE + DENY in SQL Server

Identifiers limits in characters


Oracle <= 30 characters SQL Server <= 128 Unicode characters
Temporary tables <= 116 Unicode characters

Data Manipulation Language (DML)


Standard Terminology with Each Other
C = INSERT
R = SELECT U = UPDATE

D = DELETE

There are Differences Though


Oracle: IN lists can have up to 1000 values

SQL Server: IN lists have no limited on number of values

Syntax variations Example:


Oracle: SELECT Field1 || Field2 FROM Table1 SQL Server: SELECT Field3 + Field4 FROM Table2

Demonstration: TransactSQL

Demonstration:

TransactSQL Queries

Control Statements
Control Statements in Oracle and SQL Server
Control Category Oracle SQL Server
COMMIT [ WORK | TRANSACTION ] ROLLBACK [ WORK | TRANSACTION ]

Transaction Control COMMIT [ WORK ] Transaction Control ROLLBACK

Transaction Control SAVEPOINT

SAVE TRAN[SACTION]

Transaction Control SET TRANSACTION SET Session Control ALTER SESSION SET

Session Control
System Control System Control

SET ROLE
ALTER SYSTEM ALTER DATABASE

sp_setapprole
sp_configure sp_dboption

Procedural and Transaction - SQL


Both use BEGIN END and IF for block and conditional structuring. 1 Statement <> BEGIN END > 1 Statement = BEGIN END Oracle offers loop structures: LOOP END LOOP, FOR END LOOP, WHILE END LOOP SQL Server offers the loop WHILE Dynamic SQL ORACLE - DBMS_SQL or EXECUTE IMMEDIATE SQL Server - sp_executesql and EXEC()

Cursors
Versatile navigation through data Both support Fetching and Scrolling
FIRST NEXT PRIOR LAST ABSOLUTE RELATIVE
Define Variables Declare Cursor with a SELECT Open the Result Fetch the Next Row Close the Cursor

SQL Server cursor types include:


FORWARD_ONLY INSENSITIVE SCROLL READ_ONLY STATIC DYNAMIC FAST_FORWARD LOCAL GLOBAL KEYSET-DRIVEN

Integrated Full-Text Searching


Storing Large Text Documents is on the rise

RDBMS Not Equipped on their own to handle this.

Oracle Text
SELECT * FROM MYTextDocuments WHERE CONTAINS(text, Oracle, 1) > 0 SELECT * FROM MYProductCatalog WHERE CATSEARCH(title, Camera, order by price desc) > 0 SELECT * FROM MyRules WHERE MATCHES(query_string,:doc_text) >0

SQL Server Full-Text


SELECT * FROM MYTextDocuments WHERE CONTAINS(text, SQL Server ) SELECT * FROM MYTextDocuments WHERE FREETEXT(text, SQL Server)

SELECT * FROM MYTextDocuments FT_TBL INNER JOIN CONTAINSTABLE(MYTextDocuments, text, SQL Server) AS K_TBL ON FT.TBL.id = K_TBL.[KEY] ORDER BY K_TBL.RANK DESC;

Tools to Ease Development Cycles


Tools for Creating Queries

Command Line
SQL *Plus for Oracle SQLCMD for SQL Server

Graphical User Interfaces


SQL *Plus for Oracle SQL Developer for Oracle SQL Server Management Studio NEW: SQL Server Data Tools

Beyond the Integrated Tools


Toad from Quest Software And others

Error Handling
Servers always raise the errors T-SQL dealings @@Error TRY..CATCH Oracle has predefined system exceptions
NO_DATA_FOUND TOO_MANY_ROWS and so on
Severity level 0-9 Description Informational messages that are not severe. DB does not raise system errors.

11-16

Indicate errors that can be corrected by the user.


Indicate software errors that cannot be corrected by the user. Indicate fatal errors, which means execution ceases. Error messages are written to the error log.

17-19

SQL Server internal error messages Severity levels View with sys.messages Both DBs allow custom exceptions messages

20-25

Query Optimization
Cost-Based Optimization Plans can be viewed with:
Oracle Explain Plan SQL Server Execution Plan

Execution Plans based on :


oAccess methods oStatistics oHints

Demonstration: Evaluate an Execution Plan

Demonstration:

Evaluate an Execution Plan

Transaction Management
Oracle transactions end with COMMIT or ROLLBACK

SQL Server is an implicit commit for each row.


Make Explicit by using: Make Explicit by using:

BEGIN TRAN COMMIT TRAN BEGIN TRAN COMMIT TRAN or


or or SET IMPLICIT_TRANSACTIONS SET IMPLICIT_TRANSACTIONS ON ON Distributed transactions modify data in more than one database in a distributed database environment Two-phase commit provides ways to manage data consistency and data integrity in a distributed environment

Review
We examined various components of the relational engine that parses, optimizes, and executes database calls and fetches data We learned about the different types of statements that constitute the Structured Query Language (SQL) We were introduced to procedural SQL offered by Oracle and SQL Server We learned that the cost-based optimizer in Oracle and SQL Server performs SQL optimization that can be superseded by hints from the user We learned about the concepts of local and distributed transactions and the two-phase commit

Вам также может понравиться