第一章 数据库基础知识本章以概念为主,主要是了解数据库的基本概念,数据库技术的发展,数据模型,重点是关系型数据。
第一节:信息,数据与数据处理一、信息与数据:1、信息:是现实世界事物的存在方式或运动状态的反映。或认为,信息是一种已经被加工为特定形式的数据。
信息的主要特征是:信息的传递需要物质载体,信息的获取和传递要消费能量;信息可以感知;信息可以存储、压缩、加工、传递、共享、扩散、再生和增值2、数据:数据是信息的载体和具体表现形式,信息不随着数据形式的变化而变化。数据有文字、数字、图形、声音等表现形式。
3、数据与信息的关系:一般情况下将数据与信息作为一个概念而不加区分。二、数据处理与数据管理技术:1、数据处理:数据处理是对各种形式的数据进行收集、存储、加工和传输等活动的总称。
2、数据管理:数据收集、分类、组织、编码、存储、检索、传输和维护等环节是数据处理的基本操作,称为数据管理。数据管理是数据处理的核心问题。
3、数据库技术所研究的问题不是如何科学的进行数据管理。4、数据管理技术的三个阶段:人工管理,文件管理和数据库系统。
第二节:数据库技术的发展一、数据库的发展:数据库的发展经历了三个阶段:1、层次型和网状型: 代表产品是1969年IBM公司研制的层次模型数据库管理系统IMS。2、关系型数据型库: 目前大部分数据库采用的是关系型数据库。
1970年IBM公司的研究员E.F.Codd提出了关系模型。其代表产品为sysem R和Inges。
3、第三代数据库将为更加丰富的数据模型和更强大的数据管理功能为特征,以提供传统数据库系统难以支持的新应用。它必须支持面向对象,具有开放性,能够在多个平台上使用。
二、数据库技术的发展趋势:1、面向对象的方法和技术对数据库发展的影响:数据库研究人员借鉴和吸收了面向对旬的方法和技术,提出了面向对象数据模型。2、数据库技术与多学科技术的有机组合:3、面向专门应用领域的数据库技术三、数据库系统的组成:数据库系统(DBS)是一个采用数据库技术,具有管理数据库功能,由硬件、软件、数据库及各类人员组成的计算机系统。
1、数据库(DB):数据库是以一定的组织方式存放于计算机外存储器中相互关联的数据集合,它是数据库系统的核心和管理对象,其数据是集成的、共享的以及冗余最小的。2、数据库管理系统(DBMS):数据库管理系统是维护和管理数据库的软件,是数据库与用户之间的界面。
作为数据库的核心软件,提供建立、操作、维护数据库的命令和方法。3、应用程序:对数据库中数据进行各种处理的程序,由用户编写。
4、计算机软件:5、计算机硬件:包括CPU、内存、磁盘等。要求有足够大的内存来存放操作系统、数据库管理系统的核心模块以及数据库缓冲;足够大的磁盘能够直接存取和备份数据;比较主的通道能力;支持联网,实现数据共享。
6、各类人员。四、数据库系统的特点:1、数据共享:2、面向全组织的数据结构化:数据不再从属于一个特定应用,而是按照某种模型组织成为一个结构化的整。
它描述数据要身的特性,也描述数据与数据之间的种种联系。3、数据独立性:4、可控数据冗余度:5、统一数据控制功能:数据安全性控制:指采取一定的安全保密措施确保数据库中的数据不被非法用户存取而造成数据的泄密和破坏;数据完整性控制:是指数据的正确性、有效性与相容性。
并发控制:多个用户对数据进行存取时,采取必要的措施进行数据保护;数据恢复:系统能进行应急处理,把数据恢复到正确状态。第三节:数据模型一、数据组织:关系型数据库中的数据层次如下:1、数据项(field):又称字段,用于描述实体的一个属性,是数据库的基本单位。
一般用属性名作项名;2、记录(Record):又称为结点,由若干个数据项组成,用于描述一个对象;3、文件(File):由若干个记录组成;4、数据库(Data Base):由逻辑相关的文件组成。二、数据模型:数据的组织形式称为数据模型,它决定 数据(主要是结点)之间联系的表达方式。
主要包括层次型、网状型、关系型和面向对象型四种。层次型和网状型是早期的数据模型,又称为格式化数据系统数模型。
以上四种模型决定了四种类型的数据库:层次数据库系统,网状数据库系统,关系型数据库系统以及面向对象数据库系统。目前微机上使用的主要是关系型数据库。
1、层次型:是以记录为结点的有向树;图如教材P7图1--22、网状型:树的集合,它的表示能力以及精巧怀强于层次型,但独立性下降。3、关系型:在关系型中,数据被组织成若干张二维表,每张表称为一个关系。
一张表格中的一列称为一个“属性”,相当于记录中的一个数据项(或称为字段),属性的取值范围称为域。表格中的一行称为一个“元组”,相当于记录值。
可用一个或若干个属性集合的值标识这些元组,称为“关键字”。每一行对应的属性值叫做一个分量。
表格的框架相当于记录型,一个表格数据相当于一个同质文件。所有关系由关系的框架和若干元组构成,或者说关系是一张二维表。
关系型。
判断题:对错错错对对错对错对
填空题:1.操作系统 2.order by , group by 3.表,元组,属性。4.数据结构,完整性约束 5.关系 6.一对一,一对多,多对多 7.创建,修改,删除 8.min,sum 9.视图,虚拟或查询 10.exec 11. 系统存储过程,用户定义存储过程
用SQL建立索引 为了给一个表建立索引,启动任务栏SQL Sever程序组中的ISQL/w程序。
进入查询窗口后,输入下面的语句: CREATE INDEX mycolumn_index ON mytable (myclumn) 这个语句建立了一个名为mycolumn_index的索引。 你可以给一个索引起任何名字,但你应该在索引名中包含所索引的字段名,这对你将来弄清楚建立该索引的意图是有帮助的。
注意: 在本书中你执行任何SQL语句,都会收到如下的信息: This command did not return data,and it did not return any rows 这说明该语句执行成功了。 索引mycolumn_index对表mytable的mycolumn字段进行。
这是个非聚簇索引,也是个非唯一索引。(这是一个索引的缺省属性) 如果你需要改变一个索引的类型,你必须删除原来的索引并重建 一个。
建立了一个索引后,你可以用下面的SQL语句删除它: DROP INDEX mytable。 mycolumn_index 注意在DROP INDEX 语句中你要包含表的名字。
在这个例子中,你删除的索引是mycolumn_index,它是表mytable的索引。 要建立一个聚簇索引,可以使用关键字CLUSTERED。)
记住一个表只能有一个聚簇索引。 (这里有一个如何对一个表建立聚簇索引的例子: CREATE CLUSTERED INDEX mycolumn_clust_index ON mytable(mycolumn) 如果表中有重复的记录,当你试图用这个语句建立索引时,会出现错误。
但是有重复记录的表也可以建立索引;你只要使用关键字ALLOW_DUP_ROW把这一点告诉SQL Sever即可: CREATE CLUSTERED INDEX mycolumn_cindex ON mytable(mycolumn) WITH ALLOW_DUP_ROW 这个语句建立了一个允许重复记录的聚簇索引。 你应该尽量避免在一个表中出现重复记录,但是,如果已经出现了,你可以使用这种方法。
要对一个表建立唯一索引,可以使用关键字UNIQUE。对聚簇索引和非聚簇索引都可以使用这个关键字。
这里有一个例子: CREATE UNIQUE COUSTERED INDEX myclumn_cindex ON mytable(mycolumn) 这是你将经常使用的索引建立语句。 无论何时,只要可以,你应该尽量对一个对一个表建立唯一聚簇索引来增强查询操作。
最后,要建立一个对多个字段的索引──复合索引──在索引建立语句中同时包含多个字段名。下面的例子对firstname和lastname两个字段建立索引: CREATE INDEX name_index ON username(firstname,lastname) 这个例子对两个字段建立了单个索引。
在一个复合索引中,你最多可以对16个字段进行索引。 用事务管理器建立索引 用事务管理器建立索引比用SQL语句容易的多。
使用事务管理器,你可以看到已经建立的索引的列表,并可以通过图形界面选择索引选项。 使用事务管理器你可以用两种方式建立索引:使用Manage Tables窗口或使用Manage Indexes窗口。
要用Manage Tables 窗口建立一个新索引,单击按钮Advanced Options(它看起来象一个前面有一加号的表)。这样就打开了Advanced Options对话框。
这个对话框有一部分标名为Primary Key要建立一个新索引,从下拉列表中选择你想对之建立索引的字段名。 如果你想建立一个对多字段的索引,你可以选择多个字段名。
你还可以选择索引是聚簇的还是非聚簇的。在保存表信息后,索引会自动被建立。
在Manage Tables窗口中的字段名旁边,会出现一把钥匙。 你已经为你的表建立了“主索引”。
主索引必须对不包含空值的字段建立。 另外,主索引强制一个字段成为唯一值字段。
要建立没有这些限制的索引,你需要使用Manage Indexes窗口。从菜单中选择Manage|Indexes,打开Manage Indexes 窗口。
在Manage Indexes 窗口中,你可以通过下拉框选择表和特定的索引。 (见图11。
2)。要建立一个新索引,从Index下拉框中选择New Index。
然后就可以选择要对之建立索引的字段。单击按钮Add,把字段加人到索引中。
数据库是“按照数据结构来组织、存储和管理数据的仓库.J.Martin给数据库下了一个比较完整的定义:数据库是存储在一起的相关数据的集合,这些数据是结构化的,无有害的或不必要的冗余,并为多种应用服务;数据的存储独立于使用它的程序;对数据库插入新数据,修改和检索原有数据均能按一种公用的和可控制的方式进行。
当某个系统中存在结构上完全分开的若干个数据库时,则该系统包含一个“数据库集合”。 数据库的基本结构分三个层次,反映了观察数据库的三种不同角度。
(1)物理数据层。 它是数据库的最内层,是物理存贮设备上实际存储的数据的集合。
这些数据是原始数据,是用户加工的对象,由内部模式描述的指令操作处理的位串、字符和字组成。 (2)概念数据层。
它是数据库的中间一层,是数据库的整体逻辑表示。指出了每个数据的逻辑定义及数据间的逻辑联系,是存贮记录的集合。
它所涉及的是数据库所有对象的逻辑关系,而不是它们的物理情况,是数据库管理员概念下的数据库。 (3)逻辑数据层。
它是用户所看到和使用的数据库,表示了一个或一些特定用户使用的数据集合,即逻辑记录的集合。 数据库不同层次之间的联系是通过映射进行转换的。
数据库的主要特点 (1)实现数据共享。 数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。
(2)减少数据的冗余度。 同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。
减少了大量重复数据,减少了数据冗余,维护了数据的一致性。 (3)数据的独立性。
数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。 (4)数据实现集中控制。
文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。
(5)数据一致性和可维护性,以确保数据的安全性和可靠性。 主要包括:①安全性控制:以防止数据丢失、错误更新和越权使用;②完整性控制:保证数据的正确性、有效性和相容性;③并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用;④故障的发现和恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏 (6)故障恢复。
由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。
比如对系统的误操作造成的数据错误等。
更新记录 要修改表中已经存在的一条或多条记录,应使用SQL UPDATE语句。
同DELETE语句一样,UPDATE语句可以使用WHERE子句来选择更新特定的记录。请看这个例子: UPDATE mytable SET first_column='Updated!' WHERE second_column='Update Me!' 这个UPDATE 语句更新所有second_column字段的值为'Update Me!'的记录。
对所有被选中的记录,字段first_column的值被置为'Updated!'。 下面是UPDATE语句的完整句法: UPDATE {table_name|view_name} SET [{table_name|view_name}] {column_list|variable_list|variable_and_column_list} [,{column_list2|variable_list2|variable_and_column_list2}… [,{column_listN|variable_listN|variable_and_column_listN}]] [WHERE clause] 注意: 你可以对文本型字段使用UPDATE语句。
但是,如果你需要更新很长的字符串,应使用UPDATETEXT语句。这部分内容对本书来说太高级了,因此不加讨论。
要了解更多的信息,请参考Microsoft SQL Sever 的文档。 如果你不提供WHERE子句,表中的所有记录都将被更新。
有时这是有用的。 例如,如果你想把表titles中的所有书的价格加倍,你可以使用如下的UPDATE 语句: 你也可以同时更新多个字段。
例如,下面的UPDATE语句同时更新first_column,second_column,和third_column这三个字段: UPDATE mytable SET first_column='Updated!' Second_column='Updated!' Third_column='Updated!' WHERE first_column='Update Me1' 技巧: SQL忽略语句中多余的空格。 你可以把SQL语句写成任何你最容易读的格式。
用SELECT 创建记录和表 你也许已经注意到,INSERT 语句与DELETE语句和UPDATE语句有一点不同,它一次只操作一个记录。然而,有一个方法可以使INSERT 语句一次添加多个记录。
要作到这一点,你需要把INSERT 语句与SELECT 语句结合起来,象这样: INSERT mytable (first_column,second_column) SELECT another_first,another_second FROM anothertable WHERE another_first='Copy Me!' 这个语句从anothertable拷贝记录到mytable。 只有表anothertable中字段another_first的值为'Copy Me!'的记录才被拷贝。
当为一个表中的记录建立备份时,这种形式的INSERT 语句是非常有用的。在删除一个表中的记录之前,你可以先用这种方法把它们拷贝到另一个表中。
简单的讲就是一个数据库系统,比较小型但很实用 应用比较广泛
详解如下:
MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。
SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。
MySQL 主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以来,我们一直都在使用MySQL,其环境有超过 40 个数据库,包含 10,000个表,其中500多个表超过7百万行,这大约有100 个吉字节(GB)的关键应用数据。
MySQL建立的基础是业已用在高要求的生产环境多年的一套实用例程。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
蜀ICP备2020033479号-4 Copyright © 2016 学习鸟. 页面生成时间:2.775秒