1、单元1认识数据库数据库技术案例教程从MySQL到MongoDB学习目标知识目标技能目标1.了解数据库的起源与发展。2.了解常用的关系型与非关系型数据库产品。3.掌握数据库基础知识。1.能绘制E-R图。2.能将E-R图转换成关系模式0201任务1.1任务1.2任务1.3任务1.4数据库起源与发展基本概念数据描述数据模型目录1数据库起源与发展The origin and development of databaseThe origin and development of database任务描述数据库技术是从20世纪中叶开始兴起的一门信息管理学科,是计算机科学中的一个非常重要的分支。随着计算机
2、应用的飞速发展,数据处理越来越占主导地位,数据库技术的应用也越来越广泛。数据管理是数据库最核心的任务,主要内容包括数据的分类、组织、编码、存储、查询和维护。从数据管理的角度看,数据库技术到目前共经历了三个阶段,分别是人工管理阶段、文件系统阶段和数据库系统阶段。技术要点数据库的发展史01(1)人工管理阶段 人工管理阶段是指20世纪50年代,当时计算机主要用途就是用于科学计算,从硬件看,没有磁盘等存储设备。从软件看,没有操作系统,更没有管理数据的应用软件,应用程序管理数据,数据不共享,没有独立性。数据库的发展史在人工管理阶段,如图1-1所示,数据管理的特点是:数据不长期保存在计算机中。没有对数据进
3、行统一管理的软件系统。数据是面向程序的,一组数据只对应一个应用程序,数据不能共享,程序之间存在大量重复数据。图1-1人工管理阶段数据库的发展史(2)文件系统阶段文件系统阶段是从20世纪50年代-60年代中期,这一阶段计算机不仅应用于科学计算,还大量应用于信息管理,计算机硬件有了磁盘等外存设备。文件系统阶段与人工管理阶段相比有了很大进步,但是数据仍然大量冗余,数据之间的联系也比较弱,如图1-2所示。图1-2文件系统阶段在文件系统阶段,数据管理有如下特点:数据可以长期保存在计算机的外存设备上。数据有专门的数据管理软件文件系统进行统一管理。数据与程序间有一定的独立性,数据可以共享。随着数据管理规模的
4、扩大,数据量急剧增加,文件系统逐渐暴露出如下一些问题:数据冗余度大。数据独立性低。数据一致性差。(3)数据库系统阶段数据库系统阶段是从20世纪60年代至今。这一时期由于计算机技术的迅速发展,磁盘存储技术取得重大进展,计算机被广泛应用于管理中。大容量和快速存取的磁盘技术为数据库技术的发展提供了非常好的条件,数据库系统阶段如图1-3所示。图1-3数据库系统阶段在数据库系统阶段,管理数据的特点如下:数据结构化。数据独立性高。数据共享性高、冗余度低。具有统一的数据管理和控制功能。数据库系统的出现使信息系统从以加工数据的程序为中心,转向以共享数据库为中心的阶段。这样既便于数据的集中管理,又有利于应用程序
5、的开发和维护,提高了数据的利用率和相容性,提高了决策的可靠性。数据库技术发展的三个阶段特点比较见表1-1。表1-1三个阶段比较技术要点数据库应用02工作中使用的大部分软件都是需要用数据库在后台存储数据的,比如电商平台需要存储客户信息、商品信息、订单信息等;汽车监控平台需要存储汽车位置信息、车辆状态信息等。数据库根据其数据的存储方式可以分为关系型数据库和非关系型数据库。常见的关系型数据库有Oracle、SQLServer、MySQL等。常见的非关系性数据库有MongoDB,HBase等(1)关系型数据库的特点及其使用场景关系型数据库优点:复杂查询,可以用SQL语句方便的在一个表以及多个表之间做非
6、常复杂的数据查询。事务支持,使得对于安全性能很高的数据访问要求得以实现。关系型数据库缺点:不擅长大量数据的写入处理。字段不固定时应用不方便。不擅长对简单查询需要快速返回结果的处理。关系型数据库使用场景:需要做复杂处理的数据。数据量不是特别大的数据。对安全性要求高的数据。数据格式单一的数据。(2)非关系型数据库的特点及其使用场景非关系型数据库优点:非关系型数据库简单易部署,基本都是开源软件,不需要像使用Oracle、SQLServer那样花费成本购买使用。非关系型数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及非关系型数据库。非关系型的存储格式可以使键值对,也可以是
7、文档形式、图片形式等,所以可以存储基础类型以及对象或者是集合等各种格式,而关系型数据库则只支持基础类型。不支持连接处理,各个数据都是独立设计的,很容易把数据分散在多个服务器上,故减少了每个服务器上的数据量,即使要处理大量数据的写入,也变得更加容易,数据的读入操作当然也同样容易。非关系型数据库缺点:无法对表进行复杂的计算,不支持连接等功能。非关系型数据库使用场景:大容量数据存储。格式多样的数据存储。查询速度要求快的数据存储。技术要点常见的数据库管理系统03常见的关系型数据库有Oracle、SQLServer、MySQL等。常见的非关系性数据库有MongoDB,HBase等,如图所示1-4所示。图
8、1-4常见数据库管理系统(1)MySQL用户非常多的一种关系型数据库管理系统,如图1-5所示,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型企业的开发经常会选择MySQL作为系统后台数据库。由于其卓越的性能,搭配PHP和Apache可组成良好的开发环境。图1-5MySQLMySQL优点:体积小、速度快、总体拥有成本低,开源。支持多种操作系统。是开源数据库,提供用于C、C+、Java、PHP、Python的接口,支持多种语言连接操作。MySQL的核心程序采用完全的多线程编程。线程是轻量级的进程,它可以灵活地为用户提供服务,而不过多的系统资源。MySQL有一个非常灵活而且
9、安全的权限和口令系统。当客户与MySQL服务器连接时,他们之间所有的口令传送被加密,而且MySQL支持主机认证。支持大型的数据库,可以方便地支持上千万条记录的数据库。作为一个开放源代码的数据库,可以针对不同的应用进行相应的修改。拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用且不必担心其稳定性。MySQL同时提供高度多样性,能够提供很多不同的使用者介面,包括命令行客户端操作,网页浏览器,以及各式各样的程序语言介面,例如C+,Perl,Java,PHP,以及Python。用户可以使用事先包装好的客户端,或者干脆自己写一个合适的应用程序。MySQL可用于Unix,Windows,以及
10、OS/2等平台,因此它可以用在个人电脑或者是服务器上。MySQL缺点:不支持热备份。MySQL最大的缺点是其安全系统,主要是复杂而非标准,另外只有到调用mysqladmin来重读用户权限时才发生改变。没有一种存储过程(StoredProcedure)语言,这是对习惯于企业级数据库的程序员的最大限制。MySQL的价格随平台和安装方式变化。Linux的MySQL如果由用户自己或系统管理员而不是第三方安装则是免费的,第三方案则必须付许可费。Unix或Linux自行安装免费、Unix或Linux第三方安装收费。(2)MicrosoftSQLServerMicrosoftSQLServer是一种典型的关
11、系型数据库管理系统,如图1-6所示,它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,于1988年推出了第一个OS/2版本,使用Transact-SQL语言完成数据操作,它具有可靠性、可伸缩性、可用性、可管理性等特点,为用户提供完整的数据库解决方案。图1-6SQLServerSQLServer优点:为数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用Web带来的机会非常重要。作为一个完备的数据库和数据分析包,SQLServer为快速开发新一代企业级商业应用程序、为企业赢
12、得核心竞争优势打开了胜利之门。一个具备完全Web支持的数据库产品,提供了对可扩展标记语言(XML)的核心支持以及在Internet上和防火墙外进行查询的能力。SQLServer缺点:SQLServer只能Windows上运行,开放性差。并行实施和共存模型并不成熟,难处理日益增多的用户数和数据卷,伸缩性有限。只支持C/S模式,SQLServerC/S结构只支持Windows客户用ADO、DAO、OLEDB、ODBC连接。(3)OracleOracle是一个最早商品化的关系型数据库管理系统,如图1-7所示,也是应用广泛、功能强大的数据库管理系统。Oracle作为一个通用的数据库管理系统,不仅具有完
13、整的数据管理功能,还是一个分布式数据库系统,支持各种分布式功能,特别是支持Internet应用。作为一个应用开发环境,Oracle提供了一套界面友好、功能齐全的数据库开发工具。Oracle使用PL/SQL语言执行各种操作,具有可开放性、可移植性、可伸缩性等功能。Oracle数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。图1-7ORACLEOracle优点:支持能所有主流平台上运行(包括Windows),对所有工业标准采用完全开放策略,使客户选择适合解决方案对
14、开发商全力支持。提供高用性和高伸缩性簇解决方案,对各种UNIX平台集群机制都有着相当高集成度。获得最高认证级别的ISO标准认证。多层次网络计算支持多种工业标准用ODBC、JDBC、OCI等网络客户连接。长时间开发经验完全向下兼容得广泛应用地风险低。Oracle缺点:对硬件的要求很高。价格比较昂贵。管理维护麻烦一些。操作比较复杂,需要技术含量较高。(4)MongoDBMongoDB是一个基于分布式文件存储的数据库,如图1-8所示,由C+语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数
15、据库的产品。图1-8 mongoDBMongoDB优点:弱一致性(最终一致),更能保证用户的访问速度。文档结构的存储方式,能够更便捷的获取数据。对于一个层级式的数据结构来说,如果要将这样的数据使用扁平式的,表状的结构来保存数据,这无论是在查询还是获取数据时都十分困难。内置GridFS,支持大容量的存储。GridFS是一个出色的分布式文件系统,可以支持海量的数据存储。内置Sharding。提供基于Range的AutoSharding机制:一个collection可按照记录的范围,分成若干个段,切分到不同的Shard上。第三方支持丰富。而开源文档数据库MongoDB背后有商业公司10gen为其提供
16、供商业培训和支持。而且MongoDB社区非常活跃,很多开发框架都迅速提供了对MongDB的支持。不少知名大公司和网站也在生产环境中使用MongoDB,越来越多的创新型企业转而使用MongoDB作为和Django,RoR来搭配的技术方案。查询与索引方式灵活,查询性能、写入性能非常好,对CPU资源占用少。MongoDB缺点:不支持事务操作。在集群分片中的数据分布不均匀。单机可靠性比较差。磁盘空间占用比较大。(5)HBaseHBase是一个分布式的、面向列的开源数据库,如图1-9所示,该技术来源于FayChang所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Big
17、table利用了Google文件系统(FileSystem)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。图1-9HBaseHBase优点:半结构化或非结构化数据,对于数据结构字段不够确定或杂乱无章非常难按一个概念去进行抽取的数据适合用HBase,因为HBase支持动态添加列。记录很稀疏,RDBMS的行有多少列是固定的。为null的列浪费了存储空间。HBase为null的Column不会被存储,这样既节省了空间又提高了读性能。多版本号数据,依据Rowkey和Columnkey定位到的Value能够有随意数量的版本号值,因此对于须要存储变动历史记录的
18、数据,用HBase是很方便的。比方某个用户的Address变更,用户的Address变更记录也许也是具有研究意义的。仅要求最终一致性,对于数据存储事务的要求不像金融行业和财务系统这么高,只要保证最终一致性就行。高可用和海量数据以及很大的瞬间写入量,WAL解决高可用,支持PB级数据,put性能高。HBase缺点:单一RowKey固有的局限性,决定了它不可能有效地支持多条件查询。不适合于大范围扫描查询。不直接支持SQL的语句查询。技术要点数据库管理工具04管理数据库的工具很多,好的数据库管理工具可以让数据库用户降低开发成本,提高开发效率,比如NavicatforMySQL以及Robo3T。(1)N
19、avicatforMySQLNavicatforMySQL是一款强大的MySQL数据库管理和开发工具,如图1-10所示,它为-专业开发者提供了一套强大的足够尖端的工具。NavicatforMySQL基于Windows平台,为MySQL量身订作,解放了程序员以及数据库设计者,降低开发成本,为用户带来更高的开发效率。图1-10NavicatforMySQL(2)Robo3TRobo3T是支持windows、Mac、Linux三个平台的非关系型数据库MongoDB可视化管理工具,如图1-11所示,Robo3T操作简单且占用资源少,非常受欢迎。图1-11Robo3T技术要点如何学习数据库05数据库技术
20、的学习是一个由浅入深、不断动手实践的过程。对于关系型数据库MySQL来说,首先要学习MySQL的安装与配置,然后是数据库和数据表的创建与管理,后面再依次学习数据查询,最后学习一些高级操作,如视图、索引、备份与恢复等。对于非关系型数据库MongoDB来说,学习的过程也是离不开实践的。可以先从文档与集合开始,然后是文档的查询,文档的聚合操作,最后是一些高级应用,比如MongoDB的索引与优化等。2基本概念Basic conceptsBasic concepts任务描述需要掌握数据库的基本操作原理,首先要熟悉与数据库有关的基本概念。技术要点信息01对现实世界中各种事物的存在方式、运动状态和相互关系的
21、一种描述称为信息。在不同地区信息的说法略有不同,比如日本称“情报”,中国台湾省称“资讯”。技术要点数据02数据是信息的具体表现形式,是用来记录信息的符号,数据包括数字、字符、图像、视频、音频等。一个学生的体重可以表示为“65.0”和“60公斤”,“65.0”是数字,“60公斤”是字符串,都表示了体重信息,但值的类型是不一样的。大数据(BigData)是指数据量特别大,类型复杂,无法用传统数据管理工具进行数据的提取、管理的数据集合。技术要点数据处理03数据转换成信息的过程成为数据处理。数据处理包括数据的收集、组织、整理、存储、加工、维护、查询和传播等一系列活动。数据处理主要包括:数据管理收集信息
22、,将信息用数据表示并分类存储。数据加工对数据进行变换、抽取和运算。数据传播将信息在时间和空间上进行传递,传播过程中,数据的结构、性质、内容不会发生改变。技术要点数据库04数据库(DataBase,DB)并没有完全固定统一的定义,但是随着数据库技术的发展,普遍的观点将数据库定义为长期存储在计算机内的,有组织,可共享的数据的集合。数据库中的数据按一定的数学模型组织、描述和存储,具有较小的冗余,较高的数据独立性和易扩展性,并可为各种用户共享。数据库可以高效的管理数据,主要体现在:结构化存储大量数据,方便用户的查询。能够有效保证数据的一致性和完整性。能够在安全的前提下共享数据。技术要点数据库管理系统0
23、5数据库管理系统(DatabaseManagementSystem,DBMS)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也通过DBMS进行数据库的维护工作。DBMS提供数据定义语言DDL(DataDefinitionLanguage)和数据操作语言DML(DataManipulationLanguage),供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。技术要点数据库系统06数据库系统DBS(DataBaseSystem,DBS)通常由软件、数据
24、库和数据管理员组成如图所示1-12所示。其软件主要包括操作系统、各种宿主语言、实用程序以及数据库管理系统。数据库由数据库管理系统统一管理,数据的插入、修改和检索均要通过数据库管理系统进行。数据管理员负责创建、监控和维护整个数据库,使数据能被任何有权使用的人有效使用。数据库管理员一般是由业务水平较高、资历较深的人员担任。数据库系统图1-12 数据库系统数据库系统数据库系统一般由4个部分组成:数据库硬件构成计算机系统的各种物理设备,包括存储所需的外部设备。硬件的配置应满足整个数据库系统的需要。软件包括操作系统、数据库管理系统及应用程序。数据库管理系统(DataBaseManagementSyste
25、m,DBMS)是数据库系统的核心软件,是在操作系统的支持下工作,解决如何科学地组织和存储数据,如何高效获取和维护数据的系统软件。其主要功能包括:数据定义功能、数据操纵功能、数据库的运行管理和数据库的建立与维护。数据库系统人员人员主要有4类。第一类为系统分析员和数据库设计人员,系统分析员负责应用系统的需求分析和规范说明,他们和用户及数据库管理员一起确定系统的硬件配置,并参与数据库系统的概要设计。数据库设计人员负责数据库中数据的确定、数据库各级模式的设计。第二类为应用程序员,负责编写使用数据库的应用程序。这些应用程序可对数据进行检索、建立、删除或修改。第三类为最终用户,他们利用系统的接口或查询语言
26、访问数据库。第四类用户是数据库管理员(DataBaseAdministrator,DBA),负责数据库的总体信息控制。DBA的具体职责包括:具体数据库中的信息内容和结构,决定数据库的存储结构和存取策略,定义数据库的安全性要求和完整性约束条件,监控数据库的使用和运行,负责数据库的性能改进、数据库的重组和重构,以提高系统的性能。数据库系统对数据库系统的基本要求是:能够保证数据的独立性。数据和程序相互独立有利于加快软件开发速度,节省开发费用。冗余数据少,数据共享程度高。系统的用户接口简单,用户容易掌握,使用方便。能够确保系统运行可靠,出现故障时能迅速排除;能够保护数据不受非受权者访问或破坏;能够防止
27、错误数据的产生,一旦产生也能及时发现。有重新组织数据的能力,能改变数据的存储结构或数据存储位置,以适应用户操作特性的变化,改善由于频繁插入、删除操作造成的数据组织零乱和时空性能变坏的状况。具有可修改性和可扩充性。能够充分描述数据间的内在联系。技术要点SQL语言07SQL是结构化查询语言(StructuredQueryLanguage)的简称,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完
28、全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。SQL语言主要包含4大部分。DDL:数据定义语言,主要包含Create、Alter、Drop等语句。DML:数据操纵语言,主要包含Insert、Update、Delete等语句。DCL:数据控制语言,主要包含Commit、Rollback、Grant、Revoke等语句。DQL:数据查询语言,指Select查询语句。SQL语言3数据描述D Data descriptionata description任务描述现实世界与计算机世界是相互联系且相互区
29、别的,现实世界中存在各种事物相互之间存在复杂的交互的关系,为了让计算机来管理现实世界的事物,必须将现实世界的事物抽象转换为计算机世界能够表示的数据。技术要点现实世界01现实世界是指客观存在事物、事物之间相互的联系及事物的发生、变化过程。新能源汽车管理系统中涉及的企业管理、车队管理、车辆管理、用户管理。每个企业注册成功后,需要添加车队,有了车队后,再向车队添加车辆,车辆信息包括车架号、车牌号、所属车队等。车辆在线运行时,通过数据采集终端,不停向数据库中发送所采集的数据。以上各种事物及相互联系就构成了现实世界,软件开发者需要将现实世界的原始数据进行抽象,对现实世界的事物进行重新描述,就成为信息世界
30、。技术要点信息世界02信息世界是现实世界的符号描述,即将客观世界用数据来描述。车辆是现实世界的个体,用一组数据(车架号、车牌号、所属车队)来描述,这样一组数据便可以了解该车辆的基本信息。可以说信息世界就是数据世界。信息世界(1)实体(Entity)客观世界存在的、可以区别的事物称为实体。实体可以是具体的事物,例如车辆A,企业B,也可以是抽象的事件,例如车辆A发送了1个位置数据包等。(2)属性(Attribute)实体有很多特性,每个特性称为实体的一个属性,每个属性有一个类型。例如企业实体的属性有:企业名称、省、市、详细地址等,企业名称、省、市、详细地址的类型均为字符型。(3)实体集(Entit
31、ySet)性质相同的实体的集合。例如所有企业的集合,所有车队的集合、所有车辆的集合等。(4)实体标识符(Key)能够唯一标识实体的属性或属性的组合。车辆实体的车架号,能够唯一确定一辆车,可以作为车辆实体集的标识符。(5)域(Domain)实体的每个属性都有相应的取值范围,取值范围称为属性的域。技术要点计算机世界03信息世界中的数据在计算机世界中的存储,成为计算机世界的数据。计算机世界计算机世界常用的术语包括:记录。对应于信息世界中的实体据。字段,对应于信息世界中的属性,在数据库技术中称为字段,车辆实体中车架号、车牌号都是字段,每个字段都有它的数据类型和取值范围。数据文件。对应于信息世界的实体集
32、。由多干个相同类型记录组成的集合,在数据库系统中以文件的形式存储。关键字。能够唯一标识记录的字段或字段的组合,与信息世界中的实体标识符相对应,车辆实体中的车架号可以作为车辆的关键字。计算机世界从现实世界到信息世界不是简单的数据描述,而是从现实世界中抽象出适合计算机技术研究的数据。同时要求这些数据能够科学好地反映现实世界的事物;从信息世界到计算机世界不再是简单的数据对应存储,而是设计数据的逻辑结构和物理存储结构,这一过程如图1-13所示。在一个应用系统中,数据的逻辑结构面向软件开发者,物理结构面向计算机。数据库管理系统的功能之一,就是要能够对数据的逻辑结构与数据的物理结构进行相互映像。图1-13
33、客观事物的抽象过程4数据模型D Data modelata model任务描述模型是对现实世界的模拟和抽象,在数据库技术中,用数据模型对现实世界数据特征进行抽象,来描述数据库的结构和语义。模型主要分为两类,概念模型和结构数据模型。技术要点概念模型01概念模型是对信息世界的建模,能够全面、科学、准确的反应信息世界,概念模型是独立于计算机系统的模型。能够表示概念模型的方法很多,使用最广泛的就是P.P.Chen 提出的E-R模型。概念模型(1)概念模型特点概念模型能真实地反映现实世界中事物和事物之间的关联联系,易于理解,方便用户与软件开发者之间的交流,是现实世界的一个真实模型。概念模型在应用环境和应
34、用要求改变时易于修改和扩充。概念模型是各种数据模型的共同基础,独立于机器、更抽象,从而更加稳定。概念模型(2)实体之间的联系在现实世界中,事物内部以及事物之间是有联系的。实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体型的实体集之间的联系。一对一联系(1:1)如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。一对多联系(1:n)如果对于实体集A中的每一个实体,实体集B中有n个实体(n1)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体
35、集A与实体集B有一对多联系,记为1:n。概念模型多对多联系(m:n)如果对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。一般把参与联系的实体型的数目称为联系的度。两个实体型之间的联系度为2,也称为二元联系;三个实体型之间的联系度为3,称为三元联系;N个实体型之间的联系度为N,称为N元联系。概念模型(3)E-R图E-R模型是用E-R图来描述现实世界的概念模型。E-R图提供了表示实体、属性和联系的方法,实体、属性和联系是E-R图的三个基本要素。E-R图的绘制
36、:实体型用矩形表示,矩形框内写明实体名。属性用椭圆形,并用无向边将其与相应的实体型联系起来。联系用棱形表示,棱形框内写明联系名,并用无向边分别于有关实体型连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。先设计局部ER图,然后再把局部ER图综合起来,生产总体ER图。技术要点关系模型02不同数据库所采用的数据模型是不同的,常见的数据模型有层次模型、网状模型,关系模型,关系型数据库使用的就是关系模型。关系模型结构简单,数据之间的关系容易实现关系模型(1)关系模型性质同一个关系中不能出现相同的属性。同一个关系中不能出现相同
37、记录。关系中的元祖、属性具有顺序无关性。关系中的每个属性都不可再分。(2)E-R图转换成关系模型实体的转换将每个实体类型转换成一个关系模式。实体的属性即为关系模式的属性。实体标识符即为关系模式的键。二元联系的转换若实体间联系是1:1,可以在两个实体类型转换成的两个关系模式中任意一个关系模式的属性中加入另一个关系模式的主键和联系类型的属性。若实体间联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型的主键和联系类型的属性。若实体间联系是M:N,则将联系类型也转换成关系模式,其属性为两端实体类型的主键加上联系类型的属性,而键为两端实体键的组合。关系模型一元联系类型的转换和二元联系类型的
38、转换类似。三元联系类型的转换。若实体间联系是1:1:1,可以在三个实体类型转换成的三个关系模式中任意一个关系模式的属性中加入另两个关系模式的主键(作为外键)和联系类型的属性。若实体间联系是1:1:N,则在N端实体类型转换成的关系模式中加入两个1端实体类型的主键(作为外键)和联系类型的属性。若实体间联系是1:M:N,则将联系类型也转换成关系模式,其属性为M端和N端实体类型的主键(作为外键)加上联系类型的属性,而键为M端和N端实体键的组合。若实体间联系是M:N:P,则将联系类型也转换成关系模式,其属性为三端实体类型的主键(作为外键)加上联系类型的属性,而键为三端实体键的组合。关系模型(3)关系的完
39、整性实体完整性实体完整性要求关系中的所有主属性都不能为空值。一个关系对应现实世界中一个实体集。现实世界中的实体是可以相互区分、识别的,也即它们应具有某种唯一性标识。在关系模式中,以主关键字作为唯一性标识,而主关键字中的属性(称为主属性)不能取空值,否则,表明关系模式中存在着不可标识的实体(因空值是“不确定”的),这与现实世界的实际情况相矛盾,这样的实体就不是一个完整实体。按实体完整性规则要求,主属性不得取空值,如主关键字是多个属性的组合,则所有主属性均不得取空值。参照完整性参照完整性是定义建立关系之间联系的主关键字与外部关键字引用的约束条件。关系数据库中通常都包含多个存在相互联系的关系,关系与
40、关系之间的联系是通过公共属性来实现的。所谓公共属性,它是一个关系R(称为被参照关系或目标关系)的主关键字,同时又是另一关系K(称为参照关系)的外部关键字。如果参照关系K中外部关键字的取值,要么与被参照关系R中某元组主关键字的值相同,要么取空值,那么,在这两个关系间建立关联的主关键字和外部关键字引用,符合参照完整性规则要求。如果参照关系K的外部关键字也是其主关键字,根据实体完整性要求,主关键字不得取空值,因此,参照关系K外部关键字的取值实际上只能取相应被参照关系R中已经存在的主关键字值。关系模型用户自定义完整性实体完整性和参照完整性适用于任何关系型数据库系统,它主要是针对关系的主关键字和外部关键
41、字取值必须有效而做出的约束。用户定义完整性则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。这一约束机制一般不应由应用程序提供,而应有由关系模型提供定义并检验,用户定义完整性主要包括字段有效性约束和记录有效性。技术要点关系数据模型中的范式03在关系型数据库中,每个关系包含关系的模式和关系的值,关系模式是关系的具体结构,是对关系的抽象定义;关系的值是关系的具体存储内容,反应关系的具体状态。关系模型最核心的内容就是关系的规范化,规范化过程实际上就是在保证数据库中内容完整的前提下最小化数据的冗余的过程。规范化过程必须符合范式规则。关系数据模型中的范式(1)第一范式(1NF
42、)关系中的每个属性不能再分,只包含一个值,关系中的所有记录都包含相同的属性,关系中不能出现相同的记录。见表1-2中的企业属性就不属于第一范式,因为地区包含两个属性值。表1-2范例关系数据模型中的范式修改为第一范式后见表1-3。表1-3修改后的范例关系数据模型中的范式1NF是规范化的最低要求,不满足1NF的关系是非规范化的关系模式。满足1NF的关系仍然会出现插入异常、删除异常、更新异常等问题,需要对关系模式进行完善,才能得到更好性能的关系模式。(2)第二范式在满足第一范式的基础上,所有属性都必须依赖于关系的候选键,就是不存在部分依赖。(3)第三范式在满足第二范式基础上,非键属性相互之间必须无关,
43、也就是不存在传递依赖。技术要点设计的规范化与反规范化04数据库中的数据规范化的优点是减少了数据冗余,节约了存储空间,相应逻辑和物理的I/O次数减少,同时加快了增、删、改的速度,但是对完全规范的数据库查询,通常需要更多的连接操作,从而影响查询的速度。因此,有时为了提高某些查询或应用的性能而破坏规范规则,即反规范。设计的规范化与反规范化是否规范化的程度越高越好?这要根据需要来决定,因为“分离”越深,产生的关系越多,关系过多,连接操作越频繁,而连接操作是最费时间的,特别对以查询为主的数据库应用来说,频繁的连接会影响查询速度。所以,关系有时故意保留成非规范化的,或者规范化以后又反规范了,这样做通常是为
44、了改进性能。反规范的好处是降低连接操作的需求、降低外码和索引的数目,还可能减少表的数目,相应带来的问题是可能出现数据的完整性问题。加快查询速度,但会降低修改速度。因此决定做反规范时,一定要权衡利弊,仔细分析应用的数据存取需求和实际的性能特点,好的索引和其它方法经常能够解决性能问题,而不必采用反规范这种方法。数据库的反规范设计可以提高查询性能。常用的反规范技术有增加冗余列、增加派生列、重新组表和分割表。但反规范技术需要维护数据的完整性。因此在做反规范时,一定要权衡利弊,仔细分析应用的数据存取需求和实际的性能特点。任务实施1.【例1-1】企业实体包含企业ID、企业名称,所在省、市、地址,共5个属性
45、,绘制其E-R图。企业是一个实体,用矩形表示,企业ID、企业名称、省、市、地址这5个属性用椭圆表示,实体与属性之间用直线相连,如图1-14所示。图1-14 企业实体及其属性任务实施2.【例1-2】企业实体包含5个属性,车队实体包含车队ID、车队名称两个属性,一个企业可以包含多个车队,一个车队只属于一个班级,绘制其E-R图。企业和车队都是实体,用矩形表示,企业和车队之间有包含关系,用菱形表示,如图1-15所示。图1-15 企业-车队E-R图任务实施3.【例1-3】将【例1-2】绘制的E-R图转换成关系模式。根据转化规则,转换成如下关系模式:企业:企业ID、企业名称、省、市、地址车队:车队ID、车
46、队名称、企业ID任务实施4.【例1-4】新能源汽车监控系统包含的实体有企业、车队、车辆、报警信息、整车信息、电池信息、电机信息、发动机信息、在线离线信息、位置信息、极值信息、故障码。实体之间的关系有:一个企业包含多个车队,一个车队只属于一个企业;一个车队包含多个车辆,一个车辆只属于一个车队;一辆车包含多条报警信息、多条整车信息、多条电池信息、多条电机信息、多条在线离线信息、多条位置信息、多条极值信息,每条采集的信息只属于一个车辆。绘制新能源汽车系统E-R图,并将其转换为关系模式。根据需求,绘制的ER图如图1-16所示。任务实施图1-16系统ER图任务实施根据ER图转换规则,转换后的关系模式如下
47、:企业:(企业ID、企业名称、省、市、地址)车队:(车队ID、车队名称、企业ID)车辆:(车辆ID、终端编号、车架号、车牌号、车队ID)整车信息:(ID、车架号、实时时间、车辆状态、充电状态、运行模式、车速、累计里程、电压、电流、SOC、DCDC状态)电池信息:(ID、车架号、实时时间、电池电压、电池电流、燃烧率、温度)发动机信息:(ID、车架号、实时时间、转速、燃烧率)驱动电机信息:(ID、车架号、实时时间、控制室温度、转速、扭矩、电机温度、电压、电流)位置信息:(ID、车架号、实时时间、经度、维度)报警信息:(ID、车架号、实时时间、电池故障码、发动机故障码、电机故障码、其他故障码)极值信
48、息:(ID、车架号、实时时间、电池最高电压、电池最低电压、最高温度、最低温度)在线离线:(ID、车架号、实时时间、在线状态)故障码:(ID、故障码、故障名称、故障等级、故障类型、故障描述、维修建议)课后习题一、选择题1.下列关于数据库的说法不正确的是()A.数据库就是长期存储在计算机中、有组织、可共享的数据集合B.数据库中的数据没有任何冗余C.数据库中的数据可同时被多个用户共享D.数据库中的数据是按一定的数据模型组织、描述和存储的2.数据库管理系统的英文缩写是()。ADBS BDBMS CDBO DDB3.在E-R图中,长方形和椭圆形分别表示什么()A联系、属性 B属性、实体 C实体、属性 D
49、实体、联系二、填空题1.数据库技术发展的阶段划分为 阶段、阶段和数据库系统阶段三个阶段。2.实体之间的联系用 表示。3.E-R图的三个基本要素是 、和 。问答题1.简述数据库的起源与发展。2.简述关系型数据库与非关系型数据库的区别。3.简述数据库系统的组成。课后习题4.简述数据库管理系统与数据库系统的区别。5在一个教学管理系统中,一个教师可以教授多门课程,一门课程也可以被多个教师讲授,一个学生可以选修多门课程,一门课程也可以有多个学生选修,教师具有工号、姓名、性别、出生年月、专业属性;学生具有学号、姓名、性别、出生年月、班级属性;课程具有课程编号、课程名称、学分、课时数属性,绘制出E-R图,并
50、将E-R图转换成相应的关系模式。单元小结数据库是软件系统的一个核心组成部分,应用的范围越来越广,可以说,学好数据库是软件开发的一个前提条件。任何一个技术的学习都离不开实践,没有实践,再多的理论也是空洞的。谢谢观看单元2 数据库的基本操作数据库技术案例教程从MySQL到MongoDB学习目标知识目标技能目标1.了解数据库的组成。2.了解系统数据库的用途。3.了解常见错误代码。1.能够安装配置数据库开发环境。2.能够创建数据库。3.能够管理数据库。0201任务2.1任务2.2任务2.3任务2.4设置数据库开发环境创建数据库管理数据库MySQL错误代码和消息目录1设置数据库开发环境Set up da
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100