1OracleOracleOracle8iOracleOracleOracleOracleOracleSQLOracleOracle1OracleOracle1.1OracleOracle1.2(database)Oracle()Oracle(RDBMS)(column)(row)1-1Oracle(Oracle8)(OO)()51-1Oracle1.2.1(tablespace)(SYSTEM)USERRBS()1.2.2(datafile)Oracle7.2I/O1-21-221.3Oracle(SystemGlobalAreaSGA)SQL(SharedSQLPool)SGASGA95%I/O(instance)(server)(Oracle)1-31-3Oracleinit.orainit.oraORCLinit.orainitorcl.oraconfig.ora()config.oraORCLconfig.oraconfigorcl.oraconfigorcl.orainit.oraIFILE1.4Oracle•()•()••••••1Oracle31(SGA+)2(SGA+)••••••••1.4.1Oracle1-1(datatype)(length)NUMBERNUMBER(9,2)9238Oracle1-11-1OracleCHAR2000NCHAR20002000VARCHAR24000NVARCHAR240004000DATE(7)init.oraNLS_DATE_FORMATDD-MON-YY13-APR-991999.4.13NUMBER0NUMBER4LONG2GBRAW2000LONGRAW2GBMLSLABELTrustedOracle25BLOB4GBCLOB4GBNCLOBCLOB4GBBFILEROWIDRowIDOracle8RowID10Oracle7RowID6UROWID40001-1OracleANSIANSICHARACTERCHAROracleCHARANSICHARACTERVARYINGCHARVARYINGOracleVARCHAR24ANSINUMERICDECIMALDECINTEGERINTSMALLINTOracleNUMBERANSIFLOATREALDOUBLEPRECISIONOraclePL/SQLFLOATOracle8REFREF(5)SYSSYSTEM(datadictionarytable)Oracle(referentialintegrity)OracleID(OID)1.4.2(constraint)createtableEMPLOYEE(EMPLOYEE)(EmpNoName)EmpNONUMBER()NameVARCHAR2(40)Name40(PrimaryKey)(NOTNULL)(NULL)(Name)DEFAULT()CHECK()(Salary1000000)CHECKCHECKUNIQUE()Soc_Sec_NumUNIQUE1Oracle5(foreignkey)DEPTDeptNoDEPTDeptNoEMPLOYEEDeptNoDEPT.DeptNoEMPLOYEE.DeptNoDEPT.DeptNODEPTDeptNoEMPLOYEE1.4.3Orcle8NAME_TYcreattypeOracle8NAME_TYEMPLOYEEEMPLOYEE.NameNAME_TYNAME_TYEMPLOYEENameNAME_TY()EMPLOYEEName51.OracleNAME_TYNAME_TY52.ID(OID)createtablecreatetable6NAME_TYNAMENAMENAMENAMENAME53.()AddressOracle8(Oracle8.0PL/SQL)SQL1.4.4Oracle8(partition)(truncate)Oracle(localindex)(globalindex)Oracle8i121.4.5SYSSYSTEM1Oracle71.4.6(schema)1.4.7RowIDRowID()OracleRowIDRowID(RowID)()RowIDOracleB*(B*-tree)RowIDOracleI/OcreatetableUNIQUEPRIMARYKEYOraclecreateindexcreateindexAEMPLOYEEOracleEmpNoSoc_Sec_NumPRIMARYKEYUNIQUEOracle7.3(bitmapindex)12()Oracle8(reverse)100220018Oracle8(createtableorganizationindex)RowID()OracleRowIDOracle8i1.4.8(cluster)I/O(clusterkey)(clusterindex)I/O1.4.9(hashcluster)(hashingfunction)EmpNoEMPLOYEEEMPLOYEEEmpNowhereI/O()I/O1.4.10(view)1Oracle9()Oracle8ID5SQL51.4.11(sequence)insertinsert1.4.12(procedrure)PL/SQL1.4.13(function)10SQLOracleOracleSUBSTRMY-SUBSTRSQLMY_SUBSTREXECUTE()SQL1.4.14(package)SYSTEMOracle(Financial)250MBSYSTEMSGASQL(SharedSQLPool)SQL1.51.4.15(trigger)••10000delete()10000BEFOREAFTERinsert()update()delete()BEFOREINSERTAFTERINSERTOracle8INSTEADOFINSTEADOFINSTEADOFINSERTinsertINSTEADOFINSTEADOFOracle1Oracle11Oracle8icreate()alter()delete()A(createtrigger)1.4.16()14EMPLOYEE(HR)HR.EMPLOYEEHREMPLOYEEEMPLOYEEHR.EMPLOYEEEMPLOYEESQLEMPLOYEEcreatepublicsynonymEMPLOYEEforHR.EMPLOYEE;Oracle1.4.17insert()select()update()delete()select()execute()(BFILE)read()()execute()PUBLICPUBLIC(role)1-41-4aselect()1-4bcreatetable()59121-41.4.18Oracle()()OracleMY_LINK(service)DB1DB1HRpuffinstuffSQL*Net(SQL*NetNet8)tnsnames.orafromMY_LINKEMPLOYEESQLcreatesynonymEMPLOYEEforEMPLOYEE@MY_LINK;1Oracle13AABB123412Zb)a)34(HR)(EMPLOYEE)EMPLOYEEEMPLOYEEPL/SQL1.4.19(segment)()(extent)Oracle10000Oracle471.4.20Oracle(beforeimage)Oracledelete()delete()OracleOracleOracle71.4.21(sanpshot)(snapshotlog)14Oracle8i(materalizedview)121.5OracleOracle2•(SGA)•••(redolog)•SQL••Java•••(PGA)1.5.1Oracle(SGASystemGlobalArea)(SGA)1-51.(datablockbuffercache)SGA()init.oraDB_BLOCK_BUFFERS()1Oracle151-5SGA1%2%Oracle(LRUleastrecentlyused)SGASGASGA66.5.22.()SGA(LRU)SQLinit.oraSHARED-POOL-SIZE(recuesivecall)66.5.23.1.7.1(redologbuffer)SGA()init.oraLOG_BUFFER4.SQLSQL(librarycache)SQLSQLSQL()SQLSQLSQL66.5.216SQLSQLLRUSQLSQLSQL()init.oraSHARED_POOL_SIZE5.(LargePool)/SQLSQLSQL()init.oraLARGE_POOL_SIZEinit.oraLARGE_POOL_MIN_ALLOCOracle8iLargePoolinit.oraSHARED_POOL_RESERVED_SIZESQLSQL6.JavaJavaJavaJava()Oracle8iinit.oraJAVA_POOL_SIZEinit.oraJAVA_POOL_SIZE10MB7.SGALRULRU50(keeparea)(recyclearea)SQLBUFFER_POOL_KEEP(DB_BLOCK_BUFFERS)storagebuffer_poolRECYCLEDEFAULTaltertableDEFAULT1.5.2SQLSQLSQLOracle81.5.3(PGAProgramGlobalArea)OraclePGA1Oracle17(MTSMultithreadedServer)PGASGAMTSSGAPGAMTSSQL1.6IDinit.oraBACKGROUND_DUMP_DESTOracleBACKGROUND_DUMP_DESTORACLE_BASE/admin/INSTANCE_NAME/bdump1.SMONSMON(SystemMonitor)()SMON48SMONpctincrease2.PMONPMON()PMONSMONPMON3.DBWRDBWR()SGASMONPMONDBWRDBWRDBWRDBWRinit.oraDB_WRITER_PROCESSESI/ODBWRI/O(slave)DBWRDBWRI/Oinit.oraDBWR_I/O_SLAVESDBWRDBWR5DBWRDBW0DBW1DBW2DBW3DBW44.LGWRLGWR()18LGWRDBWRLGWRDBWRLGWR2Oracle8LGWRI/Oinit.oraLGWR_IO_SLAVESOracle8iLGWRI/ODBWR_IO_SLAVES5.CKPTCKPT()DBWRinit.oraLOG_CHECKPOINT_INTERVALCKPTLGWR()init.oraCHECKPOINT_PROCESSTRUECKPT6.ARCHLGWRLGWROracleARCHIVELOG()ARCH()LGWRARCHARCHLGWROracle8ARCHI/OOracle8.0ARCHI/Oinit.oraARCH_IO_SLAVESOracle8iARCH_IO_SLAVESDBWR_IO_SLAVES107.RECORECO()RECODistributedOption(1Oracle19)init.oraDISTRIBUTED_TRANSACTIONS8.SNPnOracle()SNPSNPinit.oraJOB_QUEUE_PROCESSES(Oracle7SNAPSHOT_REFRESH_PROCESSES)9.LCKnOracleLCK()(LCK0~LCK9)LCKGC_LCK_PROCS10.DnnnDnnn()MTSSQL*Net(Net8)11.SnnnSnnn()I/O1