计算机导论 课件 第11章 数据库_第1页
计算机导论 课件 第11章 数据库_第2页
计算机导论 课件 第11章 数据库_第3页
计算机导论 课件 第11章 数据库_第4页
计算机导论 课件 第11章 数据库_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

第11章数据库主要内容文件和数据库概念数据管理工具数据库设计SQL云数据库大数据文件和数据库概念数据库(Database)是数据的集合,数据库中的数据能够按照特定的数据结构存储,能对多个用户共享,具有尽可能小的冗余度,且与应用程序彼此独立。利用数据库可以完成以下任务:收集数据存储数据更新数据整理数据查找数据生成和传播数据分析数据数据库层次数据库可以分为三个层次,不同类型的用户接触的层次不尽相同:物理层。物理层是数据库最底层的抽象,它描述了数据是怎样在物理介质上存储的。通常只有数据库的研究人员才会接触数据库的物理层。逻辑层。逻辑层是比物理层的层次稍高的抽象。它描述了数据条目存储的内容及数据之间的关系。数据库的管理者使用逻辑层进行管理。视图层。视图层是最高层次的抽象,只关注于数据库的某一部分。绝大部分数据库用户接触到的是视图层。数据库常用词汇字段。字段是数据库的基本组成元素,存放着属于同一类的信息。例如在iTunes播放列表中,名称字段存储的是歌曲的名称,时间字段存储的是歌曲的时长等。字段又分变长字段和定长字段。其中变长字段的长度可以根据输入数据的长度动态分配,只要不超过预设的最大值。定长字段则会分配固定大小的空间,即使数据很小,也会占用掉整个空间。数据库常用词汇iTunes播放列表中的字段数据库常用词汇记录。记录是一组字段的集合,代表着一条信息。例如在iTunes播放列表中,每一首歌曲对应着一条记录,每条记录都包含该歌曲的名称、时间、播放次数等信息。记录类型。记录类型是记录模板即字段名的集合,记录类型不包含具体的数据。实体。实体是所有同类物品或生物的集合。每一个实体都对应着一个记录类型,例如,歌曲这个实体对应着名称、时间、播放次数的记录类型。数据库常用词汇关系。关系是指不同记录类型之间的联系。例如,零售商出售的商品ID必须在该商品生产者记录的商品ID列表里,否则该商品就有可能是伪造产品,这便是一种关系。基数。基数是指两个记录类型间可能存在的联系的个数。例如:对特定种类产品只能由一个厂商生产,而一个厂商却可以生产多种产品,这是一对多关系。多对多关系如厂商和超市的货物供应,超市可以选择多个厂商的货物,厂商也可以供给超市多种货物。一对一关系如专辑和其描述的关系,一个专辑只允许有一个描述,而一个描述也只适用于一个专辑,一对一关系在数据库中很少见。ER图实体关系图(EntityRelationshipDiagram,简称ER图)常用来表示实体间的关系与基数数据库的分类数据库系统可以用不同方式来分类,包括数据库所支持的用户数量、数据库的层数、数据库所处环境等。常用的数据库分类有:单用户数据库系统与多用户数据库系统客户端—服务器数据库系统与N层数据库系统集中式和分布式数据库系统基于磁盘的和在内存中的数据库系统操作型数据库和分析型数据库数据库模型数据库模型描述了数据在数据库中的存储结构与表现方式。数据库模型可以分为以下几种:平面文件层次数据库网状数据库关系数据库维度数据库对象数据库对象-关系数据库文档数据库图形数据库平面文件平面文件处于数据库定义的边缘,因为它简单到无法在记录间建立关系。iTunes播放列表就是一个平面文件,常见的平面文件还有电子表格、电子邮件地址簿等。用户可以对平面文件进行增、删、改、查,但无法指定记录间的关系。除了平面文件外,其他的数据库模型都允许建立关系。层次数据库层次数据库使用树形结构来描述关系,由于“树”的限制,只能定义一对一或一对多的关系,无法定义多对多关系。常见的层次数据库如Windows的注册表。层次数据库现今已很少被使用。网状数据库网状数据库在树的基础上将其扩成了网状结构,从而可以表现多对多关系。目前除了DNS系统等专用系统或应用还在使用网状数据库,其他网状数据库都已被关系数据库或对象数据库所取代。关系数据库关系数据库是目前最常使用到的数据库,它将存储在一张张表格中。每个表格代表一个实体,表格中每行代表一个记录,每列代表一个字段。而关系是通过将不同表中的相同字段联系起来而指定的。维度数据库维度数据库是关系数据库的一种扩展,关系数据库采用的是二维的表格,而维度数据库采用了三维或更多维的“数据空间”来描述数据或关系,因此维度数据库也称多维数据库。维度数据库可以更形象地表现数据,但使用和维护维度数据库需要更多的专业技术。对象数据库对象数据库也叫面向对象数据库,它将实体抽象为类,将字段抽象为属性,将数据存储为对象的形式,并定义出方法——对象能执行的行为。对象数据库适合表示属性差别极小的不同类对象——只需设置一个父类存放它们的共有属性,再设置相应数目的派生类存放各自的特有属性,并继承父类即可。对象数据库是一种正在发展的数据库,它能够更好地表现日常生活中的实体和关系。对象-关系数据库对象-关系数据库将关系数据库和对象数据库的特征相结合。数据像传统的关系数据库一样存储在表格中,但增加了对象数据库的功能——可以扩充自定义的数据类型和操作,支持复杂对象的查询,以及支持继承的概念。文档数据库面向文档的数据库可以存储非结构化的数据,如讲演的原话或杂志的文章。由于文章具有可变的长度和结构,因此不需要将数据塑造成适应数据库的结果。文档数据库可按照这样的方式来创建,即将类似于HTML的结构化标记插入到文档自身。格式化文档数据库的两种常用的方式是使用XML和JSON,相对而言,XML更灵活。图形数据库图形数据库包含节点、边和特性。图形数据库是NoSQL数据库的一种类型,是一种非关系型数据库,它应用图形理论存储实体之间的关系信息。关系型数据库用于存储“关系型”数据的效果并不好,其查询复杂、缓慢、超出预期,而图形数据库的独特设计恰恰弥补了这个缺陷。数据管理工具常用的数据管理工具如:数据管理软件数据库管理系统数据管理软件是最简单的数据管理工具,它可以创建并维护平面文件,但不能在记录间建立关系,也没有足够能力维护企业所需的大量数据。常见的数据管理软件如MicrosoftWord和MicrosoftExcel,它们都提供了创建与管理表格的工具。数据库管理系统数据库管理系统(DataBaseManagementSystem,简称DBMS)是专业的数据管理工具,是专门用来管理数据库中数据的软件。数据库管理系统具有良好的数据独立性——即DBMS只负责数据,而程序需要通过编程语言向DBMS申请以获取数据。数据库管理系统支持网络访问,可以管理数十亿条的记录,并支持每秒数百次甚至上千次的并发事务处理。DBMS≠DB数据库管理系统DBMS可以分为很多种,每一种都专用于某一数据库模型,但也有一些DBMS可以同时处理多种数据库模型:XMLDBMS,用于处理XML格式的数据。对象数据库管理系统(ObjectDBMS,简称ODBMS),用于处理对象数据库模型。关系数据库管理系统(RelationalDBMS,简称RDBMS),用于处理关系数据库模型,是时下最流行的数据库管理系统。在商业领域最常用的RDBMS如Oracle、MicrosoftSQLServer、MySQL等,个人用户则可以考虑使用MicrosoftAccess。数据库管理系统关系数据库管理系统数据库和Web数据库是可以通过Web访问的,但它的访问方式非常“隐秘”,以至于大多数Web用户甚至发觉不到信息是由数据库生成的。例如,网上商城商品的价格、图片和描述其实都是来自数据库,并经由一定的处理生成的;12306网站上的列车时刻表也是源于数据库。可以通过静态或动态发布的方式将数据库中的内容提供到Web上。静态Web发布是将数据库中的数据转换成HTML文档,从而提供访问,其实质是生成了一个数据库的“快照”。Web用户只可以对此HTML文档进行查看或搜素,而不能更改数据库中的内容。数据库和Web如果要通过Web对数据库中的数据进行修改,或进行定制性的查看(如网上商城的“猜你喜欢”功能),则需要借助动态Web发布。动态Web发布依靠服务器端脚本在用户浏览器和DBMS间建立连接。服务器端脚本可以用PHP、Ruby、Python、ASP等语言进行编写。操作系统、Web服务器软件、数据库管理系统和服务器端脚本共同组成了Web服务器框架。数据库和Web用户通过网页提交的记录其实都是表单的形式,在HTML语言中就是<form>标签下的内容,<form>标签会指定提交方式和提交到服务器端脚本的文件名。用户提交后,<form>标签中的内容就会提交到对应脚本进行处理,脚本处理完毕后再将结果以HTML文档的方式返回给用户。XMLXML(ExtensibleMarkupLanguage,可扩展标记语言)是对HTML语言的扩展与补充。它与HTML语言在语法上的区别是:HTML中并不是所有标签都成对出现,而XML要求所有标签必须成对出现;HTML的标签不区分大小写,而XML标签区分大小写。XML支持自定义的标签,如<author>标签可以标记作者,<from>标签可以标记来源。HTML和XML是为不同的目的而设计的。HTML被设计用来显示数据,关注于数据的外观;而XML被设计为传输和存储数据,关注于数据的内容。XML可以理解为,XML仅仅是纯文本,XML文件不会做任何事情,但应用程序却可以利用XML文件的易读性和标记性有针对性地处理XML文件。例如,应用程序可以直接搜索<author>标签找到该文件的作者,而无需借助人工查询。XML文件可以用浏览器或任何的文字处理软件打开。XMLXML和数据库都可以用来存储数据。XML可在多个平台上访问,占用资源更少,操作更方便,但对复杂的操作如排序、更新支持不是很好,且在数据量增大时,查看与搜索的压力也会增大,所以XML文件通常用于存储程序的配置,而程序所用到的数据还是要用数据库存储。XML提供了服务器和浏览器通过Web交换数据的方式,一些RDBMS可以接受XML形式的查询并将结果到处到XML文件,同Web发送到用户浏览器。数据库设计在设计数据库及相关系统时,常常需要考虑如下内容:定义字段组织记录设计界面设计报表模板载入数据定义字段构建关系数据库的第一步是定义字段,即明确数据库中要存放什么数据。例如,如果要构建一个音乐数据库,那么可能的字段有歌曲名、专辑名、作者、时长、描述等等。定义字段前,首先要明确如何组织数据,例如,用户的姓名是存放在一个字段里还是分成姓和名存放在两个字段里。数据库通常需要保证一张表里的任意两条记录都是互不相同的,因此需要将一个字段设置成主键(primarykey),主键字段中的数据不允许重复,即可保证记录是不重复的。定义字段字段可以存放的数据取决于它的数据类型,不同DBMS有不同的数据类型,但大体可分为以下几类:整型数据类型(int或integer)浮点数据类型(real、float、decimal、numeric)字符数据类型(char、varchar)日期和时间数据类型(datetime)文本和图形数据类型(text、image)货币数据类型(money)位数据类型(bit)二进制数据类型(binary、varbinary)定义字段数据库提供了进行数据检查的工具,以防用户输入不合法的数据。不合法的数据包括:数据类型不符数据值不符数据库管理员还可以指定字段样式,以便输入数据时添加为自动的格式。如何将字段编组为表也需要一定的技巧。原则之一是“一事一表”,这样可以减少数据冗余。组织记录对于同一张表,不同的数据库用户关注的重点可能不同。例如,仓库管理员会关注商品的库存排序情况,而营销人员可能更关注商品的价格排序情况。这就需要数据库去组织记录,数据库组织记录的方式可以分为排序和索引两种。排序是对物理介质上的数据进行重新排列,以得到有序的数据。每张表最多只能有一个排序字段,数据会按此字段在物理介质上排序。组织记录与排序不同,索引其实是一个键列表,每个键中都有索引排序字段的信息,并提供了一个指向对应记录的指针。索引按照索引排序字段进行排序,以达到组织记录的效果,但索引不会改变记录的物理存储位置。因此一张表可以有多个索引,以对多个不同的字段进行排序。记录表索引表商品ID价格库存库存商品ID10013.24352100510109.817171010100521.721581003100353.61584351001设计界面数据库的用户通常不是登录DBMS后对数据进行修改,而是通过Web访问网页或通过应用程序进行数据的创建与修改。数据库的设计者或专门的工程师需要设计出一个能完整包含记录所需字段的页面。设计界面时常须注意:将字段按照逻辑顺序排列好,字段的文本框最好对齐,而不要参差不一。为正在输入的字段提供视觉效果,如文本框加亮等。提供必要的说明以确保输入数据的合法性。如果字段过多,可考虑分页或使用滚动条,而不要挤在一起。应用合适的字体和样式。设计报表模板报表是打印出来的或展示在屏幕上的数据库中部分数据或全部数据的列表。多数DBMS都包含了报表生成器,可以根据设计好的报表模板,填入数据后生成报表。一个好的报表模板应遵循以下原则:提供且仅提供用户所需的信息。能够简化用户的手工计算。无歧义的表示信息。以用户可以理解的方式表现信息。载入数据数据库结构设计完成后,需要将数据载入到数据库中。最原始的做法是手工输入数据,这可能会花费很长时间,并且不可避免地会有拼写错误。如果数据是以电子的方式存在于其他数据库或文件中,就可以使用数据库提供的导入导出程序,或写一个专门的转换程序来载入数据。载入数据DBMS会提供导入导出程序,可以将数据在不同的数据库或文件之间进行转换,如果导入导出程序不支持所需文件的格式,就需要写一个专门的转换程序。对于大量数据来说,编写转换程序的效率和准确率依然要比手工录入高。SQLSQL(StructuredQueryLanguage,结构化查询语言)是用来进行数据库设计、查询与管理的语言,任何对数据库的操作都需要通过SQL语句(也称SQL查询)命令数据库进行。SQL语句很像是一个英文句子,如SELECTNameFROMStudentWHERESid=‘1001’就是一个最简单的SQL语句,它命令数据库从Student表中找到学号为1001的学生,并返回其姓名。其中的大写单词如SELECT、FROM和WHERE是SQL关键字,数据库通过识别关键字来判断指令的类型,并执行对应操作。SQL关键字不一定是大写的,大多数DBMS接受任意形式大小写的关键字,如SELECT和select、SeLeCt的效果是一样的。每个SQL关键字都有对应的语法。关键字含义示例SELECT查找记录SELECT*FROMStudentWHEREClass=’3’DELETE删除记录DELETEFromMusicwhereID=’7’UPDATE更新记录UPDATEStudentSETAge=20WHERESid=‘1002’CREATE创建数据库、表等CREATETableStudentINSERT插入记录INSERTINTOStudent(Sid,Age)VALUES(‘1020’,19)常见的SQL关键字添加记录SQL添加记录的语法有如下两种:INSERTINTO...VALUES(...),用于插入单条记录。例如,如下的查询表示在Student表中插入一条记录,其中学号是1020,年龄是19。INSERTINTOStudent(Sid,Age)VALUES(‘1020’,19)INSERTINTO....(),用于同时插入多条记录,括号中是一个子查询,通常是一个SELECT语句。例如,如下的查询表示从Student2表中提取出所有的学号和年龄记录,插入到Student表中。INSERTINTOStudent(Sid,Age)(SELECTSid,AgeFROMStudent2)查询信息通用的查询信息的语法是SELECT...FROM...WHERE...,但其中可以应用一些关键字或符号来进行更复杂的查询,常用的关键字或符号有如下几种:星号(*),表示所有信息比较符号如>,>=,=等,需要注意的是,不等于用<>表示OR和ANDBETWEEN...AND...,用于指定值的连续范围IN,用于指定离散的数据范围NOT,用于取反LIKE,用于字符串匹配ORDERBY,对查询结果进行排序更新字段更新字段的通用语法是UPDATE...SET...WHERE...,可以对一条记录或多条记录同时进行修改。WHERE子句同样可以应用AND、OR、INT、BETWEEN...AND...、LIKE等关键字。例如,如下的查询选出Product表中所有价格大于400的商品,并将其价格修改为400。UPDATEProductSETPrice=400WHEREPrice>400连接表使用SQL语句可以将两个表通过共同字段连接起来,连接得到的新表中仅包含在共同字段上值相同的记录的组合。通过连接表可以进行多表查询,在SQL中,有两种方法可以连接表:直接调用多张表。在SELECT...FROM...WHERE中引用多张表,并在WHERE后指明这多张表的连接原则。如:SELECT*FROMStudent,Course,SCWHEREStudent.Sid=SC.sidANDSC.cid=Course.Cid使用JOIN关键字,语法为SELECT...FROM...JOIN...ON...WHERE...。如:SELECT*FROMStudentJOINSCONStudent.Sid=SC.Sid云数据库云数据库是运行在云计算平台中的数据库,例如AmazonEC2、GoGrid,、Salesforce和Rackspace。云数据库使企业能够用更少的室内硬件与维护花费来创建简单规模的数据库,而仅仅需要支付数据存储和运输的费用。云数据库按照部署模式可分为虚拟机映像和数据库即服务两类,每一类又可分为基于SQL的数据模型(SQLDataModel)和支持多种语言的数据模型(NoSQLDataModel,其中NoSQL是NotonlySQL的简写,即除了支持SQL语言外,还支持其他类似的语言)。云数据库虚拟机映像(VirtualMachineImage),用户可以在

温馨提示

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

评论

0/150

提交评论