计算思维导论(第2版)课件:数据库技术基础_第1页
计算思维导论(第2版)课件:数据库技术基础_第2页
计算思维导论(第2版)课件:数据库技术基础_第3页
计算思维导论(第2版)课件:数据库技术基础_第4页
计算思维导论(第2版)课件:数据库技术基础_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库技术基础学生选课系统成绩管理系统学籍管理系统图书管理系统安全门禁系统火车订票系统6.1数据管理技术的发展数据库管理三个阶段人工管理阶段1)数据不保存。2)没有文件的概念。数据由每个程序的程序员自行组织和安排。3)一组数据对应一个程序。可能导致大量的数据重复。4)没有形成完整的数据管理的概念,更没有对数据进行管理的软件系统。程序和数据不具有独立性。文件系统阶段1)数据可以长期保存在外存储器(如磁盘)上,可以由多个程序反复使用。2)数据的物理结构和逻辑结构有了一定的区别,但较简单。3)程序和数据之间有了一定的独立性。4)出现了多种文件存储形式,但文件之间是独立的,它们之间的联系要通过程序去构造,文件的共享性还比较差。2数据库系统阶段1)数据库能够根据不同的需要、不同的方法组织数据,最大限度地提高用户或应用程序访问数据的效率。2)数据库不仅能够保存数据本身,还能保存数据之间的相互联系,保证了对数据修改的一致性。3)在数据库中,相同的数据可以共享。4)数据具有较高的独立性。5)提供了一整套的安全机制来保证数据的安全、可靠。6)可以给数据库中的数据定义一些约束条件来保证数据的正确性(也称完整性)。36.2数据库系统的设计方法基本概念长期保存在计算机外存上的、有结构的、可共享的数据集合DBSDBDBADBMS是位于用户和操作系统之间的软件。实现对数据的存储和管理。由DB、DBMS、应用系统、DBA、用户等构成数据库管理员用户DBADBMSOSDB数据库系统的组成概念模型需求分析32145设计图纸建筑沙盘建筑备料项目施工项目验收6030201060405设计过程需求分析用户需求(需求分析报告——合同)概念设计概念模型(E-R模型——建筑图纸)逻辑设计数据模型(关系模型——建筑沙盘)物理设计DBMS(数据存储和管理——建筑备料)具体实施建立DB、写代码——项目施工运行维护运行、维护——项目验收模型模型是现实世界特征的模拟和抽象。应满足三方面的要求,一是比较真实地模拟现实世界;二是容易为人所理解。三是便于在计算机上实现。数据库设计的两种重要模型概念模型——建筑图纸按用户的观点对数据和信息进行建模,独立于具体的机器和DBMS数据模型——建筑沙盘它是按算机系统的观点对数据建模,主要用于DBMS的实现,数据模型是数据库系统的核心和基础。跟具体的机器和DBMS有关。现实世界信息世界机器世界抽象转换概念模型不依赖于具体机器和DBMS数据模型依赖于具体机器和DBMS321现实世界中客观存在并可以相互区分的事物。如学生、课程、零件等都是实体。实体______45同一类型的实体的集合称为实体集。如全体学生、所有课程、所有零件等实体集:用矩形表示____________________实体的特征。一种实体可以由若干个属性来刻画。如,学号、姓名、性别、年龄等属性:用椭圆表示____________________用于唯一标识一个实体。例如,学生实体可以用学号来唯一标识码______实体集之间的对应关系(一对一、一对多、多对多)联系:用菱形表示__________________概念模型:是对信息世界的建模,有多种表示方法,其中,最常用的是“实体-联系模型”,简称E-R模型。E-R模型用E-R图来描述现实世界的概念模型。在E-R图中,实体用矩形表示,属性用椭圆形表示,并用无向边将其与实体连接起来。学生选修课程mn成绩课程号课程名学分学号姓名…成绩管理系统用一组二维表表示实体及实体间的联系用网状结构表示实体及实体间的联系数据模型层次模型网状模型关系模型123用树型结构表示实体及实体间的联系√关系一个关系对应于一张二维表关系名关系名称,即表名字段表中的一列,即属性字段名字段名称,即属性名域字段的取值范围记录表中的一行,即元组关系模式候选码主码外码(非)主属性关系的描述。表名(字段1,字段2,…,字段n)候选关键字,能唯一识别一条记录(元组)。或称主键,多个候选码中被选中那个或称外键,非本表主码,而是另外表主码主属性:候选码和主码非主属性:不是候选码和主码的属性业主饲养宠物11概念模型举例:一对一E-R图关系数据模型:业主(人员编号,姓名,地址,宠物编号)人员编号姓名宠物编号宠物名地址健康证宠物(宠物编号,宠物名,健康证)为银行设计一个数据库,包括顾客和帐户的信息。顾客信息包括姓名,地址,电话,社会保险号。帐户包括编号,类型(例如存款,支票),和金额。画出一对多E-R模型。顾客—帐户顾客姓名地址电话保险号1m编号类型金额帐户帐户编号类型金额保险号保险号姓名地址电话顾客帐户为银行设计一个数据库,包括顾客和帐户的信息。顾客信息包括姓名,地址,电话,社会保险号。帐户包括编号,类型(例如存款,支票),和金额。画出E-R模型。学生(学号,姓名,性别,...),学号为主键。课程(课程号,课程名称,...),课程号为主键。选修(学号,课程号,成绩),学号和课程号为联合主键。E-R模型矩形、椭圆、菱形、三个联系转换原则一个实体转换为一张表一对一、一对多、多对多两个重要模型概念模型(图纸)数据模型(沙盘)关系模型关系、属性、记录、关系模式、主键、外键规范化设计重要范式34562设计过程需求分析、概念设计、逻辑设计、物理设计、具体实施、运行维护1规范化设计256134关系中的每一个属性必须是不可再分的基本数据项每一列中的数据项具有相同的数据类型每一列的名称在一个关系中是唯一的列次序可以是任意的关系中任意两行不能相同行次序可以是任意的(1)数据冗余(1)数据冗余(2)插入异常(3)删除异常学号姓名性别课程号课程名学分成绩101张三男001思维导论1.598101张三男002数据库280102李四女001思维导论1.592存在问题:(4)其他…(2)插入异常(3)删除异常(4)维护困难有太多相互之间联系的属性保存在同一关系中,这就造成了因一种信息被捆绑在其它信息上而产生的信息之间的相互依附存储的问题——数据依赖出现问题的原因:学号姓名性别课程号课程名学分成绩101张三男001思维导论1.598101张三男002数据库280102李四女001思维导论1.592学号姓名性别101张三男101张三男102李四女课程号课程名学分001思维导论1.5002数据库2001思维导论1.5学号课程号成绩101001981010028010200192学生表课程表选修表数据库的规范化设计A、一定要严格恪守规范化原则B、差不多就得,适可而止就行投票1NF属性不可分学号姓名省市…邮编1张三辽宁铁岭…1234562李四北京北京…9876541简单拆分法优点:简单缺点:不统一、检索困难学号姓名通讯地址省市…邮编1张三辽宁铁岭…1234562李四北京北京…987654学号姓名通讯地址1张三辽宁铁岭…1234562李四北京…9876541NF-属性不可分简单拆分法:将嵌套表摘出2外键法学号姓名1张三2李四地址编号省市…邮编学号1辽宁铁岭…12345612北京北京…9876542优点:不丢失信息缺点:右侧表中,外键学号非必须,如缺省、则看不出隶属关系学号姓名通讯地址省市…邮编1张三辽宁铁岭…1234562李四北京北京…987654外键法:产生新表后,将原表主键作为新表外键3弱实体法学号姓名1张三2李四学号地址编号省市…邮编11辽宁铁岭…12345622北京北京…987654优点:不丢失信息缺点:右侧表中,学号非必须,看不出隶属关系学号姓名通讯地址省市…邮编1张三辽宁铁岭…1234562李四北京北京…987654弱实体法:一个实体对于另一个实体而言,具有很强的依赖关系,利用联合主键表示这种依赖1NF2NF属性不可分非主属性不能部分依赖于主码而应完全依赖于主键学号课程号成绩课程名称学分1198计算思维31285数据库42180计算思维32275数据库4主键:学号+课程号联合主键∵学号+课程号

成绩、课程名称、学分∵课程号

课程名称、学分∴

课程名称、学分依赖于主键中的一部分学号课程号成绩1198128521802275课程号课程名称学分1计算思维32数据库4+赖依数函Y=AX+B←完全依赖非主属性不能部分依赖于主码1NF2NF3NF属性不可分非主属性不能部分依赖于主码非主属性不能传递依赖于主码学号姓名系别办公室地点1张三给排水学C2李四计算机学D主键:学号∵学号

系别,系别

办公室地点∴学号

办公室地点(传递依赖)学号姓名系别1张三给排水2李四计算机系别办公室地点给排水学C计算机学D+↖非传递依赖图非主属性不能传递依赖于主码没有对错之分,只有好坏之分。实践中,严格恪守设计范式——不推荐实践中,完全不考虑设计范式——更不推荐关于范式的思考范式满足不同程度的标准要求称为范式2NF消除非主属性对主键的部分依赖关系的性质数据项不可分、同列的数据类型一致、列名是唯一的、任意两行记录不相同、行列次序可以是任意的1NF数据项不可分,不能有表中有表3NF消除非主属性对主键的传递依赖34562为什么要规范化设计数据冗余、插入异常、删除异常、维护困难1关系代数传统专门传统的关系代数SR职工号姓名101张三102李四职工号姓名101张三103王五职工号姓名101张三102李四103王五R∪S两个相同结构关系的并是由属于R或属于S的记录组成的集合并RSRS两个相同结构关系的交是由属于R且属于S的记录组成的集合R职工号姓名101张三102李四S职工号姓名101张三103王五R∩S职工号姓名101张三交SRRS两个相同结构关系的差是由属于R但不属于S的元素组成的集合差SRRR1−R2职工号姓名102李四R1职工号姓名101张三102李四R2职工号姓名101张三103王五笛卡尔积:设R,S为集合,用R中元素为第一元素,S中元素为第二元素构成有

序对,所有这样的有序对组成的集合叫做R与S的笛卡尔积,记作R×S。R职工号姓名101张三102李四职工号家属号姓名1011张太太1012张小三1021李太太1022李小四SRⅹS职工号姓名职工号家属号姓名101张三1011张太太101张三1012张小三101张三1021李太太101张三1022李小四102李四1011张太太102李四1012张小三102李四1021李太太102李四1022李小四专门的关系代数选择运算:是从关系中查找符合指定条件的记录。

学生学号姓名性别年龄所在系别95001陈一男20计算机95002黄二女19会计95003张三女18计算机95004李四男19传媒学号姓名性别年龄所在系别95002黄二女19会计95003张三女18计算机95004李四男19传媒

查询:年龄小于20的学生投影运算:是从关系中选取若干个属性形成一个新的关系

学生学号姓名性别年龄所在系别95001陈一男20计算机95002黄二女19会计95003张三女18计算机95004李四男19传媒所在系别计算机会计传媒查询:学生表都有哪些系别?连接运算:将两个关系的若干属性拼接成一个新关系。学号姓名性别95001陈一男95002黄二女学号课名成绩95001数学8995001语文7095002数学9095002语文85Student.学号姓名性别Score.学号课名成绩95001陈一男95001数学8995001陈一男95001语文7095002黄二女95002数学9095002黄二女95002语文85

学生学生+选修

选修学生

选修学生.学号=选修.学号查询:选修了课程的学生信息传统的关系代数交集并集差集笛卡尔积专门的关系代数选择投影连接关系的完整性约束域完整性(用户定义的完整性)用户自定义的属性的自身约束实体完整性实体完整性要求每个关系都必须有主码,而主码中的所有属性即主属性不能为空值。参照完整性外键参照主键存在。若属性F是基本关系R的外码,它与基本关系S的主码相对应,则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。完整性约束6.3MySQL数据库管理系统MySQL与NavicatMySQL是一个关系型数据库管理系统。Navicat是一套快速、可靠的数据库管理工具。所以Navicat和MySQL是一个管理和被管理的关系。MySQL数据库默认4个数据库新建MySQL连接MySQL数据库新建连接数据库中对象MySQL数据库的建立与维护排序规则中常见的后缀有三种,ci表示大小写不敏感,cs表示区分大小写,bin是以二进制数据存储,且区分大小写。utf8是针对Unicode的一种可变长度字符编码新建数据库建表举例-表结构学号姓名性别出生日期入学成绩101张三男1998-4-5595102李四女1998-5-10690103王五男1997-6-15620课程号课程名称学分001计算思维导论1.5002数据库技术与应用2学号课程号成绩1010019810100280102001921020028910300170学生选修课程mn成绩课程号课程名称学分学号姓名…建表举例-设计表建表举例-enum类型建表举例-联合主键建表举例-输入数据直接输入导入外部数据(支持的数据类型如右图所示)Navicat创建查询查询创建工具查询创建工具SQL查询语句QSLSQL(StructuredQueryLanguage)语言:结构化查询语言,是操作关系数据库的工业标准语言。该语言是既可以单独执行,直接操作数据库,也可以嵌入到其他语言中执行数据定义语言——————包含用来定义和管理数据库以及库对象的语句。数据操纵语言——————包含了用来查询、添加、修改和删除数据库中数据的语句数据控制语言——————包含了用来设置或更改数据库用户或角色权限等的语句123数据操纵语言数据操纵语言的语句格式SELECT字段列表FROM表名称列表[WHERE条件][GROUPBY分组字段名][HAVING条件表达式][ORDERBY排序字段[ASC|DESC]]SQL语句关系操作操作描述SELECT子句投影选择满足条件的列FROM子句连接单表或多表等值连接[WHERE子句]选择选择满足条件的行[GROUPBY]分组按指定条件分组汇总[HAVING

]筛选按指定条件对分组数据进行筛选[ORDERBY]排序按指定条件排序数据操纵语言的语句格式例1:查询“学生”表的所有学生的所有信息

SELECT*FROM学生例2:查询“学生”表的前3条条记录SELECT*FROMstudentORDERBY学号LIMIT3;例3:从“学生”表查询一共有哪些班级。SELECTDISTINCT班级FROMstudent;SELECT例4:查询“学生”表中的所有男生信息

SELECT*FROM学生

WHERE性别="男"SELECT例5:查询“学生”表中所有姓赵的学生记录。 SELECT* FROMstudent WHERE姓名LIKE'赵%';例6:查询2004年12月1日以后出生的学生姓名和出生日期。SELECT* FROMstudent WHERE出生日期>'2004-12-01';例7:查询“学生”表的所有非团员的男生信息。

SELECT* FROMstudent WHERENOT是否团员AND性别='男'SELECT例8:查询成绩在为良(80~89分之间)的学生的学号和成绩。 SELECT学号,成绩 FROMsc WHERE成绩>=80and成绩<=89;SELECT或:WHERE成绩BETWEEN80AND89;例9:查询非建筑学院的学生的姓名和性别。 SELECT姓名,性别 FROMstudent WHERE班级NOTLIKE'建%';例10:查询“学生”表的每个人的姓名和出生日期,并按出生日期从前到后排序。

SELECT姓名,出生日期FROMstudentORDERBY出生日期ASC;ASC:按升序排序DESC:按降序排序SELECT例11:查询全体学生的姓名和年龄。SELECT姓名,YEAR(CURRENT_DATE())-YEAR(出生日期)AS年龄FROMstudent;SELECT例12:查询选修了3门课程以上的学生的学号和平均成绩(平均成绩保留1位小数)。SELECT学号,ROUND(AVG(成绩),1)AS平均成绩FROMscGROUPBY学号HAVINGCOUNT(*)>=3;

group

by

就是依据by

后面的规则对数据分组,所谓的分组就是将数据集划分成若干个小组,针对若干个小组做处理。where子句和having子句的区别:where不能放在groupby后面having是跟groupby连在一起用的,放在groupby后面,此时的作用相当于wherewhere后面的条件中不能有聚集函数,比如SUM(),AVG()等,而having可以。例13:查询选修了“程序设计语言”课程的学生的学号、课程号、成绩。SELECTSELECTsc.学号,course.课程号,sc.成绩FROMcourse,scWHEREcourse.课程号=sc.课程号ANDcourse.课程名='程序设计语言';多表查询或者,例12:查询所有学生的学号、姓名、所选课程的名称及课程成绩。

SELECT学生.学号,姓名,课程名称,成绩

FROM学生,课程,选修

WHERE学生.学号=选修.学号AND

选修.课程号=课程.课程号学生(学号

,姓名,性别,出生日期,入学成绩)课程(课程号

,课程名称,学分)选修(学号,课程号,成绩)增删改语句INSERT语句用于向表中插入新的记录格式:

INSERT

INTO

表名[(列名1,列名2,...,列名n)]

VALUES(值1,值2,...,值n)例1:向“课程”表添加一门新的课程,课程号为“009”,课程名称为“结构力学”,学分为3。INSE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论