资源描述:
《数据库系统英第三版课件2012版 Database Systems(9).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、9SQLinaServerEnvironmentTheThree-TierArchitectureTheSQLEnvironmentTheSQL/Host-LanguageInterfaceStoredProceduresUsingaCall-LevelInterfaceJDBCPHP9SQLinaServerEnvironmentWehaveseenonlyhowSQLisusedatthegenericqueryinterface---anenvironmentwherewesitataterminala
2、ndaskqueriesofadatabase.Realityisalmostalwaysdifferent:conventionalprogramsinteractingwithSQL.9SQLinaServerEnvironmentCodeinaspecializedlanguageisstoredinthedatabaseitself(e.g.,PSM,PL/SQL).SQLstatementsareembeddedinahostlanguage(e.g.,C).Connectiontoolsareus
3、edtoallowaconventionallanguagetoaccessadatabase(e.g.,CLI,JDBC,PHP/DB).9.1TheThree-TierArchitectureAcommonenvironmentforusingadatabasehasthreetiersofprocessors:Webservers---talktotheuser.Applicationservers---executethebusinesslogic.Databaseservers---getwhatt
4、heappserversneedfromthedatabase.9.2TheSQLEnvironmentThedatabaseis,inmanyDB-accesslanguages,anenvironment.Databaseserversmaintainsomenumberofconnections,soappserverscanaskqueriesorperformmodifications.Theappserverissuesstatements:queriesandmodifications,usua
5、lly.9.2TheSQLEnvironmentEnvironmentConnectionStatement9.3TheSQL/Host-LanguageInterface宿主语言+嵌套SQL编译预处理宿主语言+函数调用函数库目标代码编译包含SQL语句的典型编程系统的框架如下:9.3TheSQL/Host-LanguageInterfaceThedifferenceofSQLandconventional(传统的)programminglanguage:SQLusestherelationaldatamode
6、l.Conventionalprogramminglanguagesuseadatamodelwithintegers,reals,characters,andsoon.impedancemismatch(匹配失衡)Howtomanipulatedatabasebyconventionalprogramminglanguages?connecttodatabase,buildasession.sendasequenceofSQLstatements,receiveanddealwiththeresult.cl
7、osethesession.9.3TheSQL/Host-LanguageInterfaceTheSQL/HostLanguageInterface:DeclareSharedVariables。EXECSQLBEGINDECLARESECTION;charstudioName[50],studioAddr[256];charSQLSTATE[6];EXECSQLENDDECLARESECTION;UseEmbedSQL。EXECSQLINSERTINTOStudio(name,address)VALUES(
8、:studioName,:studioAddr);UsePrecompilerstatement,EXECSQL。UseSQLSTATE。UseCursor(游标,光标)。9.3TheSQL/Host-LanguageInterface建立和使用游标的步骤:游标说明DECLARE<游标名>[SCROLL]CURSORFORSELECT…打开游标OPEN<游标名>推进FETCH{NEXT
9、PRIOR
10、