资源描述
单击此处母版标题样式,单击此处编辑母版文本样式,第二级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,第一章,数据库基础知识,项目知识要点与目标,项目知识要点,知识能力目标,学时,任务,1,了解数据库的基础知识,1,数据与数据库,2,数据库技术的发展,3,数据库管理系统(,DBMS,),4,数据库系统的组成,5,结构化查询语言,SQL,6,常见的关系型数据库管理系统,任务,2,安装与配置,MySQL,数据库,1 MySQL,服务器安装与配置,2,连接与断开服务器,【典型工作任务】,安装与配置,MySQL,数据库,【技能要求】:,1 MySQL,的安装和配置,2 MySQL,运行环境测试,【知识要求】:,1,数据库管理系统组成,2,服务器连接、启动和运行,2,项目实训,安装,MySQL,数据库,2,数据库基础知识,数据,狭义:数值数据,广义:文字、声音、图形等,一切能被计算机接收且能被处理的符号,大量、海量,数据库,存储大量数据,方便检索和访问,保持数据信息的一致、完整,共享和安全,通过组合分析,产生新的有用信息,特,点,数据库管理系统,(软件),管理大量的、持久的、可靠的、共享的数据的工具,数据管理技术的发展阶段,人工管理阶段,-,文件系统阶段,-,数据库管理,数据管理技术的发展阶段,-,没有专用的软件对数据进行管理。,-,数据的组织方式必须由程序员自行设计与安排。,-,只有程序的概念而没有文件的概念、数据面向应用,也就是一组数据只能对应一个程序。,数据管理技术的发展阶段,文件系统的三个缺陷:,数据冗余性、数据不一致性、数据联系弱。,数据管理技术的发展阶段,数据库,订单,客户,产品,产品数据库,表,数据库就是“数据”的“仓库”,数据库由表、关系以及操作对象组成,数据存放在表中,数 据 表,存储过程,视 图,.,所谓数据库,(,D,ata,b,ase,DB),,是将数据按一定的数据模型组织、描述和存储,具有较小的冗余度,较高的数据独立性和易扩展性,并可为各种用户共享的数据集合,。,列,行,(,记录,),关系型数据库,关系型数据库,关系模型使用的存储结构是多个二维表格,表中每一行称为一条记录,用来描述一个对象的信息;每一列称为一个字段,用来描述对象的一个属性。数据表于数据库之间存在相应的关联,这些关联将用来查询相关的数据。,数据库管理系统,马兰,A004,杨可,A003,刘开泰,B008,李新爱,B007,数据库,检索数据,插入数据,更新数据,删除数据,数据库管理系统,-DBMS,数据库管理系统(,DBMS-,D,ata,B,ase,M,anagement,S,ystem,)对收集到的大量数据进行整理、加工、归并、分类、计算、存储等处理,产生新的数据,以便反映事物或现象的本质和特征及其内在联系。,数据库系统的基本概念,数据库服务器,响应和提供数据,应用程序,客户端,操作和查询,数 据 库,应用程序,作用:响应操作并显示结果、向数据库请求数据,要求:美观、操作简单方便,数据库,作用:存储数据、检索数据、生成新的数据,要求:统一、安全、性能等,数据库应用系统,数据库系统,数据库系统,(Database System,DBS),一般由数据库、数据库管理系统,(,及其开发工具,),、应用系统、数据库管理员和用户结构组成,结构化查询语言SQL,2,结构化查询语言SQL(Structured Query Language),SQL语言是用于关系数据库查询的结构化语言,最早由Boyce和Chambedin在1974年提出,称为SEQUEL语言。1976年,IBM公司的San Jose研究所在研制关系数据库管理系统System R时修改为SEQUEL2,即目前的SQL语言。,SQL语言集数据查询(data query)、数据操纵(data manipulation)、数据定义(data definition)和数据控制(data control)功能于一体,充分体现了关系数据语言的特点和优点。,主要特点包括:,(1)综合统一,(2)高度非过程化,(3)面向集合的操作方式,(4)以同一种语法结构提供两种使用方式,(5)语言简洁,易学易用,大数据时代的数据库管理系统,SQL-,关系型数据库管理系统(,RDBMS,),不同的角色(开发者,用户,数据库管理员)使用相同的语言。,不同的,RDBMS,使用统一标准的语言。,SQL,使用一种高级的非结构化查询语言。,坚持,ACID,准则,(,原子性,一致性,隔离性,持久性,),NoSQL-,非关系性数据库,采用,Key-value,方式存储数据。采取最终一致性原则,更加适合互联网数据,但这也可能导致数据丢失。,NewSQL-,结合,SQL,和,NoSQL,将,SQL,的,ACID,保证与,NoSQL,的可扩展性和高性能相结合,目前大多数,NewSQL,数据库都是专有软件或仅适用于特定场景,这显然限制了新技术的普及和应用。,数据库产品分类图,数据库流行排行榜,Oracle,、,MySQL,、,SQL Server,排前三位,其流行度远远超过其他数据库。在非关系型数据库中,比较流行的有,MongoDB,,,Elasticsearch,,,Redis,等。,时下流行的,DBMS,简介,Oracle,Oracle公司的产品,世界上最好的数据库系统,“,关系-对象,”,型数据库,支持,70,多种操作系统,配置、管理和维护复杂,主要满足对银行、金融、保险等企业、事业开发大型数据库需求,MySQL,瑞典MySQLAB公司开发,现在MySQL并入了Oracle旗下,体积小、速度快、成本低、开放源码,广泛地应用在Internet上的中小型网站中,SQL Server,Microsoft,公司的产品,针对不同用户群体的多个版本,要求在Windows操作系统平台上运行,易用性好,1.,-,下载,MySQL,社区版,任务二,MySQL,的安装与配置,2.MySQL,社区版是免费的,有,MSI,和,zip,两种安装方式,下载前先选择安装平台(,windows,)和安装文件方式(,MSI,或,Zip),MySQL,的安装,3.,安装向导,-,产品类型选择:,Server only,(服务器),MySQL,的安装,4.,配置向导,-,类型和网络配置:,Server Computer,MySQL,的安装,5.,配置向导,-,账号和角色配置:为,MySQL,的超级用户,root,设置密码,MySQL,的安装,连接服务器,“开始”“程序”,MySQL,“,MySQL Server 8.0,”,“,MySQL 8.0 Command Line Client,”,在客户端窗口输入安装时为,root,用户设置的密码,窗口中出现,MySQL,命令行提示符“,mysql,“,安装成功,MySQL,图形化管理工具,Navicat for MySQL,是一个桌面版,MySQL,数据库管理和开发工具,易学易用,很受大家的欢迎。本课程将以,Navicat for MySQL,为例介绍,MySQL,数据库管理工具的使用。,第,二,章,数据库设计,项目知识要点与目标,项目知识要点,知识能力目标,学时,任务1 设计数据库关系模型,1 数据模型,2 概念模型,3 E-R图的设计,4 数据库关系模型的建立,任务2 数据库设计规范化,1 关系型数据库范式理论,2 数据库规范化实例,3 综合实例 PetStore数据库的设计,【典型工作任务】,对数据库系统进行分析,建立E-R图,关系模型,【技能要求】,1,设计数据库关系模型,2,数据库规范化,【知识要求技能训练】,1,掌握数据库设计的相关知识,2,运用E-R图等工具设计数据库,4,项目实训,创建,“图书,管理系统,”,的数据模型,2,修建茅屋需要设计吗?,修建大厦需要设计吗?,结论:当数据库比较复杂时我们需要设计数据库,为什么需要设计数据库,数据库设计就是将数据库中的数据对象以及这些数据对象之间关系进行规划和结构化的过程,任务一,设计数据库关系模型,设计数据库关系模型,概念模型,:,把现实世界转换为信息世界的模型,E-R,模型,实施模型,:,把信息世界转化为数据世界使用的模型,关系模型,现实世界,建模,信息世界,模型转换,规范化,数据库世界,数 据 库,数 据 库,事物类,事物,性质,实体集,实体,属性,文件,记录,数据项,实体模型,概念模型,数据模型,实体模型,现实世界客观存在的、可以被描述事物都是“实体”,层次模型,按层次模型组织的数据示例,网状模型,按网状模型组织的数据示例,关系模型,按关系模型组织的数据示例,学号,总学分,专业名,出生日期,性别,姓名,学生,课程,课程号,学分,学时,开课学期,类别,课程名,选课,成绩,实体名,联系名,属性名,属性名,或,E-R,图的组成要素及其画法,(,5,)映射基数,1:1,1:n,m:n,(,1,)实体,(,2,)联系,(,3,)属性,(,4,)关键字,m,n,概念模型,-E-R,图,建模:把现实世界转换为信息世界的模型,E-R,模型,实体间不同联系情况的E-R图表示法,一对一,(1:1),联系:,1,院长,学院,管理,1,姓名,年龄,学历,编号,学院,编号,学院,名称,任职时间,例:某学校有若干个学院,每个学院只有一个院长。,院长和学院之间是一对一的关系。,主任与系之间的一对一的联系,一对多(,1,:,m,)的联系,例:在某仓库管理系统中,有两个实体集:仓库和商品。仓库用来存放商品,且规定一类商品只能存放在一个仓库中,一个仓库可以存放多件商品。,仓库和商品是一对多(,1,:,m,)的联系,在存放联系中要反映出存放商品的数量。,1,仓库,商品,存放,n,地点,面积,仓库号,商品号,价格,数量,商品名,实体间不同联系情况的E-R图表示法,仓库和商品之间一对多的联系,多对多(,m:n),联系:,假设在某教务管理系统中,一个教师可以上多门课,一门课也可以由多个老师去上。,教师和课程之间是多对多(,m:n),联系,在,“,讲授,”,联系中应能反映出教师的授课质量。,m,教师,课程,讲授,n,教师名,职称,教师号,课程号,班级,质量,课程名,实体间不同联系情况的E-R图表示法,教师和课程之间的多对多联系,E-R图设计实例,【例】网络图书销售系统处理会员图书销售。简化的业务处理过程为:网络销售的图书信息包括:图书编号,图书类别,书名,作者,出版社,出版时间,单价,数量,折扣,封面图片等;用户需要购买图书必须先注册为会员,提供身份证号,会员姓名,密码,性别,联系电话,注册时间等信息;系统根据会员的购买订单形成销售信息,包括订单号,身份证号,图书编号,订购册数,订购时间,是否发货,是否收货,是否结清。,请画出网络图书销售数据库,E-R,图。,E-R图设计步骤,1.,确定实体集:网络图书销售系统中有两个实体集:,图书和会员,2.,确定实体集属性及主码:,(,1,)实体集,会员,属性有:,身份证号,会员姓名,性别,联系电话,注册时间,密码。,会员实体集中可用身份证号来唯一标识各会员,所以主码为身份证号。,(,2,)实体集,图书,属性有:,图书编号,图书类别,书名,作者,出版社,出版时间,单价,数量,折扣,封面图片。,图书实体集中可用图书编号来唯一标识图书,所以主码为图书编号。,3.,确定实体集之间的联系:图书销售给会员时图书与会员建立关联,联系,“,销售,”,的属性有:订购册数,订购时间,是否发货,是否收货,是否结清。,为了更方便标识销售记录,可添加订单号作为该联系的主码。,4.,确定联系关系:,因为一个会员可以购买多种图书,一种图书可销售各多个会员,所以这是一种多对多(,m:n,)的联系。,根据以上分析画出的网络图书销售数据库,E-R,图,网络图书销售数据库E-R图,E,-,R,图设计步骤,对于复杂的系统,,E-R,图设计通常都应经过以下两个阶段:,(,1,)针对每一用户画出该用户信息的局部,E,R,图,确定该用户视图的实体、属性和联系。需注意的是:能作为属性的就不要作为实体,这有利于,E,R,图的简化。,(,2,)综合局部,E,R,图,生成总体,E,R,图。在综合过程中,同名实体只能出现一次,还要去掉不必要的联系,以便消除冗余。一般来说,从总体,E,R,图必须能导出原来的所有局部视图,包括实体、属性和联系。,复杂E-R图设计实例,【例】工厂物流管理中的涉及雇员、部门、供应商、原材料、成品和仓库等实体,并且存在以下关联:,(,1,)一个雇员只能在一个部门工作,一个部门可以有多个雇员。,(,2,)每一个部门可以生产多种成品,但一种成品只能由一个部门生产。,(,3,)一个供应商可以供应多种原材料,一种原材料也可以由多个供应商供货。,(,4,)购买的原材料放在仓库中,成品也放在仓库中。一个仓库可以存放多种产品,一种产品也可以存放在不同的仓库中。,(,5,)各部门从仓库中提取原料,并将成品放在仓库中。一个仓库可以存放多个部门的产品,一个部门的产品也可以存放在不同的仓库中。,画出简单的工厂物流管理系统,E-R,模型。,局部E-R图,1,、找出工厂物流管理系统实体集:分别是雇员、部门、成品、供应商、原材料和仓库。,2.,从生产的角度,根据(,1,)和(,2,)画出雇员、部门和成品三个实体间的初步联系,3.,从供应的角度,根据(,3,)画出供应商和原材料两个实体间的初步联系,,4.,为是问题简化,实体的属性先不画出。,全局E-R图,5.,从仓储的角度,根据(,4,)和(,5,)画出仓库与各实体之间的联系,最终得到工厂物流管理系统的,E-R,图,6.,实体联系中有多个数量属性,分别用数量,1,,数量,2,以区分,课堂练习,学校有若干个学院,每个学院有各自的编号、名称和院长;每个学院有若干名教师和学生,教师有教师号、教师名和职称属性,每个教师可以担任若干门课程,一门课程只能由一位教师讲授,课程有课程号、课程名和学分,并参加多项项目,一个项目有多人合作,且责任轻重有个排名,项目有项目号、名称和负责人;学生有学号、姓名、年龄、性别,每个学生可以同时选修多门课程,选修有分数。,请设计此学校的教学管理的,E-R,模型,课堂练习分析,学校有若干个,学院,,每个学院有各自的,编号、名称和院长,;每个学院有若干名,教师,和,学生,,教师有,教师号、教师名和职称,属性,每个教师可以担任若干门,课程,,一门课程只能由一位教师讲授,课程有,课程号、课程名和学分,,并参加多项,项目,,一个项目有多人合作,且责任轻重有个,排名,,项目有,项目号、名称和负责人,;学生有,学号、姓名、年龄、性别,,每个学生可以同时选修多门课程,选修有,分数,。,实体集:,学院、教师,、,学生、课程、项目,E-R图设计中常见问题分析,【例】画出出版社和图书的,E-R,图。,1.,实体与联系分析:一个出版社可以出版多本图书,一本图书只能由一个出版社出版,出版社和图书之间就是一对多的关系。,2.,属性与主码:出版社实体有社名、地址、邮编、网址、联系电话等属性。为了建立出版社与图书实体一对多的联系,还应该有一个出版社代码来唯一标识出版社;,图书实体有出版社、书名、作者、价格等属性。为了唯一标识图书,还应设置书号属性。,根据以上分析,画出出版社与图书的,E-R,图如下:,图书出版E-R图问题思考(1),1、怎么标识书号-属性内容如何选取?,为了管理方便,国际上规定:全世界的每本书都应该有唯一的编号,这个号码叫做ISBN号,俗称书号。因此,用ISBN书号作为图书的唯一标识似乎是非常合理的。,但是,有时候出版社也出版一些没有书号的资料。所以,在设计实际数据库系统的时候,可也以根据实际情况不以ISBN书号唯一标识图书实体,而自己定义唯一标识图书实体的属性。,在现实世界中,类似这样的问题有很多,通常需要为实体集定义额外的关键字段。,图书出版E-R图问题思考(2),2、有些属性的值如果有多个,该怎么办?,如出版社实体应该有电话属性。但一个出版社一般不止一部电话,怎么处理?,一种方法是仍使用一个电话属性,只记下一部或几部甚至全部的电话号码即可,这种方法适合于小单位。,第二种方法是将电话属性独立出来,建立一个新的电话实体,通过出版社代码属性,建立和出版社的一对多联系,,图书出版E-R图问题思考(3),3、一个实体究竟有多少属性?,实体的属性可以说是无穷无尽,到底应提取哪些属性,要结合具体应用系统考虑。,比如,图书的一般属性有书号、社代码、书名、作者、价格、版次等,如果开发的是书店管理系统,这些属性一般够用了,但如果要开发印刷厂管理系统,还需要增加图书大小(32开还是16开,或具体数字)、印刷纸张规格(60克纸还是70克纸,书写纸还是双面胶)、是否彩印、彩印规格、印刷数量、交货日期等属性。,所以,提取一个实体的属性也要具体问题具体分析。,通过出版社,图书的例子引出的三个问题,说明建立在现实世界基础上的E-R模型并不只有唯一答案。面向不同的应用、使用不同的方法,可以设计出不同的E-R模型。,ER模型到关系模型的转换,把,E-R,图转换为关系模型可遵循如下原则,:,(,1,)对于,E,R,图中每个实体集,都应转换为一个关系,该关系应包括对应实体的全部属性,并应根据关系所表达的语义确定哪个属性或哪几个属性组作为,“,主关键字,”,,主关键字用来标识实体。,(,2,)对于,E,R,图中的联系,情况比较复杂,要根据实体联系方式的不同,采取不同的手段加以实现。,(1:1)联系的E-R图转换,(1)联系单独对应一关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。,BJ(,班级编号,,院系,专业名,人数),BZ(,学号,,姓名),SY(,学号,,班级编号),(2)联系不单独对应一关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。,BJ(,班级编号,,院系,专业名,人数),BZ(,学号,,姓名,,班级编号,),或者,BJ(,班级编号,,院系,专业名,人数,,学号,),BZ(,学号,,姓名),(1:n)联系的E-R图转换,(1)联系单独对应一关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。,BJ(,班级编号,,院系,专业名,人数),XS(,学号,,姓名,专业名,性别,出生时间,总学分,备注),SY(,学号,,班级编号),(2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码,BJ(,班级编号,,院系,专业名,人数),XS(,学号,,姓名,专业名,性别,出生时间,总学分,备注,,班级编号,),(,m:n)联系的E-R图转换,对于(m:n)的联系,单独对应一关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。,XS(,学号,,姓名,专业名,性别,出生时间,总学分,备注),KC(,课程号,,课程名称,类别,开课学期,学时,学分),XS_KC(,学号,,,课程号,,成绩),假设,A,实体集与,B,实体集是,1:1,的联系,联系的转换有三种方法:,把,A,实体集的主关键字加入到,B,实体集对应的关系中,如果联系有属性也一并加入;,把,B,实体集的主关键字加入到,A,实体集对应的关系中,如果联系有属性也一并加入;,建立第三个关系,关系中包含两个实体集的主关键字,如果联系有属性也一并加入。,两实体集间,1:n,联系,两实体集间,1:n,联系,可将,“,一方,”,实体的主关键字纳入,“,n,方,”,实体集对应的关系中作为,“,外部关键字,”,,同时把联系的属性也一并纳入,“,n,方,”,对应的关系中。,两实体集间,m:n,联系,对于两实体集间,m:n,联系,必须对,“,联系,”,单独建立一个关系,用来联系双方实体集。该关系的属性中至少要包括被它所联系的双方实体集的,“,主关键字,”,,并且如果联系有属性,也要归入这个关系中。,E-R模型到关系模型的转换总结,数据库设计规范化,仅有好的RDBMS并不足以避免数据冗余,必须在数据库的设计中创建好的表结构,关系数据库范式理论是在数据库设计过程中将要依据的准则,数据库结构必须要满足这些准则,才能确保数据的准确性和可靠性。这些准则则被称为规范化形式,即,范式,。,Dr E.F.codd 最初定义了规范化的三个级别,范式是具有最小冗余的表结构。这些范式是:,第一范式(1st NF First Normal Fromate),第二范式(2nd NFSecond Normal Fromate),第三范式(3rd NF Third Normal Fromate),第一范式(1st NF),BuyerID,Country,City,1,3,4,2,中国,英国,日本,美国,北京,伦敦,东京,纽约,BuyerID,Address,1,2,3,4,中国北京市,美国纽约市,英国伦敦,日本东京市,第一范式的目标是确保每列的原子性,如果每列都是不可再分的最小数据单元(也称为最小的原子单元),则满足第一范式(,1NF,),第二范式(2nd NF),如果一个关系满足,1NF,,并且除了主键以外的其他列,都依赖与该主键,则满足第二范式(,2NF,),第二范式要求每个表只描述一件事情,Orders,字段,例子,订单编号,产品编号,订购日期,产品名称,001,A001,2000-2-3,洗衣机,规格,Orders,字段,例子,订单编号,订购日期,001,2000-2-3,Products,字段,例子,产品编号,产品名称,A001,洗衣机,规格,第三范式(3rd NF),如果一个关系满足,2NF,,并且除了主键以外的其他列都不传递依赖于主键列,则满足第三范式(,3NF,),Orders,字段,例子,订单编号,产品编号,单价,001,AB001,30,数量,50,金额,Orders,字段,例子,订单编号,产品编号,单价,001,AB001,30,数量,50,一张表:,6*10*5000=30,,,0000,个数据,三张表:学生表:,3*5000=1500 0,课程表:,2*10=20,成绩表:,3*10*5000=150000,三张表合计:,15000+20+150000=16,,,5020,A,与,B,方案数据差,:30,0000-16,5020 =13,4980,以下是两个同学设计的学生成绩系统的表格,,A,同学设计成表格,1,的形式,,B,同学设计了表格,2,、,3,、,4,三张表格,请问:,A,、,B,同学哪个的方案更合理?,假设:,设计的表格需要记录,5000,个同学的,10,门课成绩,用,A,同学设计表格要填写多少个数据?用,B,同学设计的表格要填写多少个数据?,根据计算结果,哪种设计更节省空间。,学号,姓名,年龄,课程名称,成绩,学分,010101,张三,20,计算机基础,80,2,010102,李四,20,计算机基础,85,2,010101,张三,20,英语,75,3,010102,李四,20,英语,85,3,学号,姓名,年龄,010101,张三,20,010102,李四,20,课程名称,学分,计算机基础,2,英语,3,学号,课程名称,成绩,010101,计算机基础,80,010102,计算机基础,85,010101,英语,75,010102,英语,85,A,同学设计表格,B,同学设计表格,课堂练习分析,规范化实例分析(1),假设某建筑公司要设计一个数据库。公司的业务规则概括说明如下:,公司承担多个工程项目,每一项工程有:工程号、工程名称、施工人员等,公司有多名职工,每一名职工有:职工号、姓名、性别、职务(工程师、技术员)等,公司按照工时和小时工资率支付工资,小时工资率由职工的职务决定(例如,技术员的小时工资率与工程师不同),公司定期制定一个工资报表,如图-1所示,规范化实例分析(2),工程号,工程名称,职工号,姓名,职务,小时工资率,工时,实发工资,A1,花园大厦,1001,齐光明,工程师,65,13,845.00,1002,李思岐,技术员,60,16,960.00,1004,葛宇宏,律师,60,19,1140.00,小计,2945.00,A2,立交桥,1001,齐光明,工程师,65,15,975.00,1003,鞠明亮,工人,55,17,935.00,小计,1910.00,A3,临江饭店,1002,李思岐,技术员,60,18,1080.00,1004,葛宇洪,技术员,60,14,840.00,小计,1920.00,图,-1,某公司的工资表,规范化实例分析(3),工程号,工程名称,职工号,姓名,职务,小时工资率,工时,A1,花园大厦,1001,齐光明,工程师,65,13,A1,花园大厦,1002,李思岐,技术员,60,16,A2,立交桥,1001,齐光明,工程师,65,15,A2,立交桥,1003,鞠明亮,工人,55,17,A3,临江饭店,1002,李思岐,技术员,60,18,A3,临江饭店,1004,葛宇洪,技术员,60,14,图,-2,某公司的项目工时表,规范化实例分析(4),表中包含大量的冗余,可能会导致数据异常:,更新异常,例如,修改职工号,=1001,的职务,则必须修改所有职工号,=1001,的行,添加异常,若要增加一个新的职工时,首先必须给这名职工分配一个工程。或者为了添加一名新职工的数据,先给这名职工分配一个虚拟的工程。(因为主关键字不能为空),删除异常,例如,,1001,号职工要辞职,则必须删除所有职工号,1001,的数据行。这样的删除操作,很可能丢失了其它有用的数据,采用这种方法设计表的结构,虽然很容易产生工资报表,但是每当一名职工分配一个工程时,都要重复输入大量的数据。这种重复的输入操作,很可能导致数据的不一致性。,一张表描述了多件事情,如图-,3,所示。,规范化实例分析(5),工程号,工程名称,职工号,姓名,职务,小时工资率,工时,图-3 函数依赖图,工程信息,员工信息,项目工时信息,应用第二范式规范化,工程号,工程名称,职工号,姓名,职务,小时工资率,工程号,职工号,工时,图-4 应用第二范式,工程表,员工表,项目工时表,满足第三范式吗?,应用第三范式规范化,工程号,工程名称,职工号,姓名,职务,职务,小时工资率,工程号,职工号,工时,工程表,员工表,职务表,工程表,课堂练习,S公司商品销售管理系统中员工表如下:,Employees,(员工号,姓名,性别,出生年月,聘任日期,工资,奖金,所在部门和部门主管),其中奖金按工资*30%+工作年限*50计算而得。,请对员工表进行规范化。,规范化和性能的关系,为满足某种商业目标,数据库性能比规范化数据库更重要,通过在给定的表中添加额外的字段,以大量减少需要从中搜索信息所需的时间,通过在给定的表中插入计算列(如成绩总分),以方便查询,进行规范化的同时,还需要综合考虑数据库的性能,。,总结,在需求分析阶段,设计数据库的一般步骤为:,收集信息,标识对象,标识每个对象的属性,标识对象之间的关系,在概要设计阶段和详细设计阶段,设计数据库的步骤为:,绘制,E-R,图,将,E-R,图转换为表格,应用三大范式规范化表格,为了设计结构良好的数据库,需要遵守一些专门的规则,称为数据库的设计范式。,第一范式(,1NF,)的目标:确保每列的原子性。,第二范式(,2NF,)的目标:确保表中的每列,都和主键相关。,第三范式(,3NF,)的目标:确保每列都和主键列直接相关,而不是间接相关。,第三章,数据定义,项目知识要点,知识能力目标,学时,任务,1,创建与管理数据库,1,创建数据库,2,管理数据库,任务,2,创建与管理数据库表,1,创建数据库表,2,管理数据库表,任务,3,数据完整性约束,1,主键约束,2,替代键约束,3,参照完整性约束,4 CHECK,完整性约束,【典型工作任务】:,学会创建与管理数据库和表,【技能要求】:,1,掌握创建与管理数据库的方法,2,掌握创建与管理数据库表的方法,3,掌握,建立数据完整性约束的方法,【知识要求】:,1,数据库和数据库表的结构,2,数据完整性约束,3,数据库及表操作的,SQL,语句,4,项目实训,创建,“图书管理系统”,数据库,4,项目知识要点与目标,E-R图设计实例,【例,1.1】,网络图书销售系统处理会员图书销售。简化的业务处理过程为:网络销售的图书信息包括:图书编号,图书类别,书名,作者,出版社,出版时间,单价,数量,折扣,封面图片等;用户需要购买图书必须先注册为会员,提供身份证号,会员姓名,密码,性别,联系电话,注册时间等信息;系统根据会员的购买订单形成销售信息,包括订单号,身份证号,图书编号,订购册数,订购时间,是否发货,是否收货,是否结清。,请画出网络图书销售数据库,E-R,图,并将其转化为关系模型,网络图书销售数据库E-R图,网络图书销售数据库E-R图,关系模型:,Bookstore,(数据库),1,、,book(,图书编号,图书类别,书名,作者,出版社,出版时间,单价,数量,折扣,封面图片,),2,、,members(,用户号,姓名,性别,密码,联系电话,注册时间,),3,、,sell(,订单号,用户号,图书编号,订购册数,订购单价,订购时间,是否发货,是否收货,是否结清,),网络图书销售数据库E-R图,1.book,表,2.,members,表,3.,sell,表,MySQL,数据库模型,在数据库服务器中可以存储多个数据库文件,所以建立数据库时要设定数据库的文件名,每个数据库有惟一的数据库文件名作为与其它数据库区别的标识。,数据库文件:数据库是由相关数据表组成,一个数据库包括多个数据表。数据库文件用于记录数据库中数据表构成的信息。,数据库只能由得到授权的用户访问,这样保证了数据库的安全。,成绩数据库,xscj,网络图书库,bookstore,雇员管理库,YGGL,.,库,MySQL,服务器,数据库,数据库和表,数据库可以看成是一个存储数据对象的容器,这些数据对象包括表、视图、触发器、存储过程等,其中,表是最基本的数据对象,用以存放数据库的数据。,必须首先创建数据库,然后才能创建数据库的数据对象。,MySQL,可以采用两种方式,创建、操作数据库和数据对象,(,1,)命令行方式,(,2,)图形界面工具方式,数据表,视图,存储,过程,DELIMITER$,CREATE PROCEDURE DELETE_STUDENT(IN XH CHAR(6),BEGIN,创建数据库,MySQL安装后,系统自动地创建information_scema和MySQL数据库,MySQL把有关数据库的信息存储在这两个数据库中。如果删除了这些数据库,MySQL就不能正常工作。,对于用户的数据,需要创建新的数据库来存放。,语法格式:,CREATE,DATABASE|SCHEMA,IF NOT EXISTS,数据库名,DEFAULT CHARACTER SET,字符集名,|,DEFAULT COLLATE,校对规则名,说明:语句中“”内为可选项。,|表示二选一。,Create database bookstore,创建数据库,命令行方式创建数据库,在SQL语言创建数据库命令create database中,如果省略语句中,“,”,中的所有可选项,其结构形式如下:,CREATE DATABASE,数据库名,;,数据库名,表示被创建数据库名,数据库名必须符合以下规则:,数据库名必须唯一;,名称内不能含有,“,/,”,及,“,.,”,等非法字符;,最大不能超过,64,字节。,【,例,3.1】,创建一个名为,Bookstore,的数据库。,CREATE DATABASE Bookstore;,显示数据库,显示服务器中已建立的数据库,使用SHOW DATABASES命令。,语法格式:,SHOW DATABASES,此命令没有用户变量,执行“SHOW DATABASES;”。,注意:在MySQL中,每一条SQL语句都以,“,;,”,作为结束标志。,显示数据库命令,因为,MySQL,服务器中有多个数据库,可以使用,USE,命令可指定当前数据库。,语法格式:,USE,数据库名,说明:这个语句也可以用来从一个数据库,“,跳转,”,到另一个数据库,在用,CREATE DATABASE,语句创建了数据库之后,该数据库不会自动成为当前数据库,需要用这条,USE,语句来指定。,【例】将数据库,test1,设置为当前数据库。,Use test1;,打开数据库,MySQL,中的字符集和校对规则,字符集,是一套符号和编码。,校对规则,是在字符集内用于比较字符的一套规则。,ASCII字符集中四个字母:,A,、,B,、,a,、,b,,每个字母赋予一个数值:,A,=65,,B,=66,,a,=97,,b,=98。字母,A,是一个符号,数字65是,A,的编码,字母和它们的编码组合在一起是一个字符集。,假设我们希望比较两个字符串的值:,A,和,a,。比较的最简单的方法是查找编码:,A,为65,,a,为97。因为65 小于97,我们可以说,A,小于,a,。我们做的仅仅是在我们的,字符集,上应用了一个,校对规则,。,MySQL,字符集和校对规则应用,MySQL支持30多种字符集的70多种校对规则。在同一台服务器、同一个数据库或甚至在同一个表中使用不同字符集或校对规则来混合字符串。,可用,SHOW CHARACTER SET,命令查看。,两个不同的字符集不能有相同的校对规则。,每个字符集有一个默认校对规则。,【例3.2】创建一个名为Bookstore的数据库,采用字符集gb2312和校对规则gb2312_chinese_ci。,CREATE DATABASE Bookstore,DEFAULT CHARACTER SET gb2312,COLLATE gb2312_chinese_ci;,修改数据库,数据库创建后,如果需要修改数据库的参数,可以使用ALTER DATABASE命令。,语法格式:,ALTER DATABASE|SCHEMA,数据库名,DEFAULT CHARACTER SET,字符集名,|DEFAULT COLLATE,校对规则名,【例3.3】修改数据库Pet的默认字符集为latin1,校对规则为latin1_swedish_ci。,ALTER DATABASE Pet,DEFAULT CHARACTER SET latin1,DEFAULT COLLATE latin1_swedish_ci;,删除数据库,已经创建的数据库需要删除,使用DROP DATABASE命令。,语法格式:,DROP DATABASE IF EXISTS,数据库名,数据库test2命令如下:,DROP DATABASE,test2,;,删显示服务器中已建立的数据库,,使用SHOW DATABASES命令。,语法格式:,SHOW DATABASES;,数据库表结构分析,book1,表结构分析,图书编号,类别,书名,出版时间,单价,数量,SC13/02,机械,机械制图,2016-10-16,45.50,45,TP10/04,计算机,PHP_MySQL,网站制作,2013-08-16,33.25,50,TP21/01,计算机,JavaScript,网站制作,2015-08-16,33.72,60,图书目录表,图书编号,类别,书名,出版时间,单价,数量,tp.4235,计算机,跟我学网页设计,2009-09-10,23.50,12,tp.3361,计算机,网页编程技术,2008-10-01,54.15,23,tp.0731,计算机,数据库应用技术,2007-06-10,33.23,31,字段名,字段类型,宽度,是否为空,默认值,说明,图书编号,char,10,x,主键,采用,10,位字符编号,类别,char,8,x,计算机,2-4,个汉字,书名,varchar,40,x,不超过,40,个字符,出版时间,date,x,单价,Float,5,2,元为单位,精确到分,数量,int,MySQL,数据类型,大数据类型:,tex
展开阅读全文