* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download ORACLE Architecture and Administration
Microsoft Access wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Ingres (database) wikipedia , lookup
Concurrency control wikipedia , lookup
Functional Database Model wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Oracle Database wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Open Database Connectivity wikipedia , lookup
ContactPoint wikipedia , lookup
Clusterpoint wikipedia , lookup
International Technology University Lecture 1 Overview of Oracle Database 1 Part 1. Introduction to Database System Introduction to Database History of RDBMS Entity-Relationship Modeling Database Language 2 Introduction to Database File-Based Approach Each program defines and manages its own data Limitation Separation and isolation of data Duplication of data Data dependence Incompatibility of files Fixed queries/proliferation of application program Database Approach A shared collection of logically related data, designed to meet the information needs of an organization 3 Introduction to Database Database Management System(DBMS) A software system that enables users to define, create and maintain the database and provides controlled access to database DDL DML : procedural, non-procedural Control : security, integrity, concurrency control, recovery control, user-accessible catalog Components of the DBMS Environment Hardware - Software - Data - Procedures - People 4 Introduction to Database Advantages of DBMS - Control of data redundancy - Economy of scale - Data consistency - Balance of conflicting requirements - More information from the same amount of data - Sharing of data - Improved data accessibility and responsiveness - Improved data integrity - Increased productivity - Improved security - Improved maintenance through data independence - Enforcement of standards - Increased concurrency - Improved backup and recovery services Disadvantages of DBMS - Complexity, Size, Cost of DBMSs, Additional H/W costs - Cost of conversion, Performance, Higher impact of a failure 5 Introduction to Database Three-Level Database Architecture External Level The users’ view of the database Conceptual Level The community view of the database Internal Level The physical representation of the database on the computer 6 Introduction to Database Functions of a DBMS 1. Data storage, retrieval, and update 2. A user-accessible catalog 3. Transaction support 4. Concurrency control services 5. Recovery services 6. Authorization services 7. Support for data communication 8. Integrity services 9. Services to promote data independence 10. Utility services 7 Introduction to Database Components of a DBMS Programmers Application Programs Users Queries DBA Database Schema DML Query DDL preprocessor processor compiler Program Database Dictionary object code manager manager Access File methods manager System Database and buffers system catalog DBMS 8 Introduction to Database Components of Database Manager Authorization control Integrity Command Query checker processor optimizer Transaction manager Scheduler Buffer Recovery manager manager Data Manager 9 History of RDBMS History of DBMS 1960s - Apollo moon-landing project, GUAM mid 1960s - IMS by IBM (hierarchical DBMS) mid 1960s - IDS by GE (network DBMS) 1965 - CODASYL(Conference on Data SYStems Language) 1967 -DBTG(Data Base Task Group) 1970 - E.F.Codd of the IBM Research Lab. Late 1970s - System R project at IBM 1980s - commercial relational DBMS(DB2, Oracle, Informix..) Now - OODBMS, ORDBMS 10 RDBMS Terminology Terminology Relation : a relation is a table with columns and rows Attribute : an attribute is a named column of a relation Domain : a domain is the set of allowable values for one or more attributes Tuple : a tuple is a row of a relation Degree : the degree of a relation is the number of attributes it contains Cardinality : the cardinality of a relation is the number of tuples it contains Relational database : a collection of normalized relation 11 Properties of Relations Properties of Relations The relation has a name that is distinct from all other relation names Each cell of the relation contains exactly on atomic value Each attribute has a distinct name The values of an attribute are all from the same domain The order of attributes has no significance Each tuple is distinct; there are no duplicate tuples The order of tuples has no significance, theoretically 12 Properties of Relations When is a DBMS Relational? Foundational rules Rule 0 : Foundational rule Rule 12 : Non-subversion rule Structural rules Rule 1 : Information representation Rule 6 : View updateing Integrity rules Rule 3 : Systematic treatment of null values Rule 10 : Integrity independence Data manipulation rules Rule2 : Guaranteed access Rule 4 : Dynamic online catalog based on the relational model Rule5 : Comprehensive data sublanguage Rule7 : High-level insert, update, delete Data independence rules Rule8 : Physical data independence Rule 9 : Logical data independence Rule11 : Distribution independence 13 Entity-Relationship Modeling Concepts of the E-R Modeling Entity Types An object or concept that is identified by the enterprise as having an independent existence Attributes A property of an entity or a relationship type Relationship Types A meaningful association among entity types 14 Normalization Normalization A technique for producing a set of relations with desirable properties, given the data requirements of an enterprise UNF is a table that contains one or more repeating groups 1NF is a relation in which the intersection of each row and column contains one and only one value 2NF is a relation that is in 1NF and every non-primary-key attribute is fully functionally dependent on the primary key. 3NF is a relation that is in 1NF, 2NF in which no non-primary-key attribute is transitively dependent on the primary key BCNF is a relation in which every determinant is a candidate key 4NF is a relation that is in BCNF and contains no trivial multi-valued dependency 5NF is a relation that contains no join dependency 15 Database Views Conceptual Database Design The process of constructing a model of the information used in an enterprise, independent of all physical considerations Logical Database Design The process of constructing a model of the information used in an enterprise based on a specific data model, but independent of a particular DBMS and other physical considerations. Physical Database Design The process of producing a description of the implementation of the database on secondary storage; it describes the storage structures and access methods used to archieve efficient access to the data 16 Database Language SQL 1974 - SEQUEL by D.Chamberlin (IBM) 1975 - SQUARE by Boyce (System R project) 1976 - SEQUEL/2 (SQL) by Chamberlin and Boyce) late 1970 - SQL(Oracle), QUEL(Ingres) 1982 - Relational Database Language(RDL) : ANSI 1987 - ISO standard 1989 - Integrity Enhancement Feature (ISO) 1992 - SQL2(SQL92) : ISO 17 Database Language DML SELECT INSERT UPDATE DELETE DDL CREATE(DROP) SCHEMA CREATE(ALTER, DROP) DOMAIN CREATE(ALTER, DROP) TABLE CREATE(DROP) VIEW CREATE(DROP) INDEX 18 Structured Query Language - SQL SQL View Integrity Enhancement Feature Primary key Unique Foreign key Access Control Embedded SQL Host Language Variables Application Programming Interface Dynamic SQL 19 Part 2. Understanding Oracle Database Overview of oracle Database Architecture Memory Structure Process Structure Storage Structure New Features 20 Overview of Oracle Architecture PMON SMON D000 RECO S000 Redo Log Buffer SGA Shared SQL Area P000 Database Buffer Cache * Total SGA Size : 1700 Mbyte * Fixed Size : 70 Kbyte * Variavle Size : 490 MByte TL-812 4,000,000 KByte Server 1,200,000 KByte DBW0 CKPT Data File Raw Device 2,100 KByte LGWR ARCH USER Archive Log Mode(50M) 21 Memory Structure : Shared Pool Shared Pool Shared Pool Contents - Text of the SQL or PL/SQL statement Library Cache Dictionary Cache Shared SQL Area Control Structures for example: PL/SQL Procedures and Package Control Structures for examples; Locks Library Cache handles and so on ... Character Set Conversion Memory Network Security Attributes and so on .. Reusable Runtime Memory - Parsed form of the SQL or PL/SQL statement - Execution plan for the SQL or PL/SQL statements - Data dictionary cache containing rows of data dictionary information Library Cache - shared SQL area - private SQL area - PL/SQL procedures and package - control structures : lock and library cache handles Dictionary Cache - names of all tables and views in the database - names and datatypes of columns in database tables - privileges of all Oracle users SHARED_POOL_SIZE 22 Memory Structure :Database Buffer Cache Database Buffer Cache holds copies of data blocks read from disk All users concurrently connected to the system share access to the buffer cache Dirty List LRU List Size = DB_BLOCK_SIZE * DB_BLOCK_BUFFERS SGA Database Buffer Cache Shared Pool Shared SQL Area 23 Memory Structure :Redo Log Buffer Circular buffer containing information about changes made to the database save it redo entry Redo Entries is used when Database Recovery DBWR write contents of Redo Log Buffer to Online Redo Log LOG_BUFFER change vector #1 redo record change vector #1 change vector #1 24 Oracle Processes SNPn SMON PMON Pnnn RECO SGA Database Buffer Cache Snnn Redo Log Buffer Offline Storage Device Dedicated Server Process DBWR Dnnn LCK0 User Process LGWR ARCH CKPT Control Files Users Data Files Redo Log Files 25 Background Process DBWR (Database Writer) - write all dirty buffers to data files - Use a LRU algorithm to keep most recently used blocks in memory - Defers write for I/O optimization dirty list reaches a threshold length A process scans a specified number of buffer in the LRU without finding free buffer A time-out occurs DBWR checkpoint occurs LGWR (Log Writer) - writes redo log entries to disk Commit occurs The redo log buffers pool becomes one-third full DBWR completes cleaning the buffer blocks at a checkpoint LGWR time-out - A commit confirmation is not issued until the text has been recorded in the redo log file 26 Cont’d PMON (Process Monitor) - Cleans up abnormally terminated connection - Rolls back uncommitted transactions - Releases locks held by a terminated process - Frees SGA resources allocated to the failed processes - Database maintenance SMON (System Monitor) - Performs automatic instance recovery - Reclaims space used by temporary segments no longer in use - Merges contiguous area of free space in the datafile 27 Cont’d CKPT (Check Point) - is enabled by setting the parameter CHECKPOINT_PROCESS=TRUE - If enabled, take over LGWR’s task of updating files at a checkpoint - Updates header of data files and control files at the end of checkpoint - More frequent checkpoint reduce recovery time from instance failure - CKPT improve the performance of database with many database files ARCH (Archiver) - Copies redo log files to tape or disk for media failure - Operates only when a log switch occurs - Is optional and is only needed when in ARCHIVELOG mode - May write to a tape drive or to a disk LCKn (Lock), Dnnn (Dispatcher), Snnn (Server), RECO (Recover), Pnnn(Parallel), SNPn(Job Queue), QMNn(Queue Monitor), 28 Server/User Process User Processes - A user process is used when a user runs an application program - Runs the tool/application and is considered the client - Passes SQL to the server process and receives the results Server Processes - A server process must place the data in the database buffer cache - Parse and execute SQL statements - Read data blocks from disk into the shred database buffers of the SGA - Return the results of SQL statements to the user process Parse : check syntax, security access, object resolution, optimization Execute : applies the parse tree to the data, perform a physical read and change Fetch : Passes data to the user (only SELECT) 29 Oracle Files Data file Redo Log Files Control Files Parameter File Archive File Log File (alert*.log, sqlnet.log, listener.log...) Trace File 30 Storage Architecture Physical storage structures Data files Segments Extents Blocks Logical storage structures Tablespaces Tables / Clusters / Indexes Rows Columns 31 Physical Storage Architecture Relationship among Segments, Extents, and Blocks Segment 96K Extent Extent 24K 72K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K 2K Database Blocks 32 Logical Storage Architecture Relationship between tablespaces and data files Database System Tablespace DATA1.ORA DATA2.ORA USER Tablespace DATA3.ORA 33 Cont’d Objects stored in tablespaces Tablespace (one or more data files) Table INDEX INDEX Table INDEX INDEX INDEX INDEX INDEX INDEX INDEX INDEX Table Database Files Objects (Physical structures associated with only one tablespace) (stored in tablespace may span several data files) 34 Block Header Table Dictionary Row Dictionary Free Space General Block Information (Block add, Segment type) 85 ~ 100 bytes Table info in Cluster Row info in Block (2 byte per row) Row Data using when New Row Insert or Update (pctfree, pctused) Table or Index Data 35 PCTFREE / PCTUSED PCTFREE PCTUSED 20% Free space 61% Free space PCTFREE = 20 Insert new row until 80% 20% use when Update PCTUSED = 40 Can insert new row when below 60% When Usage is below 40% (61% Free space), block is listed in FREELIST 36 Extent A set of contiguous database blocks within a data file. Extent are allocated when. - The segment is created (INITIAL EXTENT) - The segments grows (NEXT EXTENT) - The table is altered to allocate extents. Extent are de-allocated when the - The segment is dropped and truncated. - The segment is larger than optimal and contains free extents (for rollback segments only) Each segment is created with at least on extend( initial extent ) ( Rollback segment : 2) ALTER TABLE table_name DEALLOCATE UNUSED 37 Segment a set of one or more extents that contains all the data for a specific type of logical storage structure within a tablespace Data Segment - A collection of extents that holds all of the data for a table or a cluster Index Segment - A collection of extents that holds all of the index data for search optimization on large tables and clusters Rollback Segment - A collection of extents that holds rollback data for rollback, read-consistency, or recovery Temporary segment - A collection of extents that holds data belonging to temporary tables created during a sort operation Bootstrap segment - An extent that contains dictionary definitions for dictionary tables to be loaded when the database is opened. 38 Oracle Client/Server Architecture NETWORK Server b Client Application Server/Server Client/Server Server A Benefit of Client/Server Component - Database S/W work on Server - Minimize network resource - concurrency, consistency, transparency - Only Server upgrade to increase size - Minimize Client H/W spec - concurrency, consistency, transparency 39 SQL*Net What is SQL*Net? - Oracle’s Client/Server middleware product - transparent connection from client tool to DB ( from on DB to another ) - works across multiple network protocol and operation system What is TNS? - Transparent Network Substrate - Oracle’s Network applications to access the underlying network protocols transparently - TNS-based application, Oracle Protocol Adapters, Network software like TCP/IP Configuration File - TNSNAME.ORA ( Client ) - TNSNAV.ORA ( Client ) - SQLNET.ORA ( Client, Server ) - LISTENER.ORA ( Server ) 40 SQL*Net Configuration TNSNAME.ORA info = (DESCRIPTION= (ADDRESS_LIST= (ADDRESS= (PROTOCOL=tcp) (HOST=brinfoa01) (PORT=1521) ) ) (CONNECT_DATA= (SID=BRBINFO1) ) ) SQLNET.ORA # SQLNET.EXPIRE_TIME = 0 SQLNET.AUTHENTICATION_S ERVICES=(none, beq) LISTENER.ORA LISTENER= (ADDRESS_LIST= (ADDRESS= (PROTOCOL=tcp) (HOST=brinfoa01) (PORT=1521) ) ) SID_LIST_LISTENER= (SID_LIST= (SID_DESC= (SID_NAME=BRBINFO1) (ORACLE_HOME=/oracle7/oracle7) (ENVS='EPC_DISABLED=TRUE') ) ) STARTUP_WAIT_TIME_LISTENER=0 CONNECT_TIMEOUT_LISTENER=0 LOG_DIRECTORY_LISTENER=/oracle7/oracle7/network/log LOG_FILE_LISTENER=listener TRACE_LEVEL_LISTENER=OFF 41 Networking Challenge Networking Challenge Support large mission-critical client/server, and provide migration path towards distributed object architecture Focus 1. Scalability : Connection Pooling, Multiplexing(Connection Manager) 2. Manageability : Configuration-free installation option, Centralized client administration, Automated client configuration 3. Security : Oracle Security Server 42 ODBC / oo4o / JDBC ODBC (Open Database Connectivity ) - Provide a way for client program (eg VB, Excel, Access) to access database - is a standardized API, developed according to the specification of the SQL Access Group, than allows one to connect to SQL database oo4o (Oracle Object for OLE) - a middleware product manufactured by Oracle that allows native access to Oracle7 databases from client applications via the Microsoft OLE standard - OLE 2.0 Automation Server, Oracle Data Control, Two C++ Class Library JDBC (Java Database Connectivity ) - a set of classes and interfaces written in Java to allow other Java programs to send SQL statements to a relational database management system - JDBC Thin for Java applets, JDBC OCI for Java application 43