




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022/8/131数据库系统概述数据库的基本概念数据库(Database,简称DB)是长期储存在计算机内、有组织的、可共享的大量数据集合数据管理的发展过程人工管理阶段(40年代中-50年代中)文件系统阶段(50年代末-60年代中)数据库系统阶段(60年代末-现在)数据模型数据模型的三要素数据结构 数据操作 数据的约束条件概念模型, E-R 模型实体、联系、属性、码、域、实体型、实体集一对一联系,一对多联系,多对多联系E-R图数据模型(续)主要数据模型非关系模型(层次模型,网状模型)基本层次单元:两个记录以及它们之间的一对多联系 关系模型实体以及联系都用关系(或二维表)表示数据库系统的结构数据
2、库系统三级模式结构内模式、模式、外模式逻辑独立性外模式/模式映射物理独立性模式/内模式映射数据库系统的体系结构单用户结构,主从式结构,分布式结构,客户/服务器结构,浏览器/应用服务器/数据库服务器结构数据库系统的组成数据库数据库管理系统(及其开发工具)应用系统数据库管理员(用户)2022/8/137第二章 关系数据库2022/8/138关系属性,元组候选码,主码,主属性关系模式关系数据库实体完整性主属性不能为空值参照完整性外码或者取空值,或者等于对应关系的主码值用户定义的完整性2022/8/139传统的集合运算并() 、差(-)、交() 、广义笛卡尔积(X )专门的关系投影()、选择() 、连
3、接( )、除( )并():两个关系需有相同的关系模式,并的对象是元组,由两个关系所有元组构成。差(-):同样,两个关系有相同的模式,R和S的差是由属于R但不属于S的元组构成的集合。交():两个关系需有相同的关系模式, R和S的交是由既属于R又属于S的元组构成的集合。2022/8/1310投影():对关系进行垂直分割,消去某些列,并重新安排列的顺序。选择():根据某些条件关系作水平分割,即选择符合条件的元组。连接包括联接和F联接,是选择RS中满足i(r+j)或F条件的元组构成的集合,特别注意等值联接(为等号=)。自然连接(R|X|S):在RS中,选择R和S公共属性值均相等的元组,并去掉RS中重复
4、的公共属性列。如果两个关系没有公共属性,则自然联接就转化为笛卡尔积。 2022/8/1311例 查询信息系(IS系)全体学生(选择) Sdept = IS (Student)或 5 =IS (Student)例 查询学生的姓名和所在系(投影)即求Student关系上学生姓名和所在系两个属性上的投影 Sname,Sdept(Student)或 2,5(Student)2022/8/1312例 查询至少选修了一门其直接先行课为5号课程的课程的学生姓名(连接)。 Sname(Cpno=5(Course SC Student)例 查询选修了全部课程的学生号码。 Sno,Cno(SC)Cno(Cours
5、e) 2022/8/1313第三章 关系数据库标准语言SQL2022/8/1314(1)数据定义:SQL DDL。定义SQL模式,基本表、视图和索引。 (2)数据操纵:SQL DML。包括数据查询和数据更新(增、删、改)。 (3)数据控制:包括对基本表和视图的授权、完整性规则的描述,事务控制等。 SQL数据库的体系结构也是三级结构,但术语与传统关系模型术语不同,在SQL中,关系模式称为“基本表”,存储模式称为“存储文件”,子模式称为“视图”,元组称“行”,属性称“列”。CREATE TABLECREATE TABLE ( , , );:所要定义的基本表的名字:组成该表的各个属性(列):涉及相应
6、属性列的完整性约束条件:涉及一个或多个属性列的完整性约束条件 2022/8/1316SELECT ALL|DISTINCT , FROM , WHERE GROUP BY HAVING ORDER BY ASC|DESC ;2022/8/1317例 查询全体学生的详细记录。SELECT Sno,Sname,Ssex,Sage,Sdept FROM Student; 或SELECT *FROM Student;例 查全体学生的姓名及其出生年份。SELECT Sname,2000-SageFROM Student;2022/8/1318例 查询以DB_开头,且倒数第3个字符为 i的课程的详细情况。
7、 SELECT * FROM Course WHERE Cname LIKE DB_%i_ _ ESCAPE ;例 查询缺少成绩的学生的学号和相应的课程号。 SELECT Sno,Cno FROM SC WHERE Grade IS NULL;2022/8/1319例 查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。SELECT Sname,SsexFROM StudentWHERE Sdept IN ( IS,MA,CS )可改写为:SELECT Sname,SsexFROM StudentWHERE Sdept= IS OR Sdept= MA OR Sdept=
8、 CS ;2022/8/1320例 查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。 SELECT Sno,Grade FROM SC WHERE Cno= 3 ORDER BY Grade DESC; 2022/8/1321例 求各个课程号及相应的选课人数。 SELECT Cno,COUNT(Sno) FROM SC GROUP BY Cno; 例 查询选修了3门以上课程的学生学号。 SELECT Sno FROM SC GROUP BY Sno HAVING COUNT(*) 3; 2022/8/1322例 查询每个学生的学号、姓名、选修的课程名及成绩。 ,Sname,Cn
9、ame,Grade FROM Student,SC,Course WHERE Student.Sno = SC.Sno ;2022/8/1323插入数据INSERTINTO (,)VALUES ( , )例 将一个新学生记录(学号:95020;姓名:陈冬;性别:男;所在系:IS;年龄:18岁)插入到Student表中。 INSERT INTO Student VALUES (95020,陈冬,男,IS,18);2022/8/1324UPDATE SET =,= WHERE ;例 将所有学生的年龄增加1岁。 UPDATE Student SET Sage= Sage+1;修改数据2022/8/1
10、325例 将计算机科学系全体学生的成绩置零。 UPDATE SC SET Grade=0 WHERE CS= (SELETE Sdept FROM Student WHERE Student.Sno = SC.Sno);修改数据2022/8/1326DELETE FROM WHERE ;例 删除学号为95019的学生记录。 DELETE FROM Student WHERE Sno=95019;删除数据2022/8/1327建立视图CREATE VIEW ( ,) AS WITH CHECK OPTION;2022/8/1328例 建立信息系学生的视图,并要求透过该视图进行的更新操作只涉及信息
11、系学生。 CREATE VIEW IS_Student AS SELECT Sno,Sname,Sage FROM Student WHERE Sdept= IS WITH CHECK OPTION;2022/8/1329练习有三个关系模式分别是学生,课程和选修.其关系模式表示为:学生(学号,姓名,性别,年龄,所在系)课程(课程号,课程名,课程学分)选修(学号,课程号,成绩)查询:2022/8/1330答案1)各所在系的平均年龄.SELECT 所在系,AVG(年龄) FROM 学生 GROUP BY 所在系; 2)各门课程的选修人数.SELECT 课程号,COUNT(学号) FROM 选修 G
12、ROUP BY 课程号; 3)年龄最大的学生的学号和姓名.SELECT 学号,姓名 FROM 学生 WHERE 年龄 = (SELECT MAX(年龄) FROM 学生); 2022/8/13314)学生张生的选修课程学分数. SELECT SUM(课程学分) FROM 课程,选修,学生 WHERE 课程.课程号=选修.课程号 AND 学生.学生号=选修.学生号 AND 学生.姓名=“张生”; 2022/8/13325)有不及格(成绩60)课程的学生名单,按所在系,学号,姓名,不及格课程名排列.SELECT 所在系,学生.学号,姓名,课程名 FROM 学生,课程,选修 WHERE 课程.课程号
13、=选修.课程号 AND 学生.学生号=选修.学生号 AND 成绩60;2022/8/1333第四章 数据库安全性2022/8/1334定义:为防止因用户非法使用而造成的数据泄密、更改或破坏。安全性控制方法用户标识与鉴别存取控制视图机制审计数据加密1 授 权GRANT语句的一般格式: GRANT ,. ON TO ,. WITH GRANT OPTION;谁定义?DBA和表的建立者(即表的属主)GRANT功能:将对指定操作对象的指定操作权限授予指定的用户。例题 例1 把查询Student表权限授给用户U1 GRANT SELECT ON TABLE Student TO U1;例题(续) 例5
14、把对表SC的INSERT权限授予U5用户,并允许他再将此权限授予其他用户 GRANT INSERT ON TABLE SC TO U5 WITH GRANT OPTION;SQL收回权限的功能REVOKE语句的一般格式为: REVOKE ,. ON FROM ,.;功能:从指定用户那里收回对指定对象的指定权限例题例7 把用户U4修改学生学号的权限收回REVOKE UPDATE(Sno)ON TABLE Student FROM U4;2022/8/1340第五章 数据库完整性完整性控制机制1.完整性约束条件定义机制2.完整性检查机制3.违约反应 关系系统三类完整性的实现关系数据库系统都提供了定
15、义和检查实体完整性、参照完整性和用户定义的完整性的功能违反实体完整性规则和用户定义的完整性规则的操作: 一般是拒绝执行违反参照完整性的操作:拒绝执行接受这个操作,同时执行一些附加的操作,以保证数据库的状态正确2022/8/1343第六章 关系数据理论2022/8/1344关系数据库设计中的异常问题 (概念)数据冗余、更新异常插入异常、删除异常候选码、主码、外码、非主属性、主属性函数依赖 (概念及理解)非平凡的函数依赖完全函数依赖部分函数依赖传递函数依赖1NF、2NF、3NF的定义2022/8/1345规范化过程非规范化的关系消去重复项,将关系模式分解成若干个规范化的关系模式,并指定一个或若干个
16、属性作为主码。消除决定属性集非码的非平凡函数依赖1NF消除非主属性对码的部分函数依赖2NF消除非主属性对码的传递函数依赖3NF消除主属性对码的部分和传递函数依赖BCNF2022/8/1346消除了部分函数依赖的INF的关系模式,必定是_。 A1NF B2NF C3NF D4NF2022/8/1347练习一设有关系STUDENT(Sno,SNAME,SDEPT,MNAME,CNAME,GRADE),Sno,CNAME为候选码,设关系中有如下函数依赖: Sno,CNAMESNAME,SDEPT,MNAMESnoSNAME,SDEPT,MNAMESno,CNAMEGRADESDEPTMNAME试求下
17、列问题:(1)关系STUDENT属于第几范式? (2)如果关系STUDENT不属于3NF,请将关系STUDENT逐步分解为3NF。 要求:写出达到每一级范式的分解过程,并指明消除什么类型的函数依赖。 2022/8/1348SnoSNAMESDEPTMNAMECNAMEGRADE0501李明经管张军数据库860501李明经管张军C言语900702王浩环科王兰城市学800801陆静大气李翔气象学702022/8/1349(1)关系STUDENT是1NF。(2)首先消除部分函数依赖Sno,CNAMESNAME,SDEPT,MNAME将关系分解为:R1(Sno,SNAME,SDEPT,MNAME)R2
18、(Sno,CNAME,GRADE)在关系R1中存在非主属性对候选码的传递函数依赖SnoSDEPT,SDEPTMNAME,所以以上关系模式还不是3NF,进一步分解R1:R11(Sno,SNAME,SDEPT)R12(SDEPT,MNAME)R11,R12都是3NF。2022/8/1350SnoSNAMESDEPTMNAME0501李明经管张军0501李明经管张军0702王浩环科王兰0801陆静大气李翔SnoCNAMEGRADE0501数据库860501C言语900702城市学800801气象学702022/8/1351SnoSNAMESDEPT0501李明经管0501李明经管0702王浩环科08
19、01陆静大气SDEPTMNAME经管张军经管张军环科王兰大气李翔2022/8/1352练习二设有如下的关系R(1)它为第几范式,为什么?(2)是否存在删除异常(3)将它分解为高一级范式课程名教师名教师地址C1王军D1C2李浩D2C3陈明D3C4李浩D42022/8/1353(1)它是2NF候选码为课程名,而课程名教师名,教师名教师地址,存在非主属性教师地址对候选码课程号的传递依赖,又不存在非主属性对候选码的部分函数依赖(2)存在当删除某门课程时,会删除不该删除的教师的有关信息(3)R1(课程名,教师名) R2 (教师名,教师地址)分解后,若删除课程数据只对R1操作,教师地址信息在R2中仍保留,
20、不会丢失教师信息。2022/8/1354练习三设有关系模式 R(职工名,项目名,工资,部门名,部门经理) 如果规定,每个职工可参加多个项目,各领一份工资;每个项目只属于一个部门管理;每个部门只有一个经理。(1)试写出关系模式R的基本函数依赖和码;(2)说明R不是2NF模式的理由,并把R分解成2NF范式。(3)如果还不是3NF范式,说明理由,并分解成3NF范式2022/8/1355练习四假设某商业集团数据库中有一关系模式R如下: R(商店编号,商品编号,商品库存数量,部门编号,负责人)如果规定: (1)每个商店的每种商品只在该商店的一个部门销售; (2)每个商店的每个部门只有一个负责人; (3)
21、每个商店的每种商品只有一个库存数量。 试回答下列问题: (1)根据上述规定,写出关系模式R的基本函数依赖; (2)找出关系模式R的候选码; (3)试问关系模式R最高已经达到第几范式?为什么? (4)如果R不属于3NF,请将R分解成3NF范式。2022/8/1356第七章 数据库设计2022/8/1357数据库设计的基本步骤需求分析 概念结构设计 逻辑结构设计 数据库物理设计 数据库实施 数据库运行与维护 2022/8/1358需求分析收集资料分析整理数据流程图数据字典2022/8/1359概念结构设计E-R模型的建立分E-R图初步E-R图基本E-R图常用的三种抽象方法:分类聚集概括:超类和子类的概念(学生:本科生、研究生;教员:正副教授的表示)合并初步E-R图分E-R图可能存在冗余的数据和冗余的实体间联系基本E-R图消除不必要的冗余2022/8/1360逻辑结构设计E-R图向关系模型的转换实体的转换一个实体转换为一个关系模式,关系的属性:实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑安全管理培训课件
- 四上数学7.3 平行线、画平行线
- 学好规范字课件
- 护理学基础内容修改
- 排版基础知识
- 化学-四川省九市(广安、广元、眉山、雅安、遂宁、内江、资阳、乐山、自贡)高2022级(2025届)第二次诊断 性考试(九市二诊)试题和答案
- 基础护理静脉输液课件
- 2024-2025学年统编版道德与法治九年级上册第三单元 文明与家园检测卷(含答案)
- 情绪小怪兽手工
- 住宅楼供消防培训资料
- 基于协同过滤的算法研究
- MOOC 大学英语学术阅读-南京大学 中国大学慕课答案
- 《客至》课件 统编版高中语文选择性必修下册
- (高清版)DZT 0216-2020 煤层气储量估算规范
- 《古井贡酒介绍》课件2
- 2023年江苏省交通技师学院招聘教师考试真题及答案
- 银行保安员培训课件
- 40篇短文搞定高中英语3500单词
- 手术患者预防感染
- 人大代表履职基础知识讲座
- 土壤含水量的测定实验报告三篇
评论
0/150
提交评论