Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture plan Oracle architecture SQL Data definition Queries

Similar presentations


Presentation on theme: "Lecture plan Oracle architecture SQL Data definition Queries"— Presentation transcript:

1 Lecture plan Oracle architecture SQL Data definition Queries
Insert, delete and update Jane Reid, BSc/IT DB, QMUL, 28/1/02

2 Oracle Relational database Based on a client-server architecture
Each table column is independent and identified by name Ordering of rows is unimportant All operations should be relational, i.e. generate new relations from old ones System supports at least one JOIN operation Based on a client-server architecture Jane Reid, BSc/IT DB, QMUL, 28/1/02

3 Oracle architecture Oracle server consists of: Database (raw data)
Logical structure = database schema Physical structure = file structure Instance (processes and system memory) Jane Reid, BSc/IT DB, QMUL, 28/1/02

4 Logical database structure
Organised into: Tablespaces Schemas Data blocks Extents Segments Jane Reid, BSc/IT DB, QMUL, 28/1/02

5 Tablespaces Group related logical structures together
SYSTEM tablespace created automatically Holds the data dictionary Meta-data in machine-readable format Includes security information, schema object information, space allocation, etc May also have one or more user tablespaces Each table belongs to a specific tablespace Jane Reid, BSc/IT DB, QMUL, 28/1/02

6 Schemas A named collection of schema objects associated with a particular user Equivalent to a user’s personal space Created automatically when a user account is set up Jane Reid, BSc/IT DB, QMUL, 28/1/02

7 Data blocks Corresponds to a specific number of bytes of disk space
Size can be set for each database at creation Jane Reid, BSc/IT DB, QMUL, 28/1/02

8 Extents Specific number of contiguous data blocks allocated for storing a specific type of information Jane Reid, BSc/IT DB, QMUL, 28/1/02

9 Segments A set of extents allocated for a certain logical structure
Oracle dynamically allocates extents to segments as existing extents fill up Jane Reid, BSc/IT DB, QMUL, 28/1/02

10 Physical database structure
Consists of: Datafiles (e.g. table and index data) One or more datafiles form a tablespace Redo log files (usually multiplexed) Record all changes made to the data Used in recovery Control files (usually multiplexed) Contain a list of all other files in the database Jane Reid, BSc/IT DB, QMUL, 28/1/02

11 Oracle instance Consists of: Processes Shared memory used by processes
User processes Oracle processes Shared memory used by processes Jane Reid, BSc/IT DB, QMUL, 28/1/02

12 User processes Manipulate the user’s input
Communicate with the Oracle server process Display the information requested by the user Jane Reid, BSc/IT DB, QMUL, 28/1/02

13 Oracle processes Perform functions for users:
Server processes handle requests from connected user processes Background processes perform asynchronous I/O and provide increased parallelism Jane Reid, BSc/IT DB, QMUL, 28/1/02

14 Shared memory [1] Used for caching data, indexes and storing shared program code Organised into memory structures of a fixed size created on instance startup: System global area (SGA) Used to store data and control information for one Oracle instance Holds database buffer cache, redo log buffer and shared pool Jane Reid, BSc/IT DB, QMUL, 28/1/02

15 Shared memory [2] Program global area
Used to store data and control information for the Oracle server processes Jane Reid, BSc/IT DB, QMUL, 28/1/02

16 SQL Standard for commercial relational DBs
High-level declarative language interface User specifies what the result should be Optimisation and query execution decisions left to DBMS Based on tuple relational calculus, with some relational algebra features Jane Reid, BSc/IT DB, QMUL, 28/1/02

17 SQL versions Standard version accepted by ANSI / ISO
Current version is SQL3 Not all relational DBMSs support SQL3 (may support SQL-92, i.e. version 2) Contains some object-oriented features Jane Reid, BSc/IT DB, QMUL, 28/1/02

18 SQL in Oracle Oracle’s own version of SQL - SQLPlus
DDL and DML statements View definition Security and authorisation specification Definition of integrity constraints Transaction control specification Session and system control statements Embedding SQL into programming languages Jane Reid, BSc/IT DB, QMUL, 28/1/02

19 Data definition Objects Commands Table CREATE ALTER DROP
Jane Reid, BSc/IT DB, QMUL, 28/1/02

20 Tables in SQL [1] Created by CREATE TABLE statement
CREATE TABLE EMPLOYEE Known as base tables Attributes ordered by creation order Rows not ordered Jane Reid, BSc/IT DB, QMUL, 28/1/02

21 Tables in SQL [2] CREATE TABLE specifies new relation by Relation name
Attributes Name Data type Attribute constraints Jane Reid, BSc/IT DB, QMUL, 28/1/02

22 Tables in SQL [3] Key/entity/referential integrity constraints
Can be specified in CREATE TABLE Can be added later using ALTER TABLE Table can be deleted by DROP TABLE statement Jane Reid, BSc/IT DB, QMUL, 28/1/02

23 Data types [1] Numeric Character-string Integer: INTEGER Real: FLOAT
Fixed length: CHAR(n) Varying length: VARCHAR(n) / VARCHAR2 (n) Jane Reid, BSc/IT DB, QMUL, 28/1/02

24 Data types [2] DATE Has main components YEAR, MONTH, DAY
Also stores century, hour, minute, second Has format DD-MON-YYYY E.g. 05-FEB-2001 Jane Reid, BSc/IT DB, QMUL, 28/1/02

25 CREATE DOMAIN SSN_TYPE AS CHAR(9);
Like a type declaration Advantages Easier to change data type Improves schema readability Can have optional default specification CREATE DOMAIN SSN_TYPE AS CHAR(9); Jane Reid, BSc/IT DB, QMUL, 28/1/02

26 Attribute constraints
Specified by CONSTRAINT Example constraint: NOT NULL Should always be specified for primary keys Constraint may be given optional name Specified by CONSTRAINT <name> Must be unique within a schema Jane Reid, BSc/IT DB, QMUL, 28/1/02

27 Default values Specified by DEFAULT <value>
Used if no explicit value assigned to attribute NULL unless otherwise stated Jane Reid, BSc/IT DB, QMUL, 28/1/02

28 Table constraints [1] PRIMARY KEY UNIQUE (secondary key)
FOREIGN KEY (referential integrity) Referential integrity constraints can be violated by Insertion or deletion of tuples Foreign key value modified Jane Reid, BSc/IT DB, QMUL, 28/1/02

29 Table constraints [2] Referential triggered action
Can be added to foreign key constraint to cause automatic update ON DELETE Options are SET NULL, CASCADE and SET DEFAULT Jane Reid, BSc/IT DB, QMUL, 28/1/02

30 DROP TABLE DEPENDENT CASCADE CONSTRAINTS;
Option CASCADE CONSTRAINTS DROP TABLE DEPENDENT CASCADE CONSTRAINTS; Jane Reid, BSc/IT DB, QMUL, 28/1/02

31 ALTER TABLE [1] Command which allows Adding column Dropping column
ALTER TABLE EMPLOYEE ADD JOB VARCHAR(12); Dropping column ALTER TABLE EMPLOYEE DROP ADDRESS CASCADE; Jane Reid, BSc/IT DB, QMUL, 28/1/02

32 ALTER TABLE DEPARTMENT ALTER MGRSSN
Changing column definition (add/drop default) ALTER TABLE DEPARTMENT ALTER MGRSSN DROP DEFAULT; SET DEFAULT ‘ ’; Jane Reid, BSc/IT DB, QMUL, 28/1/02

33 ALTER TABLE [3] Adding / dropping table constraints
ALTER TABLE EMPLOYEE DROP CONSTRAINT EMPSUPERFK CASCADE; ALTER TABLE EMPLOYEE ADD CONSTRAINT EMPSUPERFK; FOREIGN KEY(SUPERSSN) REFERENCES EMPLOYEE(SSN) ON DELETE SET NULL; Jane Reid, BSc/IT DB, QMUL, 28/1/02

34 Queries SQL allows two or more identical tuples in a relation
Table is thus a multi-set / bag of tuples Table can be constrained to be a set by Use of a key constraint DISTINCT option Jane Reid, BSc/IT DB, QMUL, 28/1/02

35 SELECT statement [1] Basic syntax is SELECT <attribute list>
FROM <table list> WHERE <condition> Jane Reid, BSc/IT DB, QMUL, 28/1/02

36 SELECT statement [2] Example - query 0
Similar effect to relational algebra SELECT-PROJECT combination SELECT clause specifies projection attributes WHERE clause specifies selection condition SQL may retrieve duplicate tuples, however Jane Reid, BSc/IT DB, QMUL, 28/1/02

37 SELECT statement [3] Example - query 1
Similar effect to relational algebra SELECT-PROJECT-JOIN combination SELECT clause specifies projection attributes WHERE clause specifies selection condition Condition DNUMBER = DNO is join condition Jane Reid, BSc/IT DB, QMUL, 28/1/02

38 SELECT statement [4] Example - query 2
Multiple select and join conditions possible Jane Reid, BSc/IT DB, QMUL, 28/1/02

39 Ambiguous attribute names
Attributes with same name in different relations Names must be qualified with relation name Example - query 1A Jane Reid, BSc/IT DB, QMUL, 28/1/02

40 Aliasing [1] Queries can refer to same relation twice
One-level recursive query Not possible to have infinitely recursive query Aliases / tuple variables can be declared Example - query 8 Jane Reid, BSc/IT DB, QMUL, 28/1/02

41 EMPLOYEE AS E (FN, MI, LN, SSN, BD, ADDR, SEX, SAL, SSSN, DNO)
Aliasing [2] Also possible to rename relation attributes EMPLOYEE AS E (FN, MI, LN, SSN, BD, ADDR, SEX, SAL, SSSN, DNO) This ‘shorthand’ can be used in any query Example - query 1B Jane Reid, BSc/IT DB, QMUL, 28/1/02

42 No WHERE clause No condition on tuple selection Example - query 9
More than one relation in FROM clause means cross product Example - query 10 Similar to relational algebra cross product - PROJECT combination Jane Reid, BSc/IT DB, QMUL, 28/1/02

43 Use of asterisk Used to retrieve all attribute values in SELECT clause
Examples - queries 1C, 1D, 10A Jane Reid, BSc/IT DB, QMUL, 28/1/02

44 Tables as sets [1] Duplicate elimination not automatic
Expensive Sometimes unnecessary or unwise Not suitable for use with aggregate functions Can be achieved by DISTINCT in SELECT clause Example - queries 11, 11A Jane Reid, BSc/IT DB, QMUL, 28/1/02

45 Tables as sets [2] Set union (UNION) and other set operations sometimes available, e.g. EXCEPT, CONTAINS, but are non-standard Example - queries 3, 4 Jane Reid, BSc/IT DB, QMUL, 28/1/02

46 Substring comparison Uses LIKE comparison operator
% replaces any number of characters _ replaces a single character Examples - queries 12, 12A Jane Reid, BSc/IT DB, QMUL, 28/1/02

47 Arithmetic operators Standard arithmetic operators can be applied
Example - query 13 Jane Reid, BSc/IT DB, QMUL, 28/1/02

48 Other operators String concatenation || Numeric value range BETWEEN
Example - query 14 Ordering by value of one or more attributes Example - query 15 Jane Reid, BSc/IT DB, QMUL, 28/1/02

49 Nested queries [1] Complete SELECT-FROM-WHERE block inside WHERE of outer query Ambiguity among attributes of same name Assumed they belong to relation in innermost nested query Correlated queries Condition in inner WHERE references “outer” attribute Jane Reid, BSc/IT DB, QMUL, 28/1/02

50 Nested queries [2] Queries with nested SELECT-FROM-WHERE blocks using IN can usually be expressed as single block query Example - query 4A Jane Reid, BSc/IT DB, QMUL, 28/1/02

51 Set comparison [1] Comparison operator IN / NOT IN can compare
Value with multi-set of values Tuple of values with multi-set of union-compatible tuples Jane Reid, BSc/IT DB, QMUL, 28/1/02

52 Set comparison [2] SELECT DISTINCT ESSN FROM WORKS_ON
WHERE (PNO, HOURS) IN (SELECT PNO, HOURS FROM WORKS_ON WHERE SSN = ‘ ’); Jane Reid, BSc/IT DB, QMUL, 28/1/02

53 Other comparison operators
>, >=, <, <=, <> Can be used with ANY, SOME, ALL SELECT LNAME, FNAME FROM EMPLOYEE WHERE SALARY > ALL (SELECT SALARY FROM EMPLOYEE WHERE DNO = 5); Jane Reid, BSc/IT DB, QMUL, 28/1/02

54 Functions in SQL EXISTS / NOT EXISTS UNIQUE Evaluates to Boolean value
Indicates if result of a correlated, nested query is empty Example - queries 16B, 6, 7 UNIQUE Indicates if there are duplicate tuples Jane Reid, BSc/IT DB, QMUL, 28/1/02

55 WHERE clause variations
Explicit set of values Example - query 17 Use of NULL Used with IS / IS NOT Equality comparison (=) not appropriate Example - query 18 Jane Reid, BSc/IT DB, QMUL, 28/1/02

56 Aggregate functions Built-in functions
COUNT SUM MAX MIN AVG Example - queries 19, 20, 21, 22, 23, 5 Jane Reid, BSc/IT DB, QMUL, 28/1/02

57 GROUP BY clause Group tuples with same value for an attribute
E.g. for averaging across categories of tuples (rather than across all tuples) Example - query 24, 25 Jane Reid, BSc/IT DB, QMUL, 28/1/02

58 HAVING clause Places condition on selection of tuple groups specified by GROUP BY clause Example - queries 26, 28 Jane Reid, BSc/IT DB, QMUL, 28/1/02

59 Summary of SQL queries [1]
SELECT <attribute and function list> FROM <table list> [WHERE <condition>] [GROUP BY <grouping attribute(s)>] [HAVING <group condition>] [ORDER BY <attribute list>] Jane Reid, BSc/IT DB, QMUL, 28/1/02

60 Summary of SQL queries [2]
Order of conceptual evaluation FROM clause WHERE clause GROUP BY clause HAVING clause ORDER BY clause SELECT clause Jane Reid, BSc/IT DB, QMUL, 28/1/02

61 INSERT [1] Possible to insert Specify Example - update 1 Single tuple
Multiple tuples Specify Relation name List of values for the tuple In same order as attributes specified Example - update 1 Jane Reid, BSc/IT DB, QMUL, 28/1/02

62 INSERT [2] Can specify limited subset of attributes
Must include all NOT NULL / non-default ones Example - update 1A DBMS may not enforce all integrity constraints User must enforce the others Examples - updates 2, 2A Jane Reid, BSc/IT DB, QMUL, 28/1/02

63 DELETE Possible to delete
Single tuple Multiple tuples Tuples in other tables may be deleted by referential triggered action Includes WHERE clause Examples - updates 4A, 4B, 4C Jane Reid, BSc/IT DB, QMUL, 28/1/02

64 UPDATE [1] Possible to modify attribute values of
Single tuple Multiple tuples Tuples in other tables may be modified by referential triggered action Jane Reid, BSc/IT DB, QMUL, 28/1/02

65 UPDATE [2] Includes Example - updates 6, 5 WHERE clause
SET clause, which specifies Attributes to be modified New attribute values (NULL / DEFAULT possible) Example - updates 6, 5 Jane Reid, BSc/IT DB, QMUL, 28/1/02

66 Views Simplifies query specification Always up-to-date
Virtual tables derived from defining tables Other virtual table(s) Base tables(s) Jane Reid, BSc/IT DB, QMUL, 28/1/02

67 Creating views View definition includes Created using CREATE VIEW
Name List of attribute names Query to specify contents Created using CREATE VIEW Examples - view 1, 2 Jane Reid, BSc/IT DB, QMUL, 28/1/02

68 Querying and deleting views
SQL queries can be specified on views Example - query view 1 Deleted using DROP VIEW Example - view 1A Jane Reid, BSc/IT DB, QMUL, 28/1/02

69 Updating views [1] View update often ambiguous Example - update view 1
DBMS may choose best option User may be asked to specify preferred options during view definition Example - update view 1 Jane Reid, BSc/IT DB, QMUL, 28/1/02

70 Updating views [2] View with single defining table is updatable if view attributes contain primary key Not possible to update View defined on multiple queries using joins View defined using grouping / aggregate functions Jane Reid, BSc/IT DB, QMUL, 28/1/02

71 Assertions [1] More general constraints can be specified via declarative assertions Created using CREATE ASSERTION Deleted using DROP ASSERTION Jane Reid, BSc/IT DB, QMUL, 28/1/02

72 Assertions [2] CHECK clause can be used with CREATE DOMAIN statement
CREATE ASSERTION SALARY_CONSTRAINT CHECK (NOT EXISTS (SELECT * FROM EMPLOYEE E, EMPLOYEE M, DEPARTMENT D WHERE E.SALARY > M.SALARY AND E.DNO = D.DNUMBER AND D.MGRSSN = M.SSN) ); CHECK clause can be used with CREATE DOMAIN statement CREATE DOMAIN D_NUM AS INTEGER CHECK (D_NUM > 0 AND D_NUM < 21); Jane Reid, BSc/IT DB, QMUL, 28/1/02


Download ppt "Lecture plan Oracle architecture SQL Data definition Queries"

Similar presentations


Ads by Google