数据库复习.docx
《数据库复习.docx》由会员分享,可在线阅读,更多相关《数据库复习.docx(9页珍藏版)》请在冰豆网上搜索。
数据库复习
数据库复习
2、ER(实体-联系)图、EER(增强的实体-联系)图
作图:
强实体:
具有码属性的正规实体类型
弱实体:
不具有码属性的实体类型(关联到来自其他实体类型的特定实体,并与特定实体的一个属性值结合来实现)
通常具有一个部分码(属性下有点划线),通过该属性能够唯一识别属于同一个属主实体的弱实体。
识别联系:
弱实体类型和属主实体类型之间的联系(弱实体类型对于其识别联系总有一个完全参与约束)
关系属性
多值属性:
属性可能含有多个值,如car的color属性
派生属性:
两个或以上属性是相关的,如生日是存储属性,年龄作为它的派生属性。
复合属性:
可以划分成更小的部分。
按照规则和关系模式的转换:
判断关系满足第几范式:
关系名称,主键,外键:
结构约束:
二元联系的基数比:
指定了一个实体能够参与的联系实例的最大个数。
可能基数比1:
1,1:
N,N:
1,M:
N
参与约束:
指定了每个实体所能参与的联系实例的最小个数。
完全参与约束(双线)部分参与约束(单线)
联系属性的转移:
1:
1两端实体都可以
1:
N转移到N端的实体类型
ER图的替代表示法:
(min,max)
0<=min<=maxmax>=1
对于E中每个实体e,任意时刻参与到R中至少min个,之多max个
min=0部分参与单线
min>0完全参与双线
ER示例:
关于EER模型:
超类/子类(一个实体不能仅作为一个子类的成员存在于数据库中,它必须也是超类中的成员,这样的实体可以作为任意多个子类的成员,超类中的每个实体不必是某个子类的成员)
类型继承:
具有自身特定的属性值,同时也具有作为一个超类成员的属性值。
画图:
1.用直线段将定义特化的子类与表示特化的圆圈相连,圆圈与超类相连
2.箭头符号
3.专有属性
4.专有联系类型
EER示例:
图上标记及含义
3、关系数据理论
函数依赖:
数据库中两个属性集之间的约束。
R的属性子集X和Y之间的函数依赖计作X→Y,如果对于r中的任意两个元组t1,t2有t1[x]=t2[x],则必有t1[Y]=t2[Y]。
即一个元组X的分量值唯一决定Y的分量值。
如:
Ssn→Ename
Pnumber→{Pname,Plocation}
{Ssn,Pnumber}→Hours
部分依赖:
函数依赖X→Y是一个部分函数依赖的条件是——存在某个属性A属于X,可以从X中移去,而依赖仍然成立。
完全依赖:
函数依赖X→Y是一个完全函数依赖的条件是——从X中移去任意属性A就会导致依赖不再成立。
传递函数:
函数依赖X→Y是一个传递函数依赖的条件是——属性集Z既不是R的候选键,也不是R中任何键的子集,并且X→Z,Z→Y都成立。
属性闭包XF+:
主属性:
该属性是R的某个候选码的成员
范式的判断:
INF:
不允许多值属性、复合属性或两者的组合。
1NF所允许的属性值只能是单个原子或不可分的值(不允许属性值是一个值集、一个元组集或两者的组合)。
2NF:
基于“完全函数依赖概念”
R中每一个非主属性A完全函数依赖于R的主键(检验函数依赖的左部属性是否是主键的一部分。
如果主键只有单个属性,则不需要检验)
3NF:
基于“传递依赖概念”
满足2NF,且R中不存在非主属性传递依赖于主键。
题型:
给出函数依赖求候选键
判断满足第几范式并给出理由
4、数据库安全
Mysql–hlocalhost–uroot-p管理员权限登录
创建用户
代码:
createuser‘username’@’localhost’identifiedby‘PSW’;
对象权力的管理:
Grant,Revoke运用(授权和取消)
代码:
grantselectonmyfirstdb.studentto'zhangshan'@'localhost';
revokeupdateonmysql.student
->from'zhangshan'@'localhost';
(1)CMD
代码:
Mysql–hlocalhost–uroot-p
Group3:
创建用户
代码:
CreateUser‘username’@’localhost’identifiedby‘PSW’;
Group4:
对象权力的管理:
Grant,Revoke运用
(1)Grantpriv_typeondatabase.tabletouser[withgrantoption];
代码:
grantselectonmyfirstdb.studentto'zhangshan'@'localhost';
(2)Revokepriv_typeondatabase.tablefromuser
代码:
revokeupdateonmysql.student
->from'zhangshan'@'localhost';
Group5:
角色的管理
(1)Createrolemyrole;
代码:
createrolemyrole;
(2)Grantselectonemptomyrole;
代码:
grantselectonstudenttomyrole;
(3)Grantmyroletoxiaozhang;
代码:
grantmyroleto'zhangshan'@'localhost';
(4)Setrolemyrole;
代码:
setrolemyrole;
Group6:
系统权利和综合问题。
假设有一艺术品管理系统,涉及有几个表格:
emp,dept:
创建表格代码:
createtableemp(empidintprimarykey,empnamevarchar(20));
createtabledept(depidintprimarykey,depnamevarchar(20));
(1)设计1个管理员角色(Mrole)和1个雇佣者用户角色,并分别给出合理的对以上2个表格的访问权限
创建角色代码:
createroleMrole,Erole;
设置管理员访问权限代码:
grantselect,insert,delete,update,createonemptoMrole;
grantselect,insert,delete,update,createondepttoMrole;
设置雇佣者访问权限代码:
grantselectonemptoErole;
grantselectondepttoErole;
(2)让这两个角色分别包含至少一个用户(创建用户)
代码:
createuser'zhang'@'localhost'identifiedby'1234';
createuser'zhao'@'localhost'identifiedby'1234';
grantMroletozhang@localhost;
grantEroletozhao@localhost;
(3)验证你的权限设置。
代码:
showgrantsforMrole;
showgrantsforErole;
五、重要概念
数据库:
是一个相关联的数据集合。
在正式的关系模型术语中,行:
元组,列标题:
属性,表:
关系
超键SuperKey:
在关系中能惟一标识元素属性的集称为关系模式的超键。
候选键CandidateKey:
不含有多余属性的超键称为候选键。
也就是说在候选键中再删除属性,就不是键了。
主键PrimaryKey:
用户选作元组标识的候选键为主键。
一般不加说明,键就是主键
外键ForeignKey:
如果模式R中的属性k是其他模式的主键,那么k在模式R中称为外键。
补充:
一般情况下,一个关系模式可以有多个键,在这种情况下,每一个键称为候选键。
将候选键中的一个定义为主键(可以任意选择),候选键的值可以用来标识关系中的元组。
关系数据库完整性
实体完整性约束:
规定主键值不能为NULL
参照完整性约束:
一个关系中的元组参照另一个关系时,它参照的必须是那个关系中存在的元组。
(在两个关系之间定义,该约束用于保持两个关系的元组之间的一致性)
用户定义完整性:
某一具体关系所涉及的数据必须满足的语义要求。