注意:信息世界又称概念模型,机器世界又称数据模型
一个表的码可以有多个,但主码只能有一个。
例:借书表(学号,姓名,书号,书名,作者,定价,借期,还期)
规定:学生一次可以借多本书,同一种书只能借一本,但可以多次续借。
1.两实体集间实体之间的联系
1:1联系
1:n联系
m:n联系
2.同一实体集内实体之间的联系
实体型:□
属性:○
联系: ◇
说明:
① E-R图作为用户与开发人员的中间语言。
② E-R图可以等价转换为层次、网状、关系模型。
举例:学校有若干个系,每个系有若干班级和教研室,每个教研室有若干教员,其中有的教授和副教授每人各带若干研究生。每个班有若干学生,每个学生选修若干课程,每门课程有若干学生选修。用E-R图画出概念模型。
1.重要术语:
2.特点:
小结:数据中有三种类型,DBMS就有三种类型,DB亦有三种类型。
模式:是数据库中全体数据的逻辑结构和特征的描述。
模式只涉及数据库的结构;
模式既不涉及应用程序,又不涉及数据库结构的存储;
外模式:是模式的一个子集,是与一个应用程序有关的逻辑表示。特点:一个应用程序只能使用一个外模式,但同一个外模式可为多个应用程序使用。
内模式:描述数据库结构的存储,但不涉及物理记录。
2.两级映象
1. 外模式/模式映象:保证数据库的逻辑独立性;
2. 模式/内模式映象:保证数据库的物理独立性;
3.两级映象的意义
DBMS的功能:负责对数据库进行统一的管理与控制。
例如:student ( sno, sname, ssex, sage, sdept)
Sc ( sno, cno, grade)
Sc的主码为:(sno,cno);外码为:sno
1.确定局部范围:通常把系统涉及的各个部门或各个主要功能作为局部。
2.确定实体与属性
(1)联系的属性:必须包含相关联的各实体型的主码。
1:1联系:可以是相关联的任一实体型的主码。
1:n联系:必须是n方实体型的主码。
m:n联系:必须是相关联的各实体型的主码之和。
(1)把每个实体型转换为一个关系模式。
(2)1:1联系:可以消化到相关联的任一实体型对应的关系模式中。
班长( XH, XM, NL,BH)
班级(BH,RS)
(3)1:n联系:可以消化到n方实体名对应的关系模式中。
例:一个班级有多名学生,每名学生只能属于一个班级。每一个班级有一名班长,他是学生中的一员。
学生(XH,XM,NL,BH)
班级(BH,RS,XH)
↓ →班长的学号
(4)m:n联系:必须转换为一个关系模式,并且不能消化。
例:
学生(sno,sname, ssex, sage, sdept)
课程(cno, cname,credit)
选修(sno, cno, grade)
(5)多元联系:不能消化
例: 班级( 班名,人数) 学生(学号,姓名,性别,密码,班名) 在学生表中,班名的取值必须是班级表[班名]的值或空值。
设关系R、S的结构完全相同,则:
思考:(R∩S)∪(R-S)=?(结果就是R)
R×S:设R有m个属性,K1个元组;S有n个属性,K2个元组,则R×S含有(m+n)个属性,(K1×K2)个元组。
说明:条件连接:两关系可以没有公共属性,若有公共属性,则新关系含有重复属性。
说明:
设x→y,如果y是x的子集,则该依赖是平凡的。如:
Sno,sname→sno
如果y中至少有一个属性不在x中,则该依赖是非平凡的。如:
Sno,sname→sname,sdept
如果y中没有一个属性在x中,则该依赖为完全非平凡的。
HK | KH | KM | XM | DZ | CJ |
---|---|---|---|---|---|
961 | -C1- | -OS- | -高明- | -D1- | -70- |
962 | -C2- | -DBS- | -高飞- | -D2- | -72- |
962 | -C4- | -AI- | -高飞- | -D2- | -80- |
962 | -C1- | -OS- | -高明- | -D1- | -75- |
963 | C1 | OS | 高明 | D1 | 90 |
答:存在问题
如:新开课程没有学生选修时,新开课程的课程号、课程名插不进去。
如选修某门课的学生毕业了,在删除学生信息的同时,把课程信息也删除掉。
结论:一个好的关系模式应满足:
什么叫范式?
答:指一个关系的非主属性函数依赖于主码的程度。
什么叫关系规范化?
答:指一个关系从低级范式向高级范式的转换过程。
应用:关系规范化理论应用在逻辑结构设计阶段。
1.第一范式(1NF)
2.第二范式(2NF)
① 定义:若关系R∈1NF,且它的每个非主属性都完全依赖于主码,则称R∈2NF。
② 存在问题:
③ 原因:存在非主属性对主码的传递依赖。
④ 解决办法:将R2 一分为二
3.第三范式(3NF)
① 定义:若关系R∈2NF,且它的每个非主属性都不传递依赖于主码,则称R∈3NF。
② 规范化过程
非规范关系
↓使每个属性都不能再分
1NF
↓消去非主属性对主码的部分依赖
2NF
↓消去非主属性对主码的传递依赖
3NF
BCNF:关系模式R中,如每一个决定因素都包含码,则R是BC范式。如果R属于BCNF 那么R一定属于3NF,反之未必。
4.结论
一、两种身份验证模式:
windows
模式:用户只能使用windows
登录名登录SQL
Server
windows
登录名或SQL
Server
登录名登录SQL
Server
二、两种身份验证:
用户登录到SQL Serve
r时,必须使用特定的登录名和密码标识自己。
Windows
身份验证:用户登录到SQL Server
时,使用操作系统当前的登录名和密码。SQL Server
身份验证:用户登录到SQL Server
时,必须显式提供登录名和密码。常用安全性控制方法:用户标识和控制、存取控制、视图、审计、数据加密。
一、索引的概念:
二、索引的类型:
注:一个表只能建立一个聚集索引,但可以建立若干个非聚集索引。
三、创建索引
1.自动创建索引:
一、视图的特点:
select
语句;1.什么叫事务?
答: 事务是用户定义的一组操作序列。
1. 事务的属性
丢失修改
:指事务1
与事务2
从数据库中读入同一数据并修改,事务2的提交结果破坏
事务1提交的结果,导致事务1的修改被丢失。不可重复读
:指事务1读取数据后,事务2执行更新操作,使事务1无法再现前一次读取结果。读脏数据
:指事务1修改某一数据后,事务2读取该数据,事务1由于某种原因被撤销
,这时数据又恢复
到原值,事务2读到的数据与数据库中的数据不一致
,称为“脏”数据。目标:确保DB中的数据一致性。
并发事务正确性的原则 :几个事务的并发执行是正确的,当且仅当其结果与任何一个串行执行的结果相同。
并发控制的方法 DBMS一般采用“封锁”技术,保证并发操作的可串行化。
1. 什么叫封锁?
答:SQL Server
自动强制封锁,并且会将封锁粒度控制在合适的级别,用户不必考虑封锁问题。
2. 封锁类型
不能
读取和修改A。只能读A
,不能修改A
。3. 封锁粒度
封锁对象可以是属性列、元组、关系、整个数据库
。封锁对象的大小称为封锁粒度。封锁粒度越小,并发度越高,但并发控制的开销越大。
4. 封锁协议
事务T在修改数据A之前,必须对其加X锁,直到事务结束才释放。
事务T在读取数据A之前,必须对其加S锁,直到事务结束才释放。 遵循封锁协议,可以解决三种数据不一致性问题:
- 丢失修改
- 不可重复读
- 读“脏”数据
封锁技术可以解决并发操作的不一致性问题,但也带来新的问题,即死锁和活锁。
① 定义:两个事务已经各自锁定一个数据,但是又要访问被对方锁定的数据,造成了循环等待,称为死锁。
避免死锁的方法:
事务可串行化调度:两段锁协议.
只有把抱怨环境的心情化为上进的力量,才是成功的保证。——罗曼·罗兰