您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > SQL第一章基本概念
第一章关系型数据库—基本概念和操作====================1数据库简史数据库是依照某种数据模型组织到一起,并存放在外存(主要指硬盘)中的数据集合。具有如下特点:(1)每个数据尽可能只有一个版本(无冗余),以便以最可靠和最优方式为多种应用服务;(2)数据独立于使用它的应用程序,以便使不同的应用程序用一致的方式对数据进行增、删、改、查;(3)数据库是由文件管理系统发展起来的,数据库是特殊的文件,数据库的数据是结构化或半结构化的,而文件的数据大多是非结构化的,当需要管理大量数据时,数据库比文件具有更高的效率和准确性。数据库大约出现于1960年代,当时占主导地位的是网状数据库和层次数据库。网状数据库有点像社会的人际关系,数据以自然的、随意的方式组织成网状,这种数据库过于复杂,发展过程中遇到很多困难,后来逐渐被边缘化了,我们很少能看到它的商业产品,但是网页的超链接就是网状数据结构,我们可以体会到,超链接使阅读方便快捷,但要在大量网页中准确快速的查找和定位数据又很困难(比如搜索引擎提供的垃圾数据太多)。层次数据库将数据组织成树形结构。树形结构是计算机软件中很重要的数据结构,树形结构的数据有明确的上下级和平级关系,但这种数据库在理论和实践上发展的不够好,后来也逐渐被边缘化了,但最近十几年,XML数据技术和面向对象技术的流行使层次数据库有再度走红的迹象。1970年代,IBM公司的一位研究员发表了一系列论文,奠定了关系模型的理论基础,他后来也获得了图灵奖。关系模型用数学理论奠定了关系数据库的理论基础,使关系数据库的商业产品抽象级别比较高,而且简单清晰,便于程序员理解和编程,到了1980年代便占据了市场的绝对主流,一直到现在也是如此。所以,大学本科阶段的数据库课程,讲解的内容几乎都是这种易于理解和使用的关系型数据库,虽然它本身有很多先天缺陷,不如网状数据库和层次数据库那样可以自然的方式表示和处理数据,但简单易用,受到了程序员等技术阶层的拥戴。2二维表格及其相互关系什么是关系型数据库?如果讲纯数学的关系理论,是很难懂的,在这一章里不讲理论,以后章节也尽量少讲。【重要说明:国内外的数据库教材,用很多篇幅讲关系理论。但这门课的教学内容以技术和技能为主,学术为辅,因为工程类专业的本科培养目标是为社会提供优质工程师而不是研究人员。实际工作中,很多程序员知道关系数据库的基本概念,也能熟练的编写数据库应用程序,但没几个人能说清楚关系理论,虽然他们在大学也学过。这说明,纯数学的关系理论对多数人的实际工作不重要,因为他们在实际工作中使用的是简单易用的SQL语言等东西,这些东西的基础是关系理论,但关系理论被数据库开发商深深的隐藏在底层,数据库的应用程序员或数据库管理员看到的是关系理论经过层层转换后的结果,不需要知道这些理论也能比较好的使用数据库,比如常用的SQL语言便是关系理伦的转换,当然知道一点理论更好,有利于素质培养,后续章节也要适当的结合实际说一点理论,但尽量少说。有个别同学将来考研可能是数据库方向,你得自学一点关系理论,课件讲的很不够,但对其它同学来说,课程讲的理论够用了。有一点要知道,计算机软件的理论基础多是由“不懂”计算机的数学家奠定的,而“懂得”计算机的计算机研究人员,多是做基础理论到应用的层层转换工作。比如关系型数据库,从关系理论到实用的SQL语言,数据库开发商要做若干层转换才可以,这些转换工作有很高的技术含量,但使用SQL语言的程序员和数据库系统管理员不需要知道这些转换细节,他们要做的主要是怎样利用数据库去做应用,为各行业的信息化提供应用服务。】如果说大白话,关系数据库是很容易懂的,虽然不够精确:关系数据库的基本内容是若干张二维表格,以及表格之间的关联。下面建立几张二维表格,并且建立表格之间的关系,从中说明关系数据库的几个基本概念。表1:学生表学号姓名出生日期性别籍贯院系10001张三1992.3.5男山东威海信工电子10006李四1992.6.30男河北沧州信工通讯11006王五1993.7.9男江苏镇江信工数媒我们很熟悉这种表格,表的第一行是“表头”说明每一列“是什么:”,表的第2-4行是数据,每一行数据是一条“记录”。“表头”有一行就够了,而记录可以有很多行。注意“学号”这一列,学号是不允许重复的,根据学号可以唯一确定一条记录。表2:教师表教师工号姓名性别院系9001刘一一女信工电子9210赵二二男信工计算机注意“工号”这一列,工号是不允许重复的,根据工号可以唯一确定一条记录。表3:课程表(本学期课程及任课教师)课程号课程名开课单位教师工号3001数据库信工90013400JAVA语言信工9210注意“课程号”这一列,是不允许重复的,根据课程号可以唯一确定一条记录。表3的“教师工号”列和表2的“教师工号”列是关联的,其数据只能来自表2。表4:选课表自然序号课程号学号13001100012300110006330011100643400100015340010006表4的“课程号”列与表3“课程表”关联,其数据只能来自表3.表4的“学号”列与表1“学生表”关联,其数据只能来自表1表4的“自然序号”作用是唯一的确定一条记录,因为其它列都不能唯一确定一条记录,所以加上了这一列。3从二维表格到关系型数据库上述的4张表及其关联关系。便构成了一个关系型数据库的模型,将其输入到某种关系数据库系统中,便是个关系型数据库。下面给出几个关系型数据库术语的定义,这些定义是工程级别的,不很严格,但是容易理解。1.一个关系数据库是由若干二维表和表之间的关联组成,这个库也叫一个“实例(instance)”。2表的第一行是“表头”,它并不是数据,而是说明每一列的数据应该“是什么”,以及取值范围和其它约束条件,“表头”的每个字段叫属性(attribute),属性的取值范围及其他约束条件叫域(field)。属性是描述数据的数据,叫元数据。下面对表1到表4的属性加上约束条件,使属性的描述更加严格。表5:学生表学号姓名出生日期性别籍贯院系整数,不能为空字符串,最大长度10,可以重名日期类型字符串字符串,最大长度为20字符串,最大长度为1010001张三1992.3.5男山东威海信工电子10006李四1992.6.30男河北沧州信工通讯11006王五1993.7.9男江苏镇江信工数媒表6:教师表教师工号姓名性别院系整数,不能为空字符串,最大长度10,可以重名字符串字符串,最大长度为109001刘一一女信工电子9210赵二二男信工计算机表7:课程表(本学期课程及任课教师)课程号课程名开课单位教师工号整数,不能为空字符串,最大长度10,可以重名字符串,最大长度为103001数据库信工90013400JAVA语言信工9210表8:选课表自然序号课程号学号整数,不能为空130011000123001100063300111006434001000153400100063每个表的各个属性不能重名,不同表的属性可以重名。一个表也可以叫一个关系,表中的数据,有的是本表实体的数据,有的是与其它表的联系,比如“表8:选课表”,“课程号”和“学号”列是联系。4每张表从第二行往后是数据部分、每一行叫一条记录,或一个元组。记录中的每一列可以叫一个字段。关系型数据库的主要任务是,根据用户输入的条件,增加、删除、修改、查询相应的记录,这些工作多数是由一种可编程的数据库语言---SQL语言去完成。SQL语言是比高级语言还高级的超级语言,比较容易学,后面的课程主要讲SQL语言。5每张表至少应该有一个,也可以有多个属性,可以唯一的确定一条记录,这种属性叫候选键(candidatekey),比如,表5:“学生表”的“学号”肯定是候选键,而“姓名”如果加上不允许重复的约束条件,也是候选键,否则不是。6当一个表中有多个候选键,可以从中任选一个作为主键(primekey),当一个表只有一个候选键,它自然就是主键。主键可以是数值,可以是字符串或其它类型,但无论如何主键的值不能为空,不同记录的主键值也不能重复。7外键(foreignkey):在本表中是主键,而在其它表中可能不是主键,叫外键。比如,“表8:选课表”的“课程号”和“学号”在该表中都不是主键,是可以重复的。而在“表7:课程表”和“表5:学生表”中,却是各自的主键。外键说明了一个表和另一个表的关联,是关系数据库中重要的键。比如在查询“表8:选课表”的记录时,可以根据该表的“课程号”和“学号”关联查询其它表中的课程名和学生姓名,这种关联查询是关系型数据库的重要特性。课后习题:========【注意:每一章后面的课后习题,是作业,也是期末考试主要的题源,期末试卷中约50分的试题就从这些题目中选取】1各用一句话说明以下概念关系数据库,实例,属性,域,记录(元组),候选键,主键,外键实验1使用MSSQLServer创建及管理关系数据库【注意:每一章后面的实验,是上机实验内容,也是期末考试题源,期末试卷中约20分的试题是实验,主要是测试你是否做了上机实验】在目前的数据库应用中,关系型数据库占了绝对优势。这门课程讲解和实验的主要内容也是关系型数据库的概念及其SQL语言。在关系型数据库的商用产品中,主要有Oracle,IBMDB2,MSSQLServer,MySQL(免费)等几个系列,每个系列又有不同版本,涵盖了高端的企业级应用到底端的部门级应用,此外还有MSAccess(含在Office套件中)等桌面版关系型数据库、智能手机嵌入式关系数据库等等。他们遵循相同的概念和设计原理,也都支持SQL语言,但具体操作方式有很多不同。上机实验只用其中一种:MSSQLServer。MSSQLServer主要有2005,2008,2012等“年份系列”版本,每个年份系列又大致可分为以下几个版本:精简版(expressedition):免费的,可用于学习及小型应用。标准版(standardedition):适合中小企业的收费版本。企业版(enterpriseedition):适合企业级应用,价格昂贵。此外,SQLServer还有网络版,开发版,评估版等等。在课堂上演示使用的是SQLServer2005精简版(expressedition)。对于本课程(数据库入门课程来说,使用这个版本足够了,而且不侵权。课堂演示使用的版本可能与实验室安装的SQLServer版本不同,但这无关紧要,只是在操作界面上有所差异而已。SQLServer2005精简版可以从微软网站免费下载,需要下载2个文件:1个是SQLServer数据库,另一个是数据库管理工具----前者安装在服务器上,安装完成后基本不用变动了;后者可以安装在服务器或另一台客户机上,它的作用是管理服务器上的数据库,是用户经常操作的。这2个文件已经放在课程FTP上,同学们可以从FTP下载到自己的电脑上。这个版本的功能足以满足课程需要。下面演示SQLServer2005精简版的安装。1首先安装数据库(图“实验1-1)安装到这一步时,最好如图选择“混合模式”(如果安装时不选,安装完后还能修改)。如上图,用户登录SQLServer有两种身份验证模式:(1)windows身份验证:相对于混合模式更加安全,仅根据用户的windows权限来进行身份验证,称为“信任连接”,但是在远程连接的时候会因验证的缘故,无法登陆。(2)混合模式验证:当本地用户登录时采用windows身份验证建立信任连接,当远程用户访问时由于未通过windows身份认证而进行sqlserver认证(默认使用用户名sa登录,sa是SQLServer为数据库管理员特设的用户名,改用户名不能修改),建立“非信任连接”,从而使得远程用户也可以登录。数据库安装完成后,按“开始—所有程序”出现以下界面:(图“实验1-2)不用更改其中的设置,继续安装数据库管理工具。2然后安装数据库管理工具该管理工具可以与数据库安装在同一台机器(服务器)上,也可以安装在另一台机器(客户机)上远程管理数据库,在实际应用中远程管理更常见,但在课堂上还是安装在同一台机器上吧。安装完成后,按“开始—所有程序”
本文标题:SQL第一章基本概念
链接地址:https://www.777doc.com/doc-2860492 .html