MYSQL

来源:互联网 发布:win7优化技巧 编辑:程序博客网 时间:2024/05/17 07:18

 <!--@page { size: 8.27in 11.69in; margin: 0.79in }P { margin-bottom: 0.08in }--><!--@page { size: 8.27in 11.69in; margin: 0.79in }P { margin-bottom: 0.08in }-->

第一章 MySQL入门与初步


<!--@page { size: 8.27in 11.69in; margin: 0.79in }H2 { margin-top: 0in; margin-bottom: 0in; text-align: center; page-break-inside: avoid; page-break-after: auto }H2.western { font-family: "Nimbus Roman No9 L", serif; font-size: 16pt; font-weight: medium }H2.cjk { font-family: "DejaVu Sans"; font-size: 16pt; font-weight: medium }H2.ctl { font-family: "DejaVu Sans"; font-size: 12pt; font-weight: medium }P { margin-bottom: 0.08in }-->

1.1 MySQL简介

<!--@page { size: 8.27in 11.69in; margin: 0.79in }P { margin-bottom: 0.08in }-->

MySQL的官方发音是“MyEss Que Ell”(不是 MY-SEQUEL )


<!--@page { size: 8.27in 11.69in; margin: 0.79in }H2 { margin-top: 0in; margin-bottom: 0in; text-align: center; page-break-inside: avoid; page-break-after: auto }H2.western { font-family: "Nimbus Roman No9 L", serif; font-size: 16pt; font-weight: medium }H2.cjk { font-family: "DejaVu Sans"; font-size: 16pt; font-weight: medium }H2.ctl { font-family: "DejaVu Sans"; font-size: 12pt; font-weight: medium }P { margin-bottom: 0.08in }-->

1.2 关系数据库管理系统

<!--@page { size: 8.27in 11.69in; margin: 0.79in }H3 { margin-top: 0in; margin-bottom: 0in; line-height: 150%; text-align: left; page-break-inside: avoid; page-break-after: auto }H3.western { font-family: "Arial", sans-serif; font-size: 12pt; font-weight: medium }H3.cjk { font-family: "黑体", "SimHei"; font-size: 12pt; font-weight: medium }H3.ctl { font-family: "DejaVu Sans"; font-size: 12pt; font-weight: medium }P { margin-bottom: 0.08in }-->

1.2.1 关系数据库系统

<!--@page { size: 8.27in 11.69in; margin: 0.79in }P { margin-bottom: 0.08in }-->

所谓RDBMS,即关系数据库管理系统

<!--@page { size: 8.27in 11.69in; margin: 0.79in }H3 { margin-top: 0in; margin-bottom: 0in; line-height: 150%; text-align: left; page-break-inside: avoid; page-break-after: auto }H3.western { font-family: "Arial", sans-serif; font-size: 12pt; font-weight: medium }H3.cjk { font-family: "黑体", "SimHei"; font-size: 12pt; font-weight: medium }H3.ctl { font-family: "DejaVu Sans"; font-size: 12pt; font-weight: medium }P { margin-bottom: 0.08in }-->

为了进一步了解一个RDBMS是由什么构成的,你必须先了解关系模型。下列情况出现在一个关系模型中:

  • 数据的基础项是关系。

  • 在这些表上的操作只产生关系(关系型闭合)。

什么是关系?这是一个描述两个集合的元素如何相互联系或如何一一对应的数学概念。因此,关系模型是建立在数学基础上的。然而,对你来说,关系只是一个带有一些特殊属性的表,一个关系模型把数据组织到表中,而且仅在表中。客户、数据库设计者、数据库系统管理员和用户都以同样的方式—即从表中—查看数据。那么,表就是关系模型的近义词。

一个关系型表有一组命名的属性(at t r i b u t e )或列,以及一组元组(tu p l e)或行。有时列被称为域,行被称为记录,列和行的交集通常被叫做单元。列标示位置,有作用域或数据类型,例如字符或整数。行自己就是数据。

一个关系表必须符合某些特定条件,才能成为关系模型的一部分:

1、贮存在单元中的数据必须是原子的。

每个单元只能存贮一条数据,这也叫信息原则(InformationPrinciple)。尽管在过去的数年中按某些违反这一条的方式已经建立了许多系统,但违反这一条将不能运用良好的设计原则。当一个单元包含多于一条的信息时,这叫做信息编码(informationcoding )。在这样的情况下,是否采用违背理论的方案是一个设计的选择问题,尽管在多数情况下,结果证明这对数据的完整性是一不利的。

2、贮存在列下的数据必须具有相同数据类型。

3、每行是唯一的(没有完全相同的行)。

4、列没有顺序。

5、行没有顺序。

6、列有一个唯一性的名称。

除了表和它们的属性,关系模型有它自己特殊的操作。不需要深入研究关系型数学,只需说明这些操作可能包括列的子集、行的子集、表的连接以及其他数学集合操作(如联合)等就足够了。真正要知道的事情是这些操作把表当作输入,而将产生的表作为输出。

S Q L 是当前RD B M S A N S I标准语言,它包含这些关系型操作。允许数据操作或数据处理的主要语句是SE L E C T I N S E RT UP D AT E D E L E T E。因此,这些数据处理操作中任何一个都是一个事务。

允许数据定义或结构化处理的基本语句是CR E AT E A LT E R DR O P 。关系模型要求的最后一件事是两个基础的完整性原则。它们是实体完整性原则(en t i t y integrity rule )和引用完整性原则(referentialintegrity rule )。首先,让我们看看两个定义:

1、主键(primarykey )是能唯一标识行的一列或一组列的集合。有时,多个列或多组列可以被当作主键。

2、由多个列构成的主键被称为连接键(concatenatedkey )、组合键(compound key),或者更常称为复合键(compositekey )。

数据库设计者决定哪些列的组合能够最准确和有效地反映业务情形,这并不意味着其他数据未被存贮,只是那一组列被选作主键而已。

剩余有可能被选为主键的列被叫做候选键(candidatekey )或替代键(alternate key)。一个外键(foreign key)是一个表中的一列或一组列,它们在其他表中作为主键而存在。一个表中的外键被认为是对另外一个表中主键的引用。实体完整性原则简洁地表明主键不能全部或部分地空缺或为空,引用完整性原则简洁地表明一个外键必须为空或者与它所引用的主键当前存在的值相一致。

一个RD B M S 就是一个建立在前面这些关系模型基础上的,一般能满足所提到的全部要求

DB M S 。但是,在7 0 年代末到80 年代初,R D B M S 开始销售的时候,SQ L 超越了本质为非关系型的系统,受到普遍欢迎,并被称作关系型。

1.2.2 数据库系统的发展

1969年美国的IBM公司开发了第一个数据库系统IMS。这是一个层次数据库系统,在数据库系统发展史上有着重要的地位。同年,美国的数据系统语言委员会(CODASYL)下属的数据库任务组提出了著名的DBTG报告,并在1970年提出了该报告的修订版。这份报告定义了数据库操纵语言、模式定义语言和子模式定义语言的概念。数据库操纵语言用于编写操纵概念视图的应用程序,模式定义语言用来编写概念视图和内部视图相结合的模式程序。在七十年代,开发了许多遵循DBTG报告的网状数据库系统,如:IDMS,IDS,DMSIIOO等。七十年代初,E.F.Codd提出了关系数据模型的概念,提出了关系代数和关系演算。在整个七十年代,关系数据库从理论到实践都取得了辉煌成果。在理论上,确立了完整的关系理论、数据依赖理论以及关系数据库的设计理论等等;在实践上,开发了许多著名的关系数据库系统,如:systemR, INGRES,ORACLE等。1986年美国国家标准协会(ANSI)通过了关系数据库查询语言SQL的文本标准。进入八十年代以后,随着计算机硬件技术的提,使得计算机应用不断深入,产生了许多新的应用领域,如:计算机辅助设计、计算机辅助教学、计算机辅助制造、计算机辅助工程、计算机集成制造、办公自动化、地理信息处理、智能信息处理等等。这些新的应用领域对数据库系统提出了新要求。由于没能设计出一个统一的数据模型来表示这些新型数据及其相互联系,所以出现了百家争鸣的局面,产生了演绎数据库(逻辑数据库,知识库)、面向对象数据库、工程数据库、时态数据库、地理数据库、模糊数据库、积极数据库、…等新型数据库的研究。到八十年代后期和九十年代初期,出现了面向对象数据库系统,如:GemStone,VBASE, ORION, Iris等。到目前为止,真正的新一代数据库系统还没有出现。

1.2.3 与数据库系统通讯

结构化查询语言(StructuredQuery Language SQL)是当今主要的查询语言,它主要用于管理主流类型的DB M S —关系型D B M S RD B M S )。所有与数据库相关的通信往来都将通过DB M S 完成,为了做这件事,你可以使用SQ L 或其他类似的东西。数据库系统管理员(DB A )使用查询语言来建立并维护数据库,用户使用查询语言来访问数据库并查看或更改数据。

1.2.4 MySQL的体系结构

因为MySQL 采用的是客户机/服务器体系结构,所以你在使用MySQL 时存取数据时,必须至少使用两个或者说两类程序:

1、一个位于存放您的数据的主机上的程序——数据库服务器。数据库服务器监听从网络上传过来的客户机的请求并根据这些请求访问数据库的内容,以便向客户机提供它们所要求的信息。

2、连接到数据库服务器的程序——客户机,这些程序是用户和服务器交互的工具,告诉服务器需要什么信息的查询。

MySQL分发包包括服务器和几个客户机程序。可根据要你要达到的目的来选择使用客户机。最常用的客户机程序为mysql,这是一个交互式的客户机程序,它能发布查询并看到结果。其他的客户机程序有:mysqldump mysqlimport,分别导出表的内容到某个文件或将文件的内容导入某个表;mysqladmin用来查看服务器的状态并完成管理任务,如告诉服务器关闭、重起服务器、刷新缓存等。如果具有现有的客户程序不满足你的需要,那么MySQL还提供了一个客户机编程库,可以编写自己的程序。客户机编程库可直接从C 程序中调用,如果希望使用C 语言以外的其他语言,还有几种其他的接口可用。

MySQL的客户机/服务器体系结构具有如下优点:

1、服务器提供并发控制,使两个用户不能同时修改相同的记录。所有客户机的请求都通过服务器处理,服务器分类辨别谁准备做什么,何时做。如果多个客户机希望同时访问相同的表,它们不必互相裁决和协商,只要发送自己的请求给服务器并让它仔细确定完成这些请求的顺序即可。

2、不必在数据库所在的机器上注册。MySQL可以非常出色的在因特网上工作,因此您可以在任何位置运行一个客户机程序,只要此客户机程序可以连接到网络上的服务器。

当然不是任何人都可以通过网络访问你的MySQL服务器。MySQL含有一个灵活而又有成效的安全系统,只允许那些有权限访问数据的人访问。而且可以保证用户只能够做允许他们做的事。

1.2.5总结

本节简单介绍了一下关系数据库系统的基础知识,真正要详尽描述数据库系统的理论,完全可以写成几本书。读完本节之后,笔者希望读者能够了解什么是关系模型、SQL语言以及MySQL的系统结构,这不仅对继续阅读本书有利,也可以在读者获取相关知识时,起到一个启发的作用。

原创粉丝点击