1、教育部人才培养模式改革与开放教育试点物业管理专业课程物业信息管理第第 四四 章章数据库技术基础数据库技术基础目目 录录 预备知识预备知识 学习方法学习方法 教学内容教学内容 数据库系统概论数据库系统概论 SQL ServerSQL Server概述概述 SQL ServerSQL Server安全管理安全管理 Transact-SQLTransact-SQL语言基础语言基础重点难点重点难点相关知识相关知识预预 备备 知知 识识计算机软件的概念计算机系统软件的概念数据库的基础知识数据库管理系统的基础知识数据安全的知识程序设计的基础知识学学 习习 方方 法法温习预备知识,特别是数据库基础部分初读教
2、材第四章精读本课件认真完成本章课后作业,解决疑难问题完成本章上机实验,实现理论与实际的 有机结合 一、数据库系统概论一、数据库系统概论 1、数据库系统的组成数据库系统的组成 数据库(数据库(Datebase DB)数据库是以一定的组织方式存储在计算机外部存储设备中且可以共享的相关数据集合 数据库中的数据不应存在不必要的冗余,能为多种应用服务 数据库中数据已被结构化,数据的存储是独立于使用它的程序的 硬件支持系统硬件支持系统 软件支持系统软件支持系统 软件支持系统包括操作系统、数据库管理系统,此外还有各种应用程序,各种语言的编译程序等 数据库管理系统(DBMS)是数据库系统的核心软件,数据库管理
3、系统可实现对数据库的建立、操作、控制和维护等管理 数据库管理人员数据库管理人员 2、数据库系统的结构、数据库系统的结构 数据描述数据描述 实体:用于描述客观存在并可相互区别的事物的信息 属性:用来表明实体的特征。如学生的姓名、性别、年龄等都属于描述学生这一实体的属性 属性值:区分属性特征的值。如“男”、“女”是“性别”这一属性的值 记录:相应于每一实体的数据 字段(数据项):标记实体属性的符号 文件:同类记录的集合 关键词:能惟一标识文件中每个记录的一个或多个字段的组合数据模型数据模型 描述数据库中数据逻辑结构的数据类型有四类,它们分别是:层次模型、网状模型、关系模型和面向对象模型 层次模型
4、层次模型是一种树形结构,用树形结构表示实体及实体类型之间的关系,例如:公司总经理生产部经理车间主任开发部经理销售部经理代理销售商1代理销售商2 网状模型:用网状结构表示实体间的联系校 长教 师班 级课 程 关系模型:用二维表格表示实体间的联系 户 型 建筑面积 管 理 费 水电费广泰楼601张国军三房两厅 156.36120.00204.60广泰楼602邓红轲三房两厅 126.80 98.00126.40广安楼302方静园五房两厅 204.66160.00318.80安宏楼201陈国强四房两厅 158.60120.00188.50房 号 业主姓名 面向对象模型:是一种以对象为基础,以事件 来驱
5、动对象执行的技术 数据库系统的体系结构分类数据库系统的体系结构分类 单用户数据库系统 主从式数据库系统 分布式数据库系统 客户/服务器数据库系统3.3.数据库维护数据库维护 安全性安全性 规定用户对数据的操作权限 使用密码编码数据 使用日志监视数据库活动 在查询的路径上加以限制 完整性完整性 数值约束和结构约束 数据正确性效验 并发控制并发控制 只读数据 封锁机制 发通知 二二、SQL Server SQL Server 概述概述1.1.SQL ServerSQL Server是什么?是什么?是大型网络关系型数据库管理系统它支持多操作系统,使用方便、性能可靠 SQL Server有三种版本,对
6、Windows操作系统的版本要求各不相同它完全支持客户机/服务器(C/S)工作模式2.2.C/SC/S工作模式工作模式 C/SC/S是因特网的基本工作模式是因特网的基本工作模式 其工作模式图示其工作模式图示服务器程序服务请求客户程序后台数据库服务响应客户端Web服务器端3 3、SQL Server SQL Server 常用管理工具常用管理工具管管理理工工具具快快捷捷方方式式菜菜单单查询分析器企业管理器 4.4.SQL Server SQL Server 的数据库的数据库 数据库类型数据库类型 SQL Server数据库有两类:系统数据库和用户数据库 系统数据库系统数据库用于管理系统并存放SQ
7、L Server的基本信息,它们有 Master:通过记录用户帐号、配置环境变量和系统错误出处等,控制SQL Server的用户对数据库操作 Model:为用户数据库提供一个模板和原形 Tempdb:为临时数据库或其他临时工作存储需要提供的存储空间 Msdb:支持 SQL Server Agent,并为调度信息和作业历史记录提供存储区 用户数据库用户数据库是用户创建的数据库 数据库对象数据库对象对象名对象名 说说 明明 表表 包含了数据库中的所有数据,定义了表中的列和包含了数据库中的所有数据,定义了表中的列和 视图视图 提供查看一个或多个表中的数据的方法提供查看一个或多个表中的数据的方法 存储
8、过程存储过程 预先编译好一组预先编译好一组SQL语句的命名集合语句的命名集合 索引索引 数据的存储方式,提供数据的快速访问并强制数数据的存储方式,提供数据的快速访问并强制数 触发器触发器 特殊形式的存储过程,在用户更改数据库中数据特殊形式的存储过程,在用户更改数据库中数据行的集合行的集合据完整性据完整性时自动执行时自动执行 三、三、SQL ServerSQL Server的安全管理的安全管理 1、登录验证管理、登录验证管理 (1 1)SQL ServerSQL Server采用两种验证模式:采用两种验证模式:Windows NT验证模式和混合验证模式 Windows NT验证模式,只允许Win
9、dows用户连接到连接到 SQL Server,这种验证模式可使用户不必记忆另外的登录帐号和口令 混合验证模式,允许使用Windows NT验证或SQL Server验证。这种验证模式,特别是SQL Server验证允许非 Windows NT用户和Internet用户等连接到连接到 SQL Server(2 2)配置和选择验证模式)配置和选择验证模式 打开打开SQL Server企业管理器企业管理器 展开展开SQL Server组,在组,在 SQL Server服务器服务器上单击右键,然后选择属性上单击右键,然后选择属性 在属性窗口中单击在属性窗口中单击Security选项卡选项卡 对于混合
10、验证模式,单击对于混合验证模式,单击“SQL Server andWindows NT”选项;对于选项;对于Windows NT验证模式,验证模式,单击单击“Windows NT only”选项选项 单击单击“确定确定”按扭既可按扭既可(3)创建用户登录帐号)创建用户登录帐号 创建用户登录帐号,可创建新的创建用户登录帐号,可创建新的SQL Server登录帐号,也可以从登录帐号,也可以从Windows NT用户或分组创建用户或分组创建登录帐号登录帐号 使用使用SQL Server企业管理器添加企业管理器添加SQL Server登录帐号和登录帐号和Windows NT登录帐号,其方法和登录帐号,
11、其方法和 步骤步骤如下:如下:在SQL Server企业管理器中,展开SQL Server组 SQL Server服务器 安全 右键单击安全下面的“Logins”选择弹出式菜单中的“从这里创建窗口”在“Logins”登录窗口中,可以创建新的用户登 录帐号,查询、删除已有的用户登录帐号等2、许可权限管理、许可权限管理 SQL Server用户创建登录帐号以后,还需将用户的登录帐号分配给其所要存取的数据库,即创建数据库用户以及为该用户分配许可权限 SQL Server许可权限管理仅对当前数据库进行,且只能由具体有sysadmin、db-owner和db-securityadmin角色的成员进行管理
12、 使用企业管理器和Ttansact-SQL语言的语句Grant、Revoke和Deny可完成对用户单独设置权限(1 1)创建数据库用户)创建数据库用户 用户还必须得到访问某个用户数据库的访问用户还必须得到访问某个用户数据库的访问权限才能对该数据库进行操作和访问该数据库的权限才能对该数据库进行操作和访问该数据库的资源资源 使用使用SQL ServerSQL Server企业管理器可创建数据库用企业管理器可创建数据库用户,步骤如下:户,步骤如下:在SQL Server企业管理器中,展开SQL Server组、SQL Server服务器 在Database下选择用户要使用的数据库,例如Northwi
13、nd 右键单击Users,在弹出菜单中选择“从这里创建窗口”,然后用Users窗口创建新的数据库用户或维护原有用户 (2)分配许可权)分配许可权 许可权限指明用户可以访问哪些数据库对象以许可权限指明用户可以访问哪些数据库对象以及可以使用这些对象做什么操作及可以使用这些对象做什么操作 每个数据库都有它自己独立的许可权系统每个数据库都有它自己独立的许可权系统 SQL Server中有两种类型的许可权限:语句许中有两种类型的许可权限:语句许可和对象许可可和对象许可 语句许可包括创建数据库对象如数据库、表、语句许可包括创建数据库对象如数据库、表、存储过程和索引等存储过程和索引等 对象许可包括创建数据库
14、的操作和执行等,如对象许可包括创建数据库的操作和执行等,如数据的查询、更新、删除等数据的查询、更新、删除等 使用使用SQL ServerSQL Server企业管理器可实现语句许可,企业管理器可实现语句许可,其操作步骤如下:其操作步骤如下:展开要使用的数据库,单击下面的“Users”在用户显示栏中选择用户,单击鼠标右键,选择弹出式菜单中的“AII Tasks”“Manage Permissions”打开许可权(Permissions)窗口,在该窗口中,为指定用户设置对各对象的Select、Insert、Update、Delete和exec等的许可权限 使用使用Transact-SQLTrans
15、act-SQL语句,也可达到对用户分配语句,也可达到对用户分配许可权限。许可权限。SQL ServerSQL Server中共有三条中共有三条Transact-SQLTransact-SQL语句可对用户许可权限进行管理语句可对用户许可权限进行管理 Grant:授权许可 Deny:拒绝许可 Revoke:撤销以前授予和拒绝的许可 执行执行Transact-SQL语句是在语句是在SQL Server查询分查询分析器的环境中完成的,其操作过程如下:析器的环境中完成的,其操作过程如下:启动SQL Server查询分析器,并以Windows NT验证方式进行连接 在菜单条右侧的Database列表中,选
16、择数据库 执行以下语句以授予、拒绝和撤销用户的许可权限,例如:允许允许liquan在在northwind中创建表和存储过过程中创建表和存储过过程 Use northwind Grant Create Table,Create Procedure TO liquan 拒绝拒绝liquan对对Products表使用表使用Select,Insert,Update语句权语句权 Use northwind Deny Select,Insert,Update On Products TO liquan 撤销撤销liquan对对Products表使用表使用Select,lnsert,Update语句权语句权
17、 Use northwind Revoke Select,lnsert,Update On Products From liquan3、角色管理、角色管理 角色是对用户权限进行群体性管理的基本单位角色是对用户权限进行群体性管理的基本单位 当若干用户具有相同权限时,我们可以把他们当若干用户具有相同权限时,我们可以把他们组成一个组进行组成一个组进行 统一管理,而不必给每个用户分配统一管理,而不必给每个用户分配权限,这时就要使用角色这种机制权限,这时就要使用角色这种机制 首先要创建一个角色,并对角色分配相应权限首先要创建一个角色,并对角色分配相应权限 然后将一些用户加入到这个角色中,使这些用然后将一
18、些用户加入到这个角色中,使这些用户成为该角色的成员,当角色的权限改变时,所有户成为该角色的成员,当角色的权限改变时,所有该角色成员的权限也会相应的变化该角色成员的权限也会相应的变化 SQL Server 200 支持三种不同的角色:固定服支持三种不同的角色:固定服务器角色、固定数据库角色、自定义数据库角色务器角色、固定数据库角色、自定义数据库角色(1 1)固定的服务器角色)固定的服务器角色 该角色提供了服务器级系统管理功能该角色提供了服务器级系统管理功能 固定的服务器角色及许可权限列表:固定的服务器角色及许可权限列表:Diskadmin 管理磁盘空间和文件配置Create 创建和管理数据Pro
19、cessadmin 管理 SQL Server进程Setupadmin 安装和管理复制 Serveradmin 管理服务器级的属性和配置Securityadmin 创建和管理服务器的登录Sysadmin 执行所有的与服务器相关的活动 角角 色色 名名 许许 可可 权权 限限 将某用户添加到将某用户添加到SysadminSysadmin服务器角色中服务器角色中,其方其方法如下:法如下:展开服务器 展开“安全性”展开“登录”在右面窗口表格中,选择用户右键单击 在弹出菜单中,选择“属性”命令,弹出“SQLServer登录属性”窗口 选择“服务器角色”标签 选中System Administrator
20、s并单击确定按扭(2 2)固定的数据库角色)固定的数据库角色 固定的数据库角色提供数据库级的管理功能,固定的数据库角色提供数据库级的管理功能,以及对数据库的授予或者拒绝读写活动的许可权限以及对数据库的授予或者拒绝读写活动的许可权限 它决定用户具有哪些对数据库操作的许可权它决定用户具有哪些对数据库操作的许可权 固定的数据库角色及许可权限列表:固定的数据库角色及许可权限列表:角角 色色 许许 可可 权权 限限提供数据库用户维护数据缺省许可 所有的用户都是该角色的成员Db-owner执行所有的数据库活动Db-accessadmin创建和管理数据库用户和角色Db-ddladmin添加、删除和修改所有数
21、据库对象Dbsecurityadmin为用户角色分配许可Db-dackupoperatnr执行备份恢复数据库Db-datareader能读数据库中所有的表和数据Db-datawiter能修改数据库中所有表的数据Db-denydatareader不能读数据库中的任何表的数据Db-denydatawriter不能修改数据库中的任何表的数据public将某用户加入到某固定的数据库角色的方法将某用户加入到某固定的数据库角色的方法 展开要使用的数据库 右键单击用户名 在弹出的菜单中选择“属性”在数据库用户属性窗口中为该用户选定数据库角色 单击“确定”按扭(3)用户定义的数据库角色)用户定义的数据库角色
22、用户定义数据库角色是由用户创建的,并可对角用户定义数据库角色是由用户创建的,并可对角色分配许可,如果需要,也可删除它们色分配许可,如果需要,也可删除它们 创建一个新的用户定义角色方法如下:创建一个新的用户定义角色方法如下:打开目标数据库,右键单击“角色”,在弹出菜单中选择“新建数据库角色”在“数据库角色属性”对话框的“名称”栏中,输入新角色名称 点击“添加”按扭,出现“添加角色成员”窗口,在“角色”列表中,选择要加入该角色的成员,单击“OK”,然后单击“确定”按扭 展开角色,右键单击新增的角色,选择“属性”在弹出的窗口中单击“Permissions”在弹出的“Permissions”卡中,为新
23、角色确定许可权限 四、四、TransactSQL语言基础语言基础 SQL Server 使用Transact-SQL作为它的管理和编程语言 使用Transact-SQL进行管理,包括数据定义、数据控制和数据操作的管理 数据操作包括单条语句操作和编程(脚本)操作1、Transact-SQL语言运行环境 (1)SQL Server查询分析器简介查询分析器简介 SQL Server查询分析器是一个图形方式的查询分析器是一个图形方式的工具,是工具,是Transact-SQL语言的主要运行环境语言的主要运行环境 使用它可以同时查看查询语句和结果,也可使用它可以同时查看查询语句和结果,也可编辑、修改、保存
24、编辑、修改、保存Transact-SQL脚本,执行部分脚本,执行部分SQL脚本的功能,查询数据库的结果脚本的功能,查询数据库的结果(2 2)SQL ServerSQL Server查询分析器界面及命令简介查询分析器界面及命令简介 界面界面 命令命令 执行查询命令可点击菜单中的相应命令,也可点击工具栏中的图形按扭 工具栏图形按扭,从左到右依次为:New Query:建立一个新的查询窗口 Load SQL Script:装载一个查询脚本 Save Query/Result:存储查询脚本或执行查询的结果 Clear Query Window:清除一个查询窗口 Execute mode:选择一种显示结
25、果的方式 Parse Query:检查语法 Execute:执行查询脚本 Cancel executing query取消一个查询 2、Transact-SQL语言 Transact-SQL语言共有三种类:型控制语句、语言共有三种类:型控制语句、定义语句和操作语句定义语句和操作语句 数据控制语句(数据控制语句(DCL):能够确定数据库的访问能够确定数据库的访问许可权限许可权限 数据定义语句(数据定义语句(DDL):):能够定义和创建数据能够定义和创建数据库对象库对象 数据操作语句(数据操作语句(DML):):能够处理、查询和更能够处理、查询和更改数据改数据(1 1)数据控制语句()数据控制语句
26、(DCLDCL)DCL语句能够设置和更改用户对数据库的访语句能够设置和更改用户对数据库的访问许可权限问许可权限 许可权限的设置与更改包括授予、拒绝和撤许可权限的设置与更改包括授予、拒绝和撤销原来的权限设置销原来的权限设置 Grant授予权限语句:授予用户创建数据库、创建表等对象的许可权 Deny拒绝权限语句:拒绝用户访问数据库及执行某些操作 Revoke撤销权限语句:撤销以前对用户权限的授予或拒绝 举例举例 授予用户William创建数据库和创建表的许可权:Use master Grant create view,Create table to William 拒绝用户William对nort
27、hwind数据库中表Products使用insert和update语句 Use northwind Deny insert,update On products to William 撤销用户William对northwind数据库中表products使用insert和update语句 Use Northwind Revok insert,update On products from William(2)数据定义语句(DDL)DDL语句可以定义数据库对象和管理数语句可以定义数据库对象和管理数据库对象据库对象 这些语句包括这些语句包括 create对象名 创建一个对象 Alter对象名 更改一
28、个对象 Drop对象名 删除一个对象(3 3)数据库操作语句()数据库操作语句(DMLDML)DML语句能够处理数据库中的数据,不仅能对数据库进行插入、更新和删除等操作,还能进行查询等操作,获取必要的信息 DML语句包括select,insert,update,delete lnsert语句主要用于向数据表插入一行 Update语句用于更改表中数据 delete语句用于删除表中的一行或多行记录 Select语句主要用于检索数据 Select基本语句格式 格式描述 Select结果数据列表 From表 Where查询条件 举例:检索收费表中水电费在100元至500元之间的所有业主,并将其房号、姓
29、名、户型、建筑面积列显示出来。其查询语句:Select 房号,业主姓名,户型,建筑面积 From 收费表 Where 水电费 between 100 and 500selectselect语句格式扩展语句格式扩展 格式描述格式描述 select 字段列表 distinct from 表 视图 where order by desc 格式说明格式说明 若使用参数,都返回全部列;若使用字段列表,则返回相应字段的值;若使用Distinct参数,则返回不同的行 查询条件中可使用的运算符:说 明 运 算 符 逻辑运算 AND,OR,NOT 比较运算 =,=,=,值范围 BETWEEN 字符串比较 LIK
30、E 包含 IN 是用于排序的字段名,默认是升序;若是用于排序的字段名,默认是升序;若 有有desc,则为则为降序降序 查询条件中可使用的运算符:查询条件中可使用的运算符:举例:检索收费表中水电费在举例:检索收费表中水电费在100元至元至500元之间的所有业主,显示其房号、姓名、元之间的所有业主,显示其房号、姓名、户型、建筑面积,并按水电费的降序排列。户型、建筑面积,并按水电费的降序排列。其查询语句:其查询语句:Select 房号,业主姓名,户型,建筑面积 From 收费表 Where 水电费 between 100 and 500 oder by 水电费 dest3、Transact-SQL语
31、言的其他元素语言的其他元素 (1)局部变量和全局变量)局部变量和全局变量 局部变量局部变量 局部变量由用户定义,它只能在本过程中声明和使用 声明局部变量可以使用Declare语句,并在Set语句中给局部变量一个初始值 局部变量名字前有一个符 基本语法如下:Declare 变量名 数据类型 n Set 局部变量名=表达式 全局变量全局变量 全局变量是在所有过程中能使用的变量 全局变量由SQL Server数据库系统提供 全局变量可提供SQL Server当前环境信息 全局变量名的前面要有两个字符 (2)流程控制语句)流程控制语句 流程控制语句能够控制流程控制语句能够控制transact-SQL语
32、句的语句的执行顺序及逻辑流程执行顺序及逻辑流程 下面的几种机构形式,能分别控制几种不同下面的几种机构形式,能分别控制几种不同的逻辑流程的逻辑流程 Beginend块:将transact-SQL语句作为一个处理单元来执行 lfelse 块:根据表达式所满足的条件,执行不同的分支 While块:在指定的条件为真时,重复下一条语句和语句块Enterprise ManagerEnterprise Manager企业管理器企业管理器 几乎可以完成SQL Server 的所有管理工作:包括管理登录、用户权限、库的创建和管理、表的创建和管理、视图、索引、默认值、规则、存储过程和自定义数据类型、数据的导入和导
33、出等。返回返回Query AnalyzerQuery Analyzer查询分析器查询分析器 是一个图形界面的查询工具,用于编辑Transact-SQL语句,然后发送到服务器并返回执行结果。在开发和维护应用系统时,它是常用的管理工具。重重 点点 难难 点点重点重点 数据库、关系数据模型的基本概念数据库、关系数据模型的基本概念 SQL ServerSQL Server数据控制语句及其应用数据控制语句及其应用 SQL ServerSQL Server数据操作语句及其应用数据操作语句及其应用难点难点 SQL ServerSQL Server的的安全管理安全管理 selectselect查询语句及其应用查询语句及其应用相相 关关 知知 识识 SQL Server的安全管理,参阅广州电大计算机教研室编网络数据库SQL Server10 select查询语句及其应用,参阅广州电大计算机教研室编网络数据库SQL Server4