数据库原理-第九章.ppt
《数据库原理-第九章.ppt》由会员分享,可在线阅读,更多相关《数据库原理-第九章.ppt(93页珍藏版)》请在三一办公上搜索。
1、网络数据库系统是指在计算机网络环境下运行的数据库系统,它的数据库分散配置在网络节点上,能够对网络用户提供远程数据访问服务。有人把它也称为分布式数据库系统,但是它只能算是一种特定的分布式数据库系统,它驻留在各个网络节点上的数据库仍然是集中式的数据库,这与第10章介绍的在计算机网络环境下运行的真正意义上的分布式数据库系统是有本质区别的。网络数据库系统可以按照客户机/服务器模式或浏览器/服务器模式建立,但无论采用那种计算模式,数据库都是驻留在后台服务器上,通过网络通信,为前端用户提供数据库服务。,第9章 网络数据库系统,Home,本资料由-大学生创业|创业|创业网http:/提供资料在线代理|网页代
2、理|代理网页|http:/减肥药排行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http:/,第9章 网络数据库系统,Home,9.1 基于客户机/服务器模式的数据库系统,9.2 服务器数据库的建立,9.3 服务器数据操纵,9.4 数据库访问接口,9.5 SQL会话期与调用级接口CLI,9.6 客户端应用系统,9.7 基于浏览器/服务器模式的数据库系统,9.8 ASP的数据库访问技术,9.9 JSP的数据库访问技术,9.10 Internet/Intranet信息系统多层体系结构,本资料由-大学生创业|创业|创业网http:/提供资料在线代理|网页代理|代理网页|http:/减肥药排
3、行榜|淘宝最好的减肥药|什么减肥药效果最好|减肥瘦身药|http:/,客户机/服务器模式(简称C/S)是以网络环境为基础、将计算应用有机地分布在多台计算机中的结构。服务器(Servers),客户机(Clients)。服务器负责数据的存储、检索与维护,而客户机负责提供GUI接口,承担诸如处理与显示检索所得的数据、解释和发送用户的要求等任务。,Home,9.1 基于客户机/服务器模式的数据库系统,9.1 基于客户机/服务器模式的数据库系统,Home,Home,9.1 基于客户机/服务器模式的数据库系统,9.1.1 客户机/服务器系统的组成,9.1.2 三层结构的客户机/服务器系统,9.1.1 客户
4、机/服务器系统的组成,客户机/服务器系统基本由三个部分组成:客户机、服务器、客户和服务器之间的连接。(1)客户机。客户机是一个面向最终用户的接口或应用程序,它通过向服务器请求数据服务,然后做必要的处理,将结果显示给用户。(2)服务器。服务器的主要功能是建立进程和网络服务地址,监听用户的调用,处理客户的请求,将结果返回给客户和释放与客户的连接。(3)连接件。客户机与服务器之间的连接是通过网络连接实现的,对应用系统来说这种连接更多的是一种软件通信工程(如网络协议等)。,Home,Home,9.1.1 客户机/服务器系统的组成,9.1.2 三层结构的客户机/服务器系统,Home,(1)表示层 表示层
5、由客户机实现。表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。大部分的应用逻辑被移植到应用服务器上。(2)功能层 功能层由应用服务器实现。功能层相当于应用的本体,它是应用逻辑处理的核心,是具体业务的实现。(3)数据层 数据层就是DBMS,驻留在数据库服务器上,负责管理对数据库数据的存取操作。,9.1.2 三层结构的客户机/服务器系统,Home,9.2.1 数据库的建立,9.2.2 用户注册与传授,Home,9.2 服务器数据库的建立,9.2.3 数据源的建立,9.2.4 数据库设计,1建立数据库的步骤(1)建立数据库的逻辑分区或数据库存储文件。(2)创建数据库。(3)建立用户自定义
6、数据类型。(4)建立数据库基本表、视图和索引。(5)录入数据。,Home,9.2.1 数据库的建立,Home,2文件与文件组(1)数据库文件(Database File)主数据库文件(Primary Database File),扩展名为.mdf;次数据库文件(Secondary Database File),扩展名为.ndf。(2)事务日志文件(Transaction Log File)扩展名为.ldf。(3)文件组(File Group)主文件组(Primary File Group)和次文件组(Secondary File Group),9.2.1 数据库的建立,3定义数据库表 一个数据
7、库由一组存储数据的表和其他对象(如视图、索引、存储过程、触发器)组成。可以用SQL语句定义数据库表,但是更为便捷的方法是利用数据库系统的辅助开发工具。,Home,9.2.1 数据库的建立,用户必须在新建立的数据库系统中注册,建立其用户名和登录口令;用户还必须在他将要访问的数据库上注册,并获得授权,系统才允许他存取该数据库中的数据。用户的注册与授权由数据库管理员负责进行。1SQL Server 的登录认证 MS SQL Server 能在三种安全模式下运行:Windows认证模式、混合认证模式、SQL Server认证模式。,Home,9.2.2 用户注册与授权,2使用Transact_SQL管
8、理SQL Server登录 sp_addlogin,用于创建新的使用SQL Server认证模式的用户登录账号。sp_droplogin,用于在SQL Server中删除用户登录账号,禁止其访问SQL Server。sp_granlogin,用于设定一Windows NT用户或用户组为SQL Server登录者。sp_denylogin,用于拒绝某一NT 用户或用户组连接到SQL Server。sp_revokelogin,用于删除NT用户或用户组在SQL Server上的登录信息。sp_helploginssp_helplogins,用于显示SQL Server所有登录者的信息。包括每一个数
9、据库里与该登录者相对应的用户名称。以上各系统存储过程只有属于Sysadmin和Securityadmin的服务器角色的成员才可以执行。,Home,9.2.2 用户注册与授权,例9.1 创建一个新登录用户张三 exec sp_addlogin 张三 UGV pubs us_english encryptopt=skip_enctyption 例9.2 删除SQL Server登录者张三 exec sp_droplogin 张三,Home,9.2.2 用户注册与授权,3数据库用户 在数据库中,用户账号与登录账号是两个不同的概念,一个合法的登录账号只表明该账号通过了NT认证或SQL Server认证
10、,但不能表明其可以对数据库数据和数据对象进行某种或某些操作。所以一个登录账号总是与一个或多个数据库用户账号(这些账号必须分别存在相异的数据库中)相对应,这样才可以访问数据库。guest是一个公共用户,Home,9.2.2 用户注册与授权,SQL Server 利用以下系统存储过程管理数据库用户。系统存储过程sp_granddbaccess,用于为SQL Server登录者或NT用户或用户组建立一个相匹配的数据库用户账号。系统存储过程sp_revokedbaccess,用于删除数据库用户。只有db_owner和b_access-admin 数据库角色才有执行系统存储过程sp_granddbacc
11、ess和sp_revokedbaccess的权限。系统存储过程sp_helpuser,用于显示当前数据库的指定用户信息。此外还有二个保持与以前版本相兼容的系统存储过程sp_adduser和sp_dropuser,其作用与sp_granddbaccess 和sp_revokedbaccess相同,建议使用后者。,Home,9.2.2 用户注册与授权,例9.3 将NT用户STAWARDZS加到当前数据库中其用户名为ZS。exec sp_grantdbaccess STAWARDZS ZS 4权限管理(1)对象权限,9.2.2 用户注册与授权,Home,(2)语句权限,9.2.2 用户注册与授权,H
12、ome,在SQL Server中使用GRANT、REVOKE和DENY三种命令来管理权限。5角色管理 在SQL Server中主要有两种角色类型:服务器角色与数据库角色。(1)服务器角色 服务器角色是指根据SQL Server的管理任务,以及这些任务相对的重要性等级来把具有SQL Server管理职能的用户划分成不同的用户组。,9.2.2 用户注册与授权,Home,(2)数据库角色 数据库角色能为某一用户或一组用户授予不同级别的管理或访问数据库或数据库对象的权限,这些权限是数据库专有的。SQL Server提供了两种数据库角色类型:预定义数据库角色、用户自定义数据库角色。预定义数据库角色 在S
13、QL Server中预定义的数据库角色有Db_owner、Db_accessadmin、Db_datareader、Db_datawriter、Db_addladmin、Db_securityadmin、Db_backupoperator、Db_denydatareader、Db_denydatawriter等。用户自定义的数据库角色 标准角色 应用角色,9.2.2 用户注册与授权,Home,(3)使用存储过程管理服务器角色 存储过程sp_addsrvrolemember 存储过程sp_dropsrvrrolemember 例9.5 建立新的数据库角色newroler。sp_addrole n
14、ewroler 例9.7 将用户张三加入到角色newroler中。sp_addrolemember newroler 张三,9.2.2 用户注册与授权,Home,9.2.3 数据源的建立,在客户端和数据库服务器端设置相同的数据源(Data Source)。数据源由数据、数据库系统、操作系统及网络系统组成。数据源所含的数据库引擎完成所需的数据库操作。对于SQL Server系统,如果采用ODBC接口,建立数据源的步骤如下:(1)打开Windows或Windows Server(NT)的“控制面板”中的“ODBC”,选择编辑“System DSN”。(2)点击“Add”按钮,选择ODBC驱动程序类
15、型“SQL Server”。(3)输入数据源名称、所连接的数据库服务器名称和数据库名称。,Home,9.2.4 数据库设计,目前存在的基于客户机/服务器模式的数据库系统,绝大多数仍是建立在关系数据模型上的,数据库的设计与常规的数据库设计基本相同,所不同的是应当考虑网络环境的影响。应考虑处理功能与数据在客户机和服务器间的合理平衡的分布与配置,认真分析处置客户机和服务器间的通信方法、通信频度及数据量。,Home,9.3 服务器数据操纵,Home,9.3.1 流程控制语言,9.3.2 触发器,9.3.3 存储过程,9.3.1 流程控制语言,MS SQL Server的Transact-SQL中 1I
16、F.ELSE语句 例9.8 IF.ELSE语句应用示例。declare x int y int z int select x=1 y=2 z=3 if x y print x y else if y z print y z else print z y,Home,Home,2BEGIN.END语句 BEGIN.END用来设定一个程序块,将在BEGIN.END内的所有程序视为一个单元执行。3CASE语句 CASE 命令有两种语句格式。第一种:CASE WHEN THEN WHEN THEN ELSE END,9.3.1 流程控制语言,第二种:CASE WHEN THEN WHEN THEN EL
17、SE END,9.3.1 流程控制语言,Home,例9.9 调整员工工资,工作级别为1的上调8%,工作级别为2的上调7%,工作级别为3的上调6%,其他上调5%。update employee set e_wage=case when job_level=1 then e_wage*1.08 when job_level=2 then e_wage*1.07 when job_level=3 then e_wage*1.06 else e_wage*1.05 end,9.3.1 流程控制语言,Home,4WHILE.CONTINUE.BREAK语句WHILE BEGIN BREAK CONTIN
18、UE 命令行或程序块 END,9.3.1 流程控制语言,Home,例9.10 WHILE语句应用示例。declare x int y int c int select x=1 y=1 while x 3 begin print x while y 3 begin select c=100*x+y print c select y=y+1 end select x=x+1 select y=1 end,9.3.1 流程控制语言,Home,5WAITFOR语句 WAITFOR DELAY|TIME|ERROREXIT|PROCESSEXIT|MIRROREXIT WAITFOR 命令用来暂时停止程
19、序执行,直到所设定的等待时间已过,或所设定的时间已到才继续往下执行。,9.3.1 流程控制语言,Home,例9.11 等待1小时2分零3秒后才执行SELECT语句。waitfor delay 01:02:03 select*from employee 例9.12 等到晚上11 点零8 分后才执行SELECT语句。waitfor time 23:08:00 select*from employee,9.3.1 流程控制语言,Home,1触发器的概念 触发器(Trigger)是一种特殊类型的存储过程。触发器不同于存储过程。触发器主要是通过事件触发而被执行的,而存储过程可以通过存储过程名字而被直接调
20、用。触发器是与表紧密联系在一起的,可以看作是基本表定义的一部分。触发器是在特定表上进行定义的,该表也称为触发器表。当有针对触发器表的操作时,例如,在表中插入(Insert)、删除(Delete)、修改(Update)数据时,那么触发器就自动触发执行。,9.3.2 触发器,Home,Home,触发器也有三种类型,即Insert、Update、Delete。触发器可以针对一个或多个表进行操作;一张表可以有多个触发器,用户可以针对Insert、Delete或Update语句分别设置触发器,也可以针对一张表上的特定操作设置多个触发器。2触发器的原理 每个触发器有两个特殊的表:插入表(INSERTED)
21、和删除表(DELETED)。这两个表是只读的,不允许用户直接对其修改,即用户不能向这两个表写入内容,但可以引用表中的数据。,9.3.2 触发器,(1)插入表的功能 对一个定义了插入类型触发器的表来讲,一旦对该表执行了插入操作,那么对向该表插入的所有行来说都有一个相应的副本存放到插入表中,即插入表就是用来存储向原表插入的内容。(2)删除表的功能 对一个定义了删除类型触发器的表来讲,一旦对该表执行了删除操作,则将所有的删除行存放至删除表中。,9.3.2 触发器,Home,3触发器的生成与用途 例9.13 设有二个表:商品表TITLES和销售表SALES。建立一个触发器“updatesum”,当对表
22、SALES做插入操作时,自动更新表TITLES中的汇总值列“ytd_sales”(销售总量)。CREATE TRIGGER updatesum ON SALES FOR INSERT AS UPDATE TITLES SET ytd_sales=ytd_sales+(SELECT SUM(qty)FROM inserted WHERE TITLES.title_id=inserted.title_id)WHERE TITLES.title_id IN(SELECT title_id FROM inserted),9.3.2 触发器,Home,例9.14 建立一个触发器“nodelstudent
23、s”,防止批处理语句删除STUDENTS表中的行。CREATE TRIGGER nodelstudents ON STUDENTS FOR DELETE ROLLBACK TRANSACTIONS 触发器还有许多其他功能:(1)强化约束(Enforce Restriction)。(2)跟踪变化(Auditing Changes)。(3)级联操作(Cascaded Operation)。(4)存储过程的调用(Stored Procedure Invocation)。,9.3.2 触发器,Home,存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据
24、库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程与一般的程序过程一样,能够接受输入数据,返回结果值,返回操作成功与否的状态值等。系统存储过程主要存放在master 数据库中,并以sp_为前缀。系统存储过程从系统表中获取信息,为系统管理员管理SQL Server 提供支持。用户自定义存储过程是由用户创建,并能完成某一特定功能(如查询用户所需数据信息)的存储过程。存储过程可用CREATE PROCEDURE语句创建,用ALTER PROCEDURE语句修改。,9.3.3 存储过程,Home,例9.15 假设数据库中有三个表stores(商店表)、sales(销
25、售表)、titles(商品表),创建一个带参数的存储过程stortitle,用于检索销售某本指定书籍的书店。CREATE PROCEDURE stortitle findtitle varchar(80)AS SELECT stor_name,title FROM stores,sales,titles WHERE stores.stor_id=sales.stor_id AND sales.title_id=titles.title_id AND titles.title=findtitle ORDER BY title,stor_name,Home,9.3.3 存储过程,执行存储过程sto
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 原理 第九

链接地址:https://www.31ppt.com/p-6578421.html