- 1、本文档共122页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库与安全课件数据库安全习题
作业4. 为某百货公司设计一个E-R模型。 百货管辖若干个连锁商店,每家商店经营若干商品, 每家商店有若干职工,但每个职工只能服务于一家商店。实体类型“商店”的属性有:商店编号,店名,店址,店经理。 实体类型“商品”的属性有:商品编号,商品名,单价,产地。实体类型“职工”的属性有:职工编号,职工名,性别,工资。 在联系中应反映出职工参加某商店工作的开始时间,商店销售商品的月销售量。 试画出反映商店、商品、职工实体类型及联系类型的E-R图.并将其转换成数据库关系模式。 实体: 商店(商店编号,店名,店址,店经理) 商品(商品编号,商品名,单价,产地) 职工(职工编号,职工名,性别,工资) 联系: SC (商店—商品之间1:N的联系,联系属性为“职工参加商店工作的开始时间”。 SE (商店—职工之间1:N的联系),联系属性为“月销售量”。 关系模式集: 商店模式(商店编号,店名,店址,店经理) 商品模式(商品编号,商品名,单价,产地, 商店编号,月销售量) 职工模式(职工编号,职工名,性别,工资, 商店编号,开始时间) 11.根据如下所示的调度绘制优先图,并判断是否为冲突可串行化调度?如果是,请给出与S冲突等价的串行调度. 超码:在关系中能唯一标识元组的属性集称为关系模式的超码。如果K是一个超码,那么K的任意超集也是超码,也就是说如果K是超码,那么所有包含K的集合也是超码。 候选码:不含有多余属性的超码称为候选码。 或可以唯一标识一个元组的最少的属性集合。候选码是从超码中选出的,自然地候选码也是一个或多个属性的集合。因为超码的范围太广,很多是我们并不感兴趣即无用处的。所以候选码是最小超码。 主码:用户选作元组标识的一个候选码称为主码 如:选择学号作为查找、插入、删除的操作变量。 例如:假设学生(实体)具有多个属性:学号,身份证号,姓名,性别。因为通过学号可以找到唯一一个学生,所以{学号}是一个超码,同理{学号,身份证号}、{学号,身份证号,姓名}、{学号,身份证号,姓名,性别}、{身份证号}、{身份证号,姓名}、{身份证号,姓名、性别}也是超码.在这里,因为不同的学生可能拥有相同的姓名,所以姓名不可以区别一个学生,既{姓名}不是一个超码,{性别}、{姓名、性别}也不是。 虽然超码可以唯一标识一个实体,但是可能大多数超码中含有多余的属性。所以我们需要候选码。 WHERE子句使用的运算符 常用聚合函数 多表查询 在实际查询应用中,用户所需要的数据并不全部在一个表中,这时就需要多表查询,从多个表中抽取我们所需要的数据信息。 多表查询实际上是通过各个表之间的共同列的相关性(主外键关系)来查询数据的,这是关系数据库查询数据的主要特征。 多表查询首先要用WHERE子句在表之间建立连接关系。 在进行多表查询时,可以遵循以下基本原则: (1)SELECT子句列表中,字段前要加上基表名称; (2)FROM子句应包括所有使用的基表; (3)WHERE子句应在表之间建立连接关系。 各种连接查询 内连接:内连接是一种常用的数据连接查询方式。它使用比较运算符进行多个表之间的比较连接操作。内连接会消除与另一个表的任何不匹配的数据行。 外连接:外连接会返回FROM子句中提到的至少一个表的所有符合查询条件的数据行(包括连接中不匹配的数据行),外连接分为左外连接、右外连接和完全连接。 两个样例表 SELECT * FROM Dept SELECT ClassId,ClassName,DeptId FROM Class 内连接 SELECT DeptName 系部名称, ClassId 班级编码, ClassName 班级名称 FROM Dept INNER JOIN Class ON Class.DeptId=Dept.DeptId 外连接-左外连接 SELECT DeptName 系部名称, ClassId 班级编码, ClassName 班级名称 FROM Dept LEFT OUTER JOIN Class ON Dept.DeptId=Class.DeptId 左边表中行全显示 外连接-右外连接 SELECT DeptName 系部名称, ClassId 班级编码, ClassName 班级名称 FROM Dept RIGHT OUTER JOIN Class ON Dept.DeptId=Class.DeptId 右边表中行全显示 外连接-完全连接 SELECT DeptName 系部名称, ClassId 班级编码, ClassName 班级
文档评论(0)