数据库(大话数据库)—概述(第一章)—基本知识点

目录

 

第一章 概述

1.1 什么是数据库

1.2 为什么要使用数据库

1.3 数据库的基本概念

1.4 数据库的历史

1.5 关系数据库

1.6 为什么选择SQL Server

1.7  SQL语言

1.8  SQL标准

1.9  10分钟探索IDE


第一章 概述

1.1 什么是数据库

什么是数据库?

       数据库就是指存放数据的仓库。如同水库是存水的,军火库是存军火的。其次并非所有计算机程序都需要用到数据库,但是如果希望你的程序具备对大量的数据的存储、整理(经常性的对这些数据进行操作)、分析等,就需要涉及数据库了。

       SQL Server、MySQL、Oracle、DB2等这些数据库管理系统,可以理解为不同厂商或组织开发的性质差不多的关系型数据库管理系统,操作都大同小异。进一步理解为存储和管理数据的工具就行了。

1.2 为什么要使用数据库

拿Excel来做比较:

数据库(大话数据库)—概述(第一章)—基本知识点

看起来一目了然,但如果要添加新的员工信息、更换老员工信息、员工数量超过500人。数据量过多就会很容易发生错误。而且不能避免重复添加数据,可操作性很低

       这些问题用关系型数据库的话就迎刃而解了,用数据库创建如下三张数据表,一次就解决问题了。

数据库(大话数据库)—概述(第一章)—基本知识点

       可以发现公司表中全部是各分公司的信息表。部门表中全部是部门的信息,同时有一个项是来说明这个部门属于哪一个分公司。员工表中全部是员工个人信息,同时也有一个项来说明其属于哪一个部门。这样就可以顺着关系一层层的理清楚那个员工具体属于那个公司的那个部门。同时,要调动一个员工时,只需要更换员工所属部门就可以了。要改变某个主管的信息也非常简单,直接改变就是了,因为一个主管实际上在数据库中只存在一条记录。

       此例子只是用来理解数据库,此时看起来并不是很直观,感觉实现很困难,在后面学完第四章之后就会发现很简单就能实现。

1.3 数据库的基本概念

DBMS:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据,数据库管理员也可以通过DBMS进行数据库的维护工作。可以使多个应用程序和用户用不同的方法在同时或不同时刻去建立、修改和访问数据库。DBMS提供数据定义语言DDL(Data Definition Language)与数据操作语言DML(Data Manipulation Language)供用户定义数据库的模式结构与权限约束,实现对数据的追加、删除等操作。

       RDBMS:关系型数据库管理系统(Relational Database Management System)的概念更简单,就是在数据库管理系统的基础上增加关系。通过数据、关系和对数据的约束三者组成的数据模型来存放和管理数据。

       数据库:在一个数据库管理系统中,可以有很多个数据库,如下图所示。

数据库(大话数据库)—概述(第一章)—基本知识点

1.4 数据库的历史

       数据库大体可以分为网状数据库、层次数据库和关系数据库三类。

       数据库从出生到现在只半个世纪左右,已经形成了坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越多的研究者加入。数据库的诞生和发展给计算机信息管理带来了一场巨大的革命。几十年来,国内外己经开发建设了成千上万个数据库,它已成为企业、部门乃至个人日常工作、生产和生活的基础设施。同时,随着应用的扩展与深入,数据库的数量和规模越来越大,数据库的研究领域也已经大大地拓广和深化了。

 在数据库诞生之前:那时的数据管理非常简单。通过大量的分类、比较和表格绘制的机器运行数百万穿孔卡片来进行数据的处理,其运行结果在纸上打印出来或者制成新的穿孔卡片。数据管理就是对所有这些穿孔卡片进行物理储存和处理

 1951年,雷明顿兰德公司(Remington Rand lnc)的一种叫做UNIVAC 1的计算机推出了一种一秒钟可以输入数百条记录的磁带驱动器,从而引发了数据管理的革命

1956年,IBM生产出第一个磁盘驱动器—the Model 305 RAMAC。此驱动器有50个盘片,每个盘片直径是2英尺,可以储存5MB的数据。

1961年,通用电气公司(General Electric Company)的查尔斯•巴赫曼(Charles William Bachman)成功地开发出世界上第一个网状DBMS,也是第一个数据库管理系统——集成数据存储(Integrated Data Store,IDS),奠定了网状数据库的基础

1968年开发的IMS (Information Management System),是一种适合其主机的层次数据库。这是IBM公司研制的最早的大型数据库系统程序产品

1969年,埃德加•科德发明了关系数据库。1970年关系模型建立之后,IBM公司在 San Jose实验室增加了更多的研究人员研究这个项目,这个项目就是著名的System R。 其目标是论证一个全功能关系DBMS的可行性。该项目结束于1979年,完成了第一个实现SQL的DBMS。然而IBM对IMS的承诺阻止了System R的投产,一直到1980年System R才作为一个产品正式推向市场。

1970年, IBM的研究员埃德加•科德博士在刊物《Communication of the ACM》上发表了一篇名为 “A Relational Model of Data for Large Shared Data Banks” 的论文,提出了关系模型的概念,奠定了关系模型的理论基础。

1973年,加州大学伯克利分校的Michael Stonebraker和Eugene Wong利用System R已发布的信息开始开发自己的关系数据库系统Ingres。他们开发的Ingres项目最后由 Oracle公司、Ingres公司以及硅谷的其他厂商所商品化。

1976年,霍尼韦尔公司(Honeywell)开发了第一个商用关系数据库系统—Multics Relational Data Store关系型数据库系统以关系代数为坚实的理论基础。代表产品有 Oracle、IBM公司的DB2、微软公司的MS SQL Server以及Informix、ADABASD等。

1979年,Oracle公司引入了第一个商用SQL关系数据库管理系统。

1983年,IBM推出了DB2数据库产品。

1985年,为Procter & Gamble系统设计的第一个商务智能系统产生

1987年,赛贝斯公司发布了Sybase SQL Server系统,用于UNIX环境。

           1991年,W.H.Billlnmon发表了 “构建数据仓库”。

转眼到了1998年,微软发布了Microsoft SQL Server 7.0版本该版本在数据存储、查询、可伸缩性方面有了巨大的改进,也使它有了和IBM的 DB2、甲骨文的Oracle、赛贝斯的Sybase ASE系统有了竞争的本钱。

2012年3月,微软发布Microsoft SQL Server 2012 RC0,同期市面上应用非常广泛的 还有Oracle,也在Oracle 11G之后发布了Oracle 12C,MySQL这个开源数据库也发展到了MySQL 6了,IBM的DB2也发展到V10版本。

20世纪80年代开始数据库技术就进入了关系数据库时代。而数据库经历了网状数据库、 层次数据库和关系数据库三个时代,我们现在接触到的基本上都是关系型数据库,而 Microsoft SQL Server、MySQL、Oracle、DB2等也只是关系数据库中的一种。

随着互联网Web 2.0网站的兴起传统的关系数据库在应付Web 2.0网站,特别是在超大规模和高并发的SNS类型的Web 2.0纯动态网站中已经显得力不从心,暴露出很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。但是非关系型数据库并未形成一定标准,各种产品层出不穷,内部混乱,各种项目还需时间来检验

          掌握好一种数据库之后花很短的时间就可以掌握其他几种数据库。选择上手最容易,帮助文档最智能的Microsoft SQL Server作为学习的载体是明智之选。既然关系数据库发展到了顶峰,我们就有必要进一步解释一下:到底啥才是关系数据库。

1.5 关系数据库

       关系数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。现实世界中的各种实体以及实体之间的各种联系均用关系模型来表示。关系模型是由埃德加•科德于1970年首先提出的,并配合“科德十二定律” 。如今虽然对此模型有一些批评意见,但它仍是数据存储的传统标准标准数据查询语言SQL就是一种基于关系数据库的语言,这种语言执行对关系数据库中数据的检索和操作。关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

数据库(大话数据库)—概述(第一章)—基本知识点

所谓的关系,说的就是不同表之间的关系。那么这些表又是怎么被设计出来的呢?这就要说到另外一个在设计程序中非常有名的东东一实体关系模型(Entity-Relationship Model,E-R.Model),它是陈品山(Peter P.S Chen)博士于 1976年提出的一套数据库的设计工具,他运用真实世界中事物与关系的观念,来解释数据库中抽象的数据架构。实体关系模型利用图形的方式(实体一关系图(Entity-Relationship Diagram))来表示数据库的概念设计,有助于设计过程中的构思及沟通讨论。

关系模型就是指二维表格模型,因而一个关系数据库就是由二维表及其之间的联系组成的一个数据组织。当前主流的关系数据库有Oracle、DB2、Microsoft SQL Server、 Microsoft Access、MySQL等。

1.6 为什么选择SQL Server

          首先,微软的产品一贯传统良好的用户体验,无论界面操作还是系统帮助,都非常人性化。就这两点,对初学的人来说绝对是首选,因为相对入门来说,几种数据库查询语言和控制语言差异并不大,那么我们就选最容易学的入门。否则只一个安装过程就把我们给弄昏了,还咋学呢?

           Oracle和Microsoft SQL Server还有一个对比,前者非常灵活,你需要哪个功能就购买哪个功能,不需要则不用多花钱,但是Microsoft SQL Server却是一次购买所有的,无论你是否需要。这看似是一个缺点,但作为初学者来说就不是缺点了,因为我们现在根本不知道该买什么,不该买什么。

如果学习数据库只是用于软件开发而不是作为数据库管理员使用的话,那么学什么数据库都差不多,以后并不需要专门去学什么,因为几种流行数据库的数据检索语句都遵循ANSI SQL标准,不同的是它们各自的维护语法。另外,从SQL Server 2000开始,Microsoft SQL Server也逐渐被大型的项目所接受了,而发展到当前的 2012版本,很多方面已经丝毫不逊色,甚至在云计算方面已经超越Oracle了。

1.7  SQL语言

       SQL (Structured Query Language)结构化查询语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。读音可以是S-Q-L,逐个发音,不过大多数牛人更习惯读作“sequel”。SQL是高级的非过程化编程语言,是沟通数据库服务器和客户端的重要工具,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的SQL接口。以记录集合作为操作对象,所有SQL语句接受集合作输入返回集合作为输出这种集合特性允许一条SQL 语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使它具有极大的灵活性和强大的功能。多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL 语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。

SQL语言包含以下3个部分。

       •数据定义语言(Data Definition Language, DDL),定义(definition)。例如:CREATE、DROP、ALTER 等语句。

       •数据操作语言(Data Manipulation Language,DML),操作(make)。例如:INSERT (插入)、UPDATE (修改)、DELETE (删除)等语句。

       •数据控制语言(Data Controlling Language,DCL),控制(control)。例如:GRANT、REVOKE、COMMIT、ROLLBACK 等语句。

“T-SQL语言”

       T-SQL,全称Transact-SQL。它也遵循SQL标准,但是在这个基础上,做了少量的扩展。换句话说,T-SQL语言是遵循SQL标准的,专门为SQL Server做了少量扩展的扩展SQL语言。(在本书范围内所讲的99%的T-SQL语法,都是完全遵循SQL标准的。)

1.8  SQL标准

       ANSI SQL标准就是SQL标准。这个标准是 ISO和IEC发布的SQL国际标准,在1992年制定了一个标志性的版本,称为SQL-92。1999年,再次修订。目前最新的版本是SQL-2008,而这期间还有SQL-2003、SQL-2006。从 SQL-99到SQL-2008,可以看到标准修订的周期越来越短,多少也反映了对技术的需求变化之快。当然,这些事并不是我们这种浅层次应用的菜鸟需要担忧的,因为国际标准出来,MS Access、DB2、Informix、MySQL、MS SQL Server、Oracle、Sybase等都必须去遵循。另外,从SQL-99的改进,主要是针对XML、Window函数、Merge语句等,特别是对XML的增强。对于基本的数据定义和操作语言并有更多的修正,所以目前大部分的数据书籍更多还是重点在ANSI SQL的标准范畴内。

数据库(大话数据库)—概述(第一章)—基本知识点

1992年标准就是一个所有关系数据库都遵从的数据操作语言标准。1974年,IBM的Ray Boyce和Don Chamberlin将Codd关系数据库的12条准则的数学定义以简单的关键字语法表现出来,里程碑式地提出了SQL语言。SQL语言的功能包括查询、操纵、定义和控制,是一个综合的、通用的关系数据库语言,同时又是一种高度非过程化的语言,只要求用户指出做什么而不需要指出怎么做。SQL集成实现了数据库生命周期中的全部操作。

除了SQL标准之外,大部分SQL数据库程序都拥有它们自己的私有扩展。当然,纯粹的数据查询、增加、删除、修改是一致的,主要在控制语言、附加语言元素等方面有一些差异,作为一个程序员来说,学什么数据库对后面影响都不大,但要做DBA (数据库管理员)就必须选择你对口的数据了

1.9  10分钟探索IDE

 IDE (继承编程环境)

SQL Server 2008安装:\示例数据库\SQL2008.Adventure Works_All_Databases.x86这个文件安装了。后续会常使用到。

问题

1.数据库是什么?

       答:数据库是存放数据的仓库。在一个数据库管理系统中,可以有很多个数据库。

2. DBMS的中文和英文全称分别是什么?

       答:DBMS中文名:数据库管理系统。英文名:Database Management System。DBMS是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。

3.目前数据库市场上主流的数据库有哪些,同时说出对应的厂商名称?

       答:微软:Microsoft SQL server 、Informix、ADABASD 等

              赛贝斯:Sybase ASE系统,用于UNIX环境。

              甲骨文:Oracle

             IBM:DB2

             瑞典MySQL AB 公司:MySQL(由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品)

             注:IBM(国际商业机器公司)或万国商业机器公司,简称IBM(International Business Machines Corporation)。

4.只要遵循SQL标准的数据库系统,其SQL语法是否完全一样?

       答:不完全一样。SQL的标准语法差不多,不过不同的数据库在处理一些复杂问题的时候,有一些区别。因为SQL的标准没有制定解决某个问题的标准语法,而实际工作中又必须解决这类问题,于是不同的数据库厂商就提出了自己的解决方案。

 5.SQL标准的解释。

       答:SQL标准也就是ANSI SQL标准,由ISO和IEC发布的SQL国际标准。

       “美国国家标准化组织(ANSI)”是一个核准多种行业标准的组织。

 

注:本博客是本人在学习《大话数据库》后整理的笔记,用于自己以后的复习与回顾,博客中的照片是本人从《大话数据库》中截取的。