Presentation is loading. Please wait.

Presentation is loading. Please wait.

Module 5: Data Access. Overview Introduce database components involved in data access Introduce concepts of Transact -SQL and Procedural SQL as tools.

Similar presentations


Presentation on theme: "Module 5: Data Access. Overview Introduce database components involved in data access Introduce concepts of Transact -SQL and Procedural SQL as tools."— Presentation transcript:

1 Module 5: Data Access

2 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

3 Relational Engine SQL CLR Hosting Layer Synchronization Svcs Scheduler Lock Manager Deadlock Monitor Buffer Pool Memory Manager SQLOS SQL Manager T-SQL Execution CLR Query Execution T-SQL Compiler Algebraizer Query Optimizer Parser Expression Svcs Execution Environment METADATA Interface Storage Engine SQL Messages HTTP Messages RPC Messages Results

4 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 queries Compare execution plan to the trace profiler Review execution plan

5 Structured Query Language Oracle and SQL Server are compliant with entry-level SQL-92 Both support many of the core features of SQL-99 and SQL-2003 Categories of SQL statements Data Definition Language (DDL) Data Manipulation Language (DML) Transaction Control Statements Session Control Statements System Control Statements

6 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

7 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

8 Demonstration 2: Transact–SQL In this demonstration you will see how to: Generate a query Declare and use variables and row constructors Aggregate summary data

9 Control Statements Control Statements in Oracle and SQL Server Control Category OracleSQL Server Transaction ControlCOMMIT [ WORK ]COMMIT [ WORK | TRANSACTION ] Transaction ControlROLLBACKROLLBACK [ WORK | TRANSACTION ] Transaction ControlSAVEPOINTSAVE TRAN[SACTION] Transaction ControlSET TRANSACTIONSET Session ControlALTER SESSIONSET Session ControlSET ROLEsp_setapprole System ControlALTER SYSTEMsp_configure System ControlALTER DATABASEsp_dboption

10 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()

11 Cursors Versatile navigation through data Both support Fetching and Scrolling SQL Server cursor types include: Close the Cursor Fetch the Next Row Open the Result Declare Cursor with a SELECT Define Variables FIRST NEXT PRIOR LAST ABSOLUTE RELATIVE FIRST NEXT PRIOR LAST ABSOLUTE RELATIVE FORWARD_ONLY INSENSITIVE SCROLL READ_ONLY STATIC DYNAMIC FAST_FORWARD LOCAL GLOBAL KEYSET-DRIVEN FORWARD_ONLY INSENSITIVE SCROLL READ_ONLY STATIC DYNAMIC FAST_FORWARD LOCAL GLOBAL KEYSET-DRIVEN

12 Integrated Full-Text Searching Storing Large Text Documents is on the rise RDBMS – 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;

13 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

14 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 SQL Server internal error messages Severity levels View with sys.messages Both DBs allow custom exceptions messages Severity level Description 0-9Informational messages that are not severe. DB does not raise system errors. 11-16Indicate errors that can be corrected by the user. 17-19Indicate software errors that cannot be corrected by the user. 20-25Indicate fatal errors, which means execution ceases. Error messages are written to the error log.

15 Query Optimization Cost-Based Optimization Execution Plans based on : o Access methods o Statistics o Hints Plans can be viewed with: OracleExplain Plan SQL ServerExecution Plan

16 Transaction Management Oracle transactions end with COMMIT or ROLLBACK SQL 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 environment Two-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  Make Explicit by using:  BEGIN TRAN … COMMIT TRAN  or  SET IMPLICIT_TRANSACTIONS ON

17 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


Download ppt "Module 5: Data Access. Overview Introduce database components involved in data access Introduce concepts of Transact -SQL and Procedural SQL as tools."

Similar presentations


Ads by Google