module 5: data access
DESCRIPTION
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. SQL Messages. HTTP Messages. - PowerPoint PPT PresentationTRANSCRIPT
Module 5:Data Access
Overview
Introduce database components involved in data accessIntroduce concepts of Transact -SQL and Procedural SQL as tools to access and manipulate dataDiscuss transactional management concepts
Relational Engine
SQL CLR Hosting Layer
Synchronization Svcs
Scheduler
Lock Manager
Deadlock Monitor
Buffer Pool
Memory Manager
SQLOS
SQLManager
T-SQLExecutionCLR
QueryExecution
T-SQL Compiler
Algebraizer
QueryOptimizer
Parser
Expression S
vcsExecution EnvironmentMETADATA Interface
Storage Engine
SQL Messages
HTTP Messages
RPCMessages Results
Demonstration 1: Evaluate an Execution Plan
In this demonstration you will see how to:Provide tracing within SQL Server Review the execution plan for simple queriesCompare execution plan to the trace profilerReview execution plan
Structured Query Language
Oracle and SQL Server are compliant with entry-level SQL-92Both support many of the core features of SQL-99 and SQL-2003Categories 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 DROPAccess 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 2: Transact–SQL
In this demonstration you will see how to:Generate a queryDeclare and use variables and row constructorsAggregate summary data
Control Statements
Control Statements in Oracle and SQL ServerControl
CategoryOracle SQL Server
Transaction Control COMMIT [ WORK ] COMMIT [ WORK | TRANSACTION ]
Transaction Control ROLLBACK ROLLBACK [ WORK | TRANSACTION ]
Transaction Control SAVEPOINT SAVE TRAN[SACTION]
Transaction Control SET TRANSACTION SET
Session Control ALTER SESSION SET
Session Control SET ROLE sp_setapprole
System Control ALTER SYSTEM sp_configure
System Control ALTER DATABASE 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 WHILEDynamic SQL
ORACLE - DBMS_SQL or EXECUTE IMMEDIATE SQL Server - sp_executesql and EXEC()
Cursors
Versatile navigation through dataBoth support Fetching and Scrolling
SQL Server cursor types include:
FIRSTNEXTPRIORLAST
ABSOLUTERELATIVE
FORWARD_ONLYINSENSITIVESCROLL READ_ONLYSTATIC
DYNAMICFAST_FORWARDLOCALGLOBALKEYSET-DRIVEN
Integrated Full-Text Searching
Storing Large Text Documents is on the riseRDBMS – Not Equiped 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
SS 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 Server Management Studio
• Beyond the Integrated Tools•Visual Studio .NET•ToadSoft Toad•And others
Error Handling
Servers always raise the errorsT-SQL dealings
@@ErrorTRY..CATCH
Oracle has predefined system exceptions
•NO_DATA_FOUND•TOO_MANY_ROWS •and so on
SQL Server internal error messages•Severity levels •View with sys.messages
Both DBs allow custom exceptions messages
Severity level
Description
0-9 Informational messages that are not severe. DB does not raise system errors.
11-16 Indicate errors that can be corrected by the user.
17-19 Indicate software errors that cannot be corrected by the user.
20-25 Indicate fatal errors, which means execution ceases. Error messages are written to the error log.
Query Optimization
Cost-Based OptimizationExecution Plans based on :oAccess methodsoStatisticsoHints
Plans can be viewed with:Oracle Explain PlanSQL Server Execution Plan
Transaction Management
Oracle transactions end with COMMIT or ROLLBACKSQL Server is an implicit commit for each row.
Make Explicit by using: BEGIN TRAN … COMMIT TRAN or or SET IMPLICIT_TRANSACTIONS ON
Distributed transactions modify data in more than one database in a distributed database environmentTwo-phase commit provides ways to manage data consistency and data integrity in a distributed environment
Make Explicit by using: BEGIN TRAN … COMMIT TRAN or SET IMPLICIT_TRANSACTIONS ON
Review
We examined various components of the relational engine that parses, optimizes, and executes database calls and fetches dataWe 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 ServerWe learned that the cost-based optimizer in Oracle and SQL Server performs SQL optimization that can be superseded by hints from the userWe learned about the concepts of local and distributed transactions and the two-phase commit