数据库的基本知识.docx
《数据库的基本知识.docx》由会员分享,可在线阅读,更多相关《数据库的基本知识.docx(14页珍藏版)》请在冰豆网上搜索。
![数据库的基本知识.docx](https://file1.bdocx.com/fileroot1/2022-11/20/7fd6d167-74ab-44d7-b11d-09ad65dc9813/7fd6d167-74ab-44d7-b11d-09ad65dc98131.gif)
数据库的基本知识
第1章数据库的基本知识
本章介绍与数据库技术相关的基础知识,包括数据库的产生、特征、组成,数据库管理系统、关系数据库、数据库对象以及数据库管理员的职责。
通过本章的学习,读者应该完成以下学习目标:
●了解数据库的产生和作用
●了解数据库的特点
●了解数据库的组成形式
●了解数据库管理系统的功能和作用
●了解关系型数据库的定义、特点和功能
●了解数据库包含哪些对象
●了解数据库管理员的职责
1.1数据库的基础知识
在日常工作中,需要处理的数据量往往都很大,为便于计算机对其进行有效的处理,我们可以将采集的数据存放在建立于磁盘和光盘等外存媒介的“库”中,该“库”就是数据库。
数据集中存放在数据库中,便于对其进行处理,提炼出对决策有用的数据和信息。
这就像工厂生产出的产品要先存放在仓库中一样,既便于管理,又便于分期分批地销售;又像学校采购的大量图书要存放在图书馆(书库)中一样,以便于学生借阅。
因此,数据库就是在计算机存储器中用于存储数据的仓库。
与货仓、书库需要管理员和一套管理制度一样,数据库的管理也需要一个管理系统,该管理系统就称为数据库管理系统(DataBaseManagementSystem,DBMS)。
以数据库为核心,并对其进行管理的计算机系统称为数据库系统。
1.1.1数据库的产生
数据管理的发展经历了人工管理、文件系统和数据库系统3个阶段。
在人工管理阶段,由于没有软件系统对数据进行管理和计算机硬件的限制,数据的管理是靠人工进行的,而计算机只能对数据进行计算。
当时对数据处理的过程是先将程序和数据输入计算机,运行结束后再将结果输出,由人工保存,计算机并不存储数据。
20世纪50年代后期到60年代中期,由于计算机外存得到了发展,软件又有了操作系统,于提便产生了文件系统用于数据管理。
在文件系统阶段是按照数据文件的形式来存放数据的,一个文件中包含若干个“记录”,一个记录中又包含若干个“数据项”,用户通过对文件的访问实现对记录的存取。
这种数据管理方式又称为文件管理系统。
文件管理系统的一个致命的不足是数据的管理没有实现结构化组织,数据与数据之间没有联系,文件与文件之间也没有有机的联系,数据不能脱离建立其数据文件的程序,从而使得文件管理系统中的数据独立性和一致性较差,冗余度大,限制了大量数据的共享和有效的应用。
20世纪60年代末期,随着计算机技术的发展,为了克服文件管理系统的缺陷,人们对文件系统进行了扩充,研制出了一种结构化的数据组织和处理方式,即数据库系统。
数据库系统建立了数据与数据之间的有机联系,实现了统一、集中及独立地管理数据,使数据的存取独立于使用数据的程序,实现了数据的共享。
1.1.2数据库的特征
数据库技术在20世纪60年代后期发展起来以后,在计算机应用中得到了迅速发展。
目前,它已经成为信息管理的最新和最重要的技术。
数据库有以下明显的特点:
●数据结构化。
数据库中的数据不再像文件系统中的数据那样从属特定的应用,而是按照某种数据模型组织成为一个结构化的数据整体。
它不仅描述了数据本身的特性,而且描述了数据与数据之间的各种联系,这使数据库具备了复杂的内部组织结构。
●实现数据共享。
这是数据库技术先进性的重要体现,由于数据库中的数据实现了按某种数据模型组织为一个结构化的数据,实现了多个应用程序、多种语言及多个用户共享一个库中的数据,甚至在一个单位或更大的范围内共享,因而大大提高了数据的利用率,提高了工作效率。
●减少数据冗余度。
在数据库技术之前,许多应用系统都需要建立各自的数据文件,即使相同的数据也需要在各自的系统中保留,造成大量的数据重复存储,这一现象称为数据冗余。
由于数据库实现了数据共享,因而减少了数据的重复存储,节省了存储空间,减少了数据冗余。
●数据独立性。
数据库技术中的数据与程序相互独立,互不依赖,不因一方的改变而改变另一方,这大大简化了应用程序设计与维护的工作量,同时数据也不会随程序的结束而消失,可长期保留在计算机系统中。
1.1.3数据库的组成
一个数据库由一组数据表组成。
表中的每行称为记录,每列称为字段。
表是一组彼此相关的记录的组合。
例如,有一张包含公司中员工信息的表。
每条记录里都存储了公司一名员工的姓名、地址和薪水等数据。
字段(或者说“列”)是记录中一个单独的数据。
例如,一名员工的姓名或地址。
如表1-1所示就是一个典型的数据表的例子,从中可以清楚地看到每个人的信息就是一条记录,而诸如姓名、地址、年龄等信息称为字段。
通过记录和字段的对应我们可以得到唯一的数据值。
表1-1数据库示例表
姓名
地址
年龄
薪水
工龄
张三
北京
27
5000
4
李四
上海
29
6500
3
王五
广东
38
8000
10
此外,数据库中还存在着许多由表衍生出来的对象,如视图、索引等,这些对象对于数据库的管理和维护会起到不可或缺的作用。
1.1.4数据库管理系统
前面已经提到数据库系统是一种用来管理信息列表的手段,这些信息可来自不同的地方。
例如,它可以代表研究数据、业务记录、顾客请求、运动数据统计、销售报告、个人爱好信息、人事记录、问题报告或学生成绩等。
当组织和管理的信息很庞大或很复杂,用手工处理极为繁重时,数据原系统的强大优势会充分地体现出来。
因而,每天处理数百万个业务的大公司必然要使用数据库。
但是,即使只涉及个人爱好的由单一人员维护信息的小公司也可能会需要数据库。
不难想象出在信息变得难于管理之前因使用了数据库而带来的好处。
通常利用数据库管理系统来处理诸如人们用文件柜来完成的那样一些任务。
从某种意义上来说,数据库就像一个大文件柜,只不过是一个内建的文件编排系统而已。
电子化处理记录相对手工处理记录有很多优点:
●减少记录编档时间。
只要将记录放入文件编排系统,并命令文件编排系统为用户将该记录放入正确的位置即可。
●减少记录检索时间。
在查找记录时,不需要自己去查看每个记录以找到含有所需信息的那个记录。
●灵活的查找序列。
不需要按记录存放的固定序列去查看它们(例如,按姓氏查找)。
可以要求文件编排系统以任意的序列查出记录,如按姓名、保险公司名或最后光临日期等提取记录。
●灵活的输出格式。
在查找到感兴趣的记录后,不需要手工复制其信息。
可以让文件编排系统为用户生成一份清单,以便将用户感兴趣的信息打印输出。
●多个用户同时访问记录。
如果两个人想同时查找一个记录,那么其中一个人必须等另一个人查找完才能查找。
多个用户同时查找的能力使得两个人可同时访问记录。
数据库服务器是解决信息管理的主要工具。
一般情况下,数据库服务器必须在多用户环境中管理大量的数据,使多个用户能够并行访问数据。
所有这些必须能够在高性能的情况下完成,数据库服务器必须防止XX的非法访问,保护敏感数据,同时为故障恢复提供解决方案。
1.1.5关系数据库
下面阐述关系数据库的产生历史和它的一些常用术语,并讲解关系数据库的一般特性。
1.关系数据库的产生历史
数据处理是现代计算机应用中的一个重要组成部分。
数据处理是对各种形式的数据进行分类、组织、编码、存储、检索和维护的一系列活动的总和。
其目的是从大量、原始的数据中抽取、推导出对人们有价值的信息以作为行动和决策的依据;同时也是为了借助计算机科学地保存和管理大量复杂的数据,以便人们能方便而充分地利用这些宝贵的信息资源。
数据处理随着计算机硬件和软件的发展而不断发展。
前面已经提到了多年来数据处理经历了3个阶段:
人工管理阶段、文件系统阶段和数据库系统阶段。
数据库系统也经历了相应的3个阶段。
但是自从IBM公司提出关系数据库的概念以来,数据库系统的发展向前迈进了一大步,自此出现了众多的关系型数据库系统产品,如IBM的DB2、Sysbase、微软的SQLserver以及本书将要介绍的Oracle等。
2.关系数据库的定义
关系数据库是一些相关的表和其他数据库对象的集合。
该定义表达了3部分含义:
第一,在关系数据库中,信息被存放在二维表格结构的表(table)中,一个关系数据库包含了多个数据表,而每一个表又包含行(记录)和列(字段),可以将表想象为一个电子表格,其中与行对应的是记录,与列对应的是字段;第二,这些表之间是相互关联的,表之间的这种关联性是由主键和外键所体现的参照关系来实现的;第三,数据库不仅包合表,而且包含了其他数据库对象,如视图、存储过程、索引等。
关键字(key)是关系模型中的一个重要概念。
它是一个逻辑结构,而不是数据库的物理结构。
关键字分为主关键字和外部关键字两种。
主关键字(primarykey)是指表中的某一列,该列的值可唯一标识一行。
主关键字实施实体完整性,即每一个主关键字的值必须唯一,而且不允许为NULL或重复。
外部关键字(foreignkey)是指如果表中含有与另一个表的主关键字相对应的列组,那么该列组就被称为外部关键字。
从该定义可以看出,外部关键字也是由一个或多个列组成。
在关系数据库中,表之间的联系是通过相同的列或列组来表示的,如果两个表中具有相同的列或列组,那么该列或列组就被称为这两个表的公共关键字(commonkey)。
如果公共关键字是其中一个表的主关键字,那么该公共关键字在另一个表中就被称为外部关键字。
外部关键字的作用是实现参照完整性,以下为创建外部关键字的优点:
●提供了表之间的连接。
●根据主关键字的列值来检查,参照主关键字的列值来确定其合法性。
●保证列的每个值都有效且实现参照完整性。
3.关系数据库系统的特点
RMDBS(关系数据库系统)的特点如下:
●数据完整性:
所有RDBMS都使用SQL或其变体来控制包含在任意数据库中的数据。
RDBMS必须保证数据的完整性,换句话说,任何关系型数据库都需要保证(如果多个表中的数据都需要被更新)所有的数据都被更新。
例如,假设一个邮局交费系统中有两张表,—张是您的交费账目,一张是您的未交费账目。
您每月支付电话费时,邮局会自动在交费账目上加上您的数额,再从未交费账目上减去相应的数额。
但是如果当加上数额后,邮局停电了,将会发生什么?
有了数据完整性,当服务器加电后,会发现加法已经完成,而减法还没有进行,那么,已经完成的一切都将被取消,您的利益将不会受损。
●数据存储和数据安全:
多数RDBMS都坚持把实际数据和业务逻辑区分开,以确保数据库中的数据可以保持持久状态。
多数情况下,用户只想在数据库中存储数据。
许多RDBMS通过使用压缩算法将冗余数据删去的方式来存储数据但这样并不意味着数据丢失了,只是占用了更少的存储空间。
每个RDBMS都为所管理的数据库提供了某种安全措施,这通常通过某种登录过程来实现。
4.数据库管理系统的功能
目前流行的DBMS有很多种,不同的DBMS提供的功能各有侧重,但一般都提供以下6个方面的功能:
1)数据库定义
为了提高数据库的独立性,DBMS将数据库从逻辑上分为3个层次,即面向数据库用户的外层(用户数据库)、由DBMS管理的概念层(概念数据库)和内部层(存储数据库)。
用户看到的只是外层,而数据实际上是按内部层的结构存储的,它是通过概念层二级抽象(或称映像)而来的。
DBMS的数据库定义功能不但提供了用户数据库、概念数据库和存储数据库三级数据库的定义,而且还提供了从用户数据库到概念数据库以及从概念数据库到存储数据库的映像功能。
数据库定义一般都由DBMS以数据定义语言(DataDefinitionLanguage,DDL)的形式提供给用户。
数据库用户利用DDL来定义用户数据库结构,建立所需要的数据库,同时由DBMS自动翻译为存储数据库。
存储数据库独立于一般的数据库用户,数据库用户也可以不必过问存储数据库的实际模型。
2)数据操纵
DBMS提供了数据操纵语言(DataManipulationLanguage,DML)以实现对数据库数据的操纵。