目录标题
1、数据库基本概念
数据定义
从广义上的理解,数据的种类很多,文字、图形、图像、声音、学生的档案记录等,这些都是数据。
数据就是数据库存储的基本对象
数据的含义就是数据的语义,两者不可分
数据库
数据库就是长期存储在计算机内的有组织,可共享,大量的数据集合。
数据库管理系统(DBMS)
- 数据定义
- 数据定义语言DDL
- 定义数据库中的数据对象
- 数据组织,存储和管理
- 数据操纵
- 提供数据操纵语言DML
- 数据控制语言DCL
- 增删查改操作
- 数据事务处理
- 数据库建立和维护
2、数据库系统(DBS)
基本组成
数据库系统包括3个主要的组成部分。
⑴数据库(DB):用于存储数据的存储空间。
⑵数据库管理系统(DBMS):用于管理数据库的软件。
⑶数据库应用程序:为了提高数据库系统的处理能力所使用的管理数据库的软件补充。
(4)数据管理员(DBA)
特点
- 数据结构化
- 数据共享性高,冗余度低,易扩展
- 数据独立性高
- 数据统一由DBMS管理
数据模型
1. 概念模型
概念模型是按用户的观点对数据建模,强调其语义表达能力,概念应该简单、清晰、易于用户理解,它是对现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具。其典型代表就是著名的“实体-关系模型”(E-R模型)。
2. 逻辑数据模型
另一种数据模型是直接面向数据库的逻辑结构,它是对现实世界的第二层抽象。这种模型直接与数据库管理系统有关,称为“逻辑数据模型”,包括层次模型、网状模型、关系模型和面向对象模型。
逻辑数据模型应该包含数据结构、数据操作和数据完整性约束3个部分,通常有一组严格定义的无二义性语法和语义的数据库语言,人们可以用这种语言来定义、操作数据库中的数据。
在逻辑数据模型的4种模型中,层次模型和网状模型已经很少应用,而面向对象模型比较复杂,尚未达到关系模型数据库的普及程度。目前理论成熟、使用普及的模型就是关系模型。
3. 物理模型
物理模型是对数据的最底层抽象,描述数据在系统内部的表示方法和存取方法,关于硬件的存取方式。
数据库系统组成要素
- 数据结构
- 数据操作
- 数据的完整性约束条件
数据库系统的结构
三级模式结构
独立性:逻辑数据独立性和物理独立性
逻辑数据独立性:模式变,外模式不变
物理独立性:物理模式变,模式不变
- 模式
唯一性,也称逻辑模式或者全局模式(概念层) - 外模式
视图层,局部逻辑结构,可以有任意多个 - 内模式
存储模式,唯一性,物理层,数据表示方式依赖于模式
两层映像系统结构
- 外模式/模式映像
- 模式/内模式映像
3、数据管理的历史
1. 简单应用(20世纪50年代以前)
这个阶段最基本的特征是无数据管理及完全分散的手工方式,主要表现在以下几方面。
⑴无外存或只有磁带外存,输入输出设备简单。
⑵无操作系统,无文件管理系统,无管理数据的软件。
⑶数据是程序的组成部分,数据不独立,修改数据必须修改程序。处理时,数据随程序一道送入内存,用完后全部撤出计算机,不能保留。数据大量重复,不能共享。
⑷文件系统尚未出现,程序员必须自行设计数据的组织方式。
2. 文件系统(20世纪50年代后期到60年代中期)
这个阶段的基本特征是有了面向应用的数据管理功能,工作方式是分散的非手工的,主要表现在以下方面。
⑴外存有了很大的发展,除磁带机外,还出现了大容量的硬盘和灵活的软磁盘。输入、输出能力大大加强。
⑵系统软件方面,出现了操作系统、文件管理系统和多用户的分时系统;出现了专用于商业事务管理的高级语言COBOL,它主要用于文件处理,也可以进行非数值处理。
⑶数据管理方面,实现了数据对程序的一定的独立性,数据不再是程序的组成部分,修改数据不必修改程序,数据有结构,被组织到文件内,存储在磁带、磁盘上,可以反复使用和保存。
⑷文件类型已经多样化。由于有了直接存取设备,就有了索引文件、链接文件、直接存取文件等,而且能对排序文件进行多码检索。
⑸数据存取以记录为单位。
这一阶段数据管理的不足之处表现在以下方面。
⑴数据冗余度大。文件系统中文件基本上对应于某个应用程序,数据仍是面向应用的,不同应用程序所需数据有相同部分时,仍需建立各自的数据文件,不能共享,数据维护困难,一致性难以保证。
⑵数据与程序独立性仍不高。文件是为某一特定应用服务的,系统不易扩充。文件仍不能反映现实世界事物之间的联系。
3. 数据库系统(20世纪60年代后期开始)
为了解决多用户、多应用共享数据的需求,使数据为尽可能多地为应用程序服务,出现了数据库系统,其特点主要如下。
⑴面向全组织的复杂数据结构。数据库中的数据结构实现了整个组织数据的结构化。
⑵数据冗余度小,易于扩充。可以根据不同的应用需求选择相应的数据加以使用,使系统易于扩充。
⑶数据与程序独立。当数据的存储结构改变时,逻辑结构保持不变,或者当总体逻辑结构改变时,局部逻辑结构可以保持不变,从而实现了数据的物理独立性和逻辑独立性。
⑷统一的数据控制功能。数据库系统提供了数据的安全性控制(Security)和完整性控制(Integrity),允许多个用户同时使用数据库资源。
数据库的上述特点使信息系统的研制,从围绕加工数据的以程序为中心转移到围绕共享的数据库来进行,实现了数据的集中管理,提高了数据的利用率和一致性,从而能更好地为决策服务。因此,数据库技术在信息系统应用中正起着越来越重要的作用。
4、RDBMS的12项准则。
根据关系数据理论和Codd准则的定义,一种语言必须能处理与数据库的所有通信问题,这种语言有时也称为“综合数据专用语言”。该语言在关系型数据库管理系统中就是SQL。SQL的使用主要通过数据操作、数据定义和数据管理三种操作实现。其中Codd提出了RDBMS的12项准则。
⑴信息准则:关系数据库中的所有信息都应在逻辑一层上用表中的值显式的表示。
⑵保证访问准则:依靠于表名、主键和列名,保证能以逻辑方式访问数据库中的每个数据项。
⑶空值的系统化处理:RDBMS支持空值(不同于空的字符串或空白字符串,并且不为0)系统化地表示缺少的信息,且与数据类型无关。
⑷基于关系模型的联机目录:数据库的描述在逻辑上应该和一般数据采用同样的方式,使得授权用户可以使用查询一般数据所用的关系语言来查询数据库的描述信息。
⑸统一的数据子语言准则:一个关系系统可以具有多种语言和多种终端使用方式(如表格填空方式、命令行方式等)。但是,必须有一种语言,它的语句可以表示为具有严格语法规定的字符串,并能全面地支持以下功能:数据定义、视图定义、数据操作(交互式或程序式)、完整约束、授权、事务控制(事务开始、提交、撤销)。
⑹视图更新准则:所有理论上可更新的视图也应该允许由系统更新。
⑺高阶的插入、更新和删除:把一个基本关系或导出关系作为一个操作对象进行数据的检索以及插入、更新和删除。
⑻数据的物理独立性:无论数据库的数据在存储表示上或存取方法上做何种变化,应用程序和终端活动都要保持逻辑上的不变性。
⑼数据的逻辑独立性:当基本表中进行理论上信息不受损害的任何变化时,应用程序和终端活动都要保持逻辑上的不变性。
⑽数据完整的独立性:关系数据库的完整性约束必须是用数据子语言定义并存储在目录中的,而不是在应用程序中加以定义的。至少要支持以下两种约束:①实体完整性,即主键中的属性不允许为空值(NULL);②参照完整性,即对于关系数据库中每个不同的非空的外码值,必须存在一个取自同一个域匹配的主键值。
⑾分布独立性:一个RDBMS应该具有分布独立性。分布独立性是指用户不必了解数据库是否是分布式的。
⑿无破坏准则:如果RDBMS有一个低级语言(一次处理一个记录),这一低级语言不能违背或绕过完整性准则以及高级关系语言(一次处理若干记录)表达的约束。