数据库SQL Server期末复习.docx
《数据库SQL Server期末复习.docx》由会员分享,可在线阅读,更多相关《数据库SQL Server期末复习.docx(15页珍藏版)》请在冰豆网上搜索。
数据库SQLServer期末复习
数据库SQLServer期末复习
⏹选择题:
2*5=10’
⏹应用设计:
30’(概念设计和逻辑设计)
⏹查询设计:
8*5=40’(SQL语言和关系代数)
⏹简答:
10*2=20’
概述
⏹数据库:
数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合。
特点:
数据按一定的数据模型组织、描述和存储。
数据之间相互关联
可为各种用户共享
冗余度较小
数据独立性较高
⏹DBMS:
什么是DBMS
数据库管理系统(DatabaseManagementSystem,简称DBMS)是位于用户与操作系统之间的一层数据库管理软件。
为用户或应用程序提供访问数据库的方法,是用来管理数据库的计算机应用软件。
DBMS的用途:
为用户提供访问数据库的接口,使用户能方便地管理和控制数据库。
⏹DBS:
数据库系统(DatabaseSystem,DBS)是实现有组织地、动态地存储大量关联数据,方便多用户访问的计算机软件、硬件和数据资源组成的系统,即采用了数据库技术的计算机系统。
从狭义上来讲,数据库系统主要是指数据库、数据库管理系统和用户。
从广义上来讲,它不仅包括数据库、数据库管理系统和用户,还包括计算机硬件、操作系统和维护人员。
其中,数据库管理系统是数据库系统的核心和主体,它保证了数据库的独立性和共享性。
特点:
数据独立、数据结构化
数据共享性高、冗余度低、易扩充
数据由DBMS统一管理和控制
⏹为什么要用数据库系统代替文件系统管理数据?
随着数据管理规模的扩大,数据量急剧增加,文件系统显露出三个缺陷:
数据冗余(redundancy)
数据与应用的独立性差(independency)
数据联系弱(poordatarelationship)
数据库系统:
数据由DBMS统一管理与控制
数据的整体性
数据的共享性高,冗余少
数据的独立性高
数据的整体结构化
使用数据库系统的优点:
便于数据的集中管理,减少数据冗余,提高数据的利用率和一致性。
可以大大提高应用开发的效率,减少开发人员的工作量。
维护方便,可以减轻数据库系统管理人员维护系统的负担。
⏹数据库系统由哪些部件构成?
由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员(和用户)构成。
⏹数据库系统的三级模式结构以及它是如何保证数据库系统的两级数据独立性的?
(1)外模式、模式、内模式
外模式/模式映象的用途:
保证数据的逻辑独立性
当模式改变时,数据库管理员修改有关的外模式/模式映象,使外模式保持不变
应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
模式/内模式映象的用途:
保证数据的物理独立性
当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变
应用程序不受影响。
保证了数据与程序的物理独立性,简称数据的物理独立性。
数据模型
⏹现实世界中的信息如何能够进入计算机?
将这些信息转化成计算机能处理的数据,数据库中用数据模型来抽象、描述和处理现实世界中的数据。
⏹数据模型的两个层次
1.概念模型也称信息模型,它是按用户的观点来对数据和信息建模。
概念模型不依赖计算机及DBMS。
2.结构模型也称为逻辑模型它是按计算机系统的观点对数据建模,受到计算机平台、DBMS的限制,直接影响数据库的最终实现。
主要包括网状模型、层次模型、关系模型等。
⏹概念模型有什么特点?
通常如何表示?
(1)能真实、充分地反映现实世界。
易于理解
易于更改
(2)E-R图
⏹实体之间的联系有哪些类型?
(举例)
1:
1,1:
n,m:
n
1:
1:
读者与读者卡号
m:
n:
由于一本图书可以借给多个学生阅读,而一个学生又可以借阅多本图书,因此图书与读者之间是m:
n的联系;
1:
n:
由于一个读者属于一种读者类型,一种读者类型包括多名读者,因此读者类型与读者之间是1:
n的联系。
⏹数据模型的三要素
数据结构
数据操作
数据完整性约束
⏹常见的三种数据模型
非关系模型
1)层次模型(HierarchicalModel)
2)网状模型(NetworkModel)
数据结构:
以基本层次联系为基本单位
基本层次联系:
两个记录以及它们之间的一对多(包括一对一)的联系
3)关系模型(RelationalModel)
数据结构:
表
→层次模型、网状模型、关系模型
⏹关系模型是如何来表达有关现实世界中的事物及事物之间的联系的信息的?
关系模型用二维表格表示数据之间的联系,是目前最重要的数据模型。
关系模型建立在严格的数学概念的基础上,从用户角度来看,关系模型由一组关系组成,每个关系的数据结构是一张规范化的二维表。
数据库设计
数据库系统设计包括哪些内容?
–需求分析
–概念结构设计
–逻辑结构设计
–物理结构设计
–数据库实施
–数据库的运行和维护
⏹数据库系统设计的各个步骤的任务是什么?
1、需求分析:
准确了解与分析用户需求(这是整个数据库设计的基础)。
需求分析要收集数据库所有用户的信息内容和处理要求,并加以归纳和分析,建立系统说明文档。
2、概念结构设计:
通过对用户的需求进行综合归纳与抽象,形成一个独立于具体DBMS的概念模型,是整个数据库设计的关键。
3、逻辑结构设计:
在概念模型的基础上,根据实际应用的需要导出一种DBMS支持的逻辑数据模型,并进行优化。
该模型满足数据库存储、一致性及运行等各方面的用户需求。
4、物理结构设计:
目标是从一个满足用户需求的已确定的逻辑模型出发,在限定的软、硬件环境下,利用DBMS提供的各种手段设计一个可实现的、运行高效的物理数据库结构,包括选择数据库文件的存储结构、选择索引、分配存储空间以形成数据库的内模式。
5、数据库实施:
设计人员运用DBMS提供的数据定义语言及宿主语言,根据逻辑设计和物理设计的结果建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。
6、数据库运行和维护:
数据库系统经过试运行后,即可投入正式运行。
在数据库系统运行过程中需要不断地对其进行评价、调整与修改。
例题:
数据库设计
一个工厂管理数据库要求存储下述信息:
产品:
产品编号,产品名,规格等
工人:
工人编号,姓名,性别,年龄,职称等
车间:
车间名称,负责人,地址等
并约定:
:
一个车间可生产多种产品,一种产品可由多个车间生产,并记录每个车间生产的每种产品的数量;
一个车间可有多个工人,一个工人只能属于一个车间。
(1)根据上述信息设计数据库的概念模型,画出E-R图,用下划线标明各实体的主码,并标明实体间的联系的类型(1:
n,m:
n,1:
1)。
(2)将上述概念模型转化为关系模式,并标明主码(加下划线)和外码(用文字说明)。
概念设计
逻辑设计
⏹产品(产品编号,产品名,规格)
⏹车间(车间名称,负责人,地址)
⏹工人(工人编号,姓名,性别,年龄,职称,车间),车间为外码,引用车间关系的车间名称
⏹生产(产品编号,车间名称,生产数量)
产品编号,车间名称为外码,分别引用车间关系和产品关系中的车间名称和产品编号。
其他例子
⏹一个仓储管理数据库要求存储下述信息:
(1)商品:
商品代码,商品名称,数量,单价,存放的仓库等
(2)供应商:
厂名,地址,联系人等
(3)仓库:
仓库号,地点,负责人等
并约定:
(1)一种商品可以由多个供应商供货,一个供应商供应多种商品,且需要记录每个供应商所供应的不同商品的数量。
(2)一种商品只能存储在某一个仓库,而一个仓库可存储多种商品
【考的就是这个例子、还好不是很难、真是’谢谢’老师了。
。
。
】
关系数据库
⏹关系的完整性(具体应用)
⏹实体完整性
⏹参照完整性
⏹用户定义的完整性
⏹如何来实现上述的关系数据库完整性约束?
实体完整性:
给每个关系定义主码。
参照完整性:
建立关联。
用户自定义的完整性:
定义有效性规则、应用程序控制。
关系代数
∪(并运算)
-(差运算)
∩(交运算)
σ(选择)
π(投影)
∞(连接)
学生选课库的关系模式为:
学生(学号,姓名,性别,年龄,所在系);
课程(课程号,课程名,学分,课程性质);
选课(学号,课程号,成绩).
1.查询选修了课程名为“数据库”的学生的学号和姓名。
π学号、姓名(σ课程名=‘数据库’(学生∞选课))
2.查询“计算机系”的学生所选修的课程的课程号和课程名?
π课程号、课程名(σ所在系=‘计算机系’(学生∞课程))
3.没有选修课程号为C02课程的学生学号。
π学号(学生)—π学号(σ课程号=‘C02’(选课))
4.查询每个学生的学号、姓名、选修的课程名及成绩。
π学号、姓名、课程名、成绩(学生∞选课∞课程)
5.查询选修了课程号为C01课程的学生的学号、姓名和成绩。
π学号、姓名、成绩(σ课程号=‘C01’(学生∞选课))
6.查询选修了C01号课程或C02号课程的学生学号和成绩。
π学号、成绩(σ课程号=‘C01’∨σ课程号=‘C02’(选课))
7.查询同时选修C012课程和选修C02课程的学生学号和成绩。
π学号、成绩(σ课程号=‘C01’(选课))∩π学号、成绩(σ课程号=‘C02’(选课))
T-SQL语言
⏹创建表、修改表(见表的管理实验)
⏹数据输入、删除和修改
⏹查询
条件、排序、分组统计、联接
使用T-SQL命令在teachingData数据库中创建表SInfo表,SInfo表的表结构如下:
列名
数据类型
长度
备注
SID
myID
主关键字
SName
myName1
不允许为空
Sex
char
2
其值只能为“男”或“女”
Birthday
smalldatetime
Dept
myDept
major
varchar
30
Class
varchar
18
IDCardNo
char
18
不允许为空
创建表
createtableSInfo
(SIDmyIDprimarykey,
SnamemyName1notnull,
Sexchar
(2)check(Sex='男'orSex='女'),
Birthdaysmalldatetime,
DeptmyDept,
majorvarchar(30),
Classvarchar(18),
IDCardNochar(18)notnull)
修改表
⏹修改表SInfo表的表结构,设置DCardNo值为唯一的,设置Sex的默认值为“男”。
。
altertableSInfo
addunique(IDCardNo)
altertableSInfo
alterconstraintdefa_sexdefault(‘男’)forSex
数据输入、删除、修改
1.将所有学生的年龄增加1岁。
UpdatesInfo
SetBirthday=Birthday+1
2.输入某位学生某门课的成绩。
(学号100026,课程号C0002,成绩86)
UpdatescoreInfo
Set成绩=86where学号=100026and课程号=C0002
3.删除某一门课的选课记录。
(课程号C0005)
DeletefromcourseInfo
WhereCID=‘C0005’
4.删除某个学生的选课记录。
(学号100026)
DeletefromcourseInfo
WhereSID=‘100026’andstuInfo.SID=courseInfo.SID
数据查询
学生(学号,姓名,性别,年龄,所在系,专业)
课程(课程号,课程名,学分,课程性质);
选课(学号,课程号,成绩).
1.查询某个学生的选课记录,包括课程号、成绩,并按课程号降序排序。
(学号为0001026或姓名为王萍)
Select课程号,成绩from选课
Where学号=‘0001026’
Orderby课程号DESC
Select课程号,成绩from选课
Where‘王萍’=(select姓名from学生
Where学生.学号=选课.学号)
2.查询所有学号以101开头或结尾(或姓张)的学生的学号、姓名和所在系。
Select学号,姓名,所在系from学生
Where学号like‘101%’/‘%101’/姓名like‘张%’
3.查询某个系年龄不大于20岁的男同学的姓名及其年龄(如计算机系)。
Select姓名,年龄from学生
Where年龄<=20and所在系=‘计算机系’and性别=‘男’
4.查询选修某一门课的学生的学号和成绩,查询结果按分数降序排列。
(课程名为“数据分析”)
Select学号,成绩from选课,课程
Where选课.课程号=课程.课程号and课程名=‘数据分析’
Orderby分数DESC
5.查询某个系的学生的选课情况,包括学号、姓名、课程号和成绩,按课程号降序排列(如计算机系)。
Select学生.学号,姓名,课程号,成绩from学生,选课
Where学生.学号=选课.学号and所在系=‘计算机系’
Orderby课程号DESC
6.查询学生表中都有哪些专业或者选课表中都有哪些课被选了。
Selectdistinct专业from学生
Selectdistinct课程号from选课
7.分组统计每个学生的选课门数,显示学号和选课门数。
Select学号AS学号,count(*)AS选课门数from课程
Groupby学号
8.分组统计查询每门课的平均分、最高分、最低分,显示课程号、平均分、最高分和最低分。
Select课程号AS课程号,max(score)AS最高分,min(score)AS最低分,avg(score)AS平均分from选课
Groupby课程号
视图
⏹视图与基本表的区别联系
(1)区别:
视图是从一个或多个基本表或视图中导出的虚表。
视图和基本表有本质上的区别,视图在数据库中只是存储视图的定义,而不是查询出来的数据。
(2)联系:
通过视图的定义,对视图查询最终转化为对基本表的查询。
⏹视图的用途:
可以通过定义数据视图来查看数据库中存储的数据。
(1)为用户集中数据,简化用户的数据查询和处理。
(2)屏蔽数据库的复杂性。
(3)简化用户权限的管理。
(4)便于数据共享。
(5)方便程序维护。
数据库安全保护
⏹数据库安全性及控制方法(数据库系统安全模型)
安全性:
数据库安全性是指保护数据库以防止非法使用造成的数据泄露、更改或破坏。
控制方法:
●用户标识与鉴定:
系统提供的最外层安全保护措施。
只有在DBMS成功注册了的人员才是该数据库的用户,才可以访问数据库。
●存取控制:
用户标识与鉴定解决了检查用户是否合法的问题,但是合法用户的存取权限不尽相同。
数据安全性的核心问题是DBMS的存取控制机制,确保进入系统的用户只能进行合法的操作。
●视图:
可以屏蔽一些用户不应该访问的数据。
●审计:
记录用户的操作,监测可能的不合法行为。
●操作系统一级的保护措施。
●加密:
数据最后还可以以加密的形式存储到数据库中。
⏹SQLServer的安全体系结构?
⏹用户如何才能访问SQLServer数据库中的数据?
1.只有在DBMS成功注册了的人员才是数据库的用户,才可以访问数据库。
任何数据库用户要访问数据库时,首先由系统将用户提供的身份标识与系统内部记录的合法用户标识进行核对,通过鉴定后才提供对系统的访问权。
2.用户要访问SQLServer时,需要经过两个认证过程:
一是身份验证,只验证用户是否有链接到SQLServer数据库服务器的资格;二是权限认证,检验用户是否有对指定数据库的访问权,并且当用户操作数据库中的数据或对象时验证用户是否有相应的操作权限。
⏹SQLServer登录帐号和用户帐号
登录帐号是指能登录到SQLServer服务器的帐号,属于服务器的层面,本身并不能让用户访问服务器中的数据库。
如果用户想要访问某个数据库,还需要给这个用户授予访问某个数据库的权限,也就是在所要访问的数据库中为该用户创建一个数据库用户账号。
⏹数据库故障恢复的必要性及技术
必要性:
故障是是不可避免的。
如:
计算机硬件故障、系统软件和应用软件的错误、操作员的失误、恶意的破坏
这些故障轻则造成运行事物非正常中断,影响数据库中数据的正确性,重则破坏数据库,使数据库中全部或部分数据丢失,数据一旦遭到破坏或丢失可能造成不可挽回的损失。
因此数据库管理系统将数据库从错误状态恢复到某一已知的正确状态,即数据故障恢复很有必要性。
技术:
恢复机制涉及的关键问题
1.建立冗余数据
1)数据转储(backup)
2)登录日志文件(logging)
利用这些冗余数据实施数据库恢复