前言
数据库技术是计算机科学技术中发展最快,应用最广的技术之一,它是专门研究如何科学的组织和存储数据,如何高效地获取和处理数据的技术。它已成为各行各业存储数据、管理信息、共享资源和决策支持的最先进,最常用的技术。
当前互联网+与大数据,一切都建立在数据库之上,以数据说话,首先需要聚集数据、分析数据和管理数据,数据库技术已成为各种计算机系统的核心技术。数据库相关知识也已成为每个人必须掌握的知识。
数据系统概述
一、数据库4个基本概念
1.1 数据(Data)
数据(Data)是信息的具体变现形式。在现实中的数据与其语义是不可分的。如93是一个数据,在不同语义下代表不同的意义:
语义1: 学生某门课的成绩
语义2: 某人的体重
语义3: 公司员工的人数
数据是大量存在的,在特定的语义(背景)下,就成为信息。
例如:
记录(张三,女,1996,苏州)就是数据。文字、图形、图像、声音等都是数据,各类数据必须数字化后才能加工处理。
1.2 数据库(DataBase,DB)
数据库(DataBase,简称DB)是一个存储数据的仓库。是数据和数据对象的集合。这种集合可以长期储存,具有确定的数据存储结构,同时能以安全可靠的方法进行数据的存储和检索。
当今世界,数据库非常广泛的应用在生活的方方面面。
例如:
12306保存了车次,售票等数据等等
1.3 数据库管理系统(DataBase Managemet System,DBMS)
数据库中数据量庞大,如何定义,操纵和管理 ?我们就需要用到数据库管理系统(DataBase Management System,简称DBMS),它是位于用户应用程序与操作系统之间的一层系统软件,用来操纵和管理数据库的软件,用于建立、使用和维护数据库。
在数据库管理系统中,他有如下功能:
- 数据定义功能:DBMS提供数据定义(DDL)语言,来定义数据库结构,并被保存在数据字典中。
- 数据存取功能:DBMS提供数据操纵语言(DML),实现对数据库数据的基本存取操作(查询,插入,修改和删除)
- 数据库运行管理功能:DBMS提供数据控制功能,通过保证数据的安全性、完整性和并发控制等,实现对数据库的有效控制和管理,以确保数据正确有效
- 数据库的建立和维护功能:包括数据库初始数据的装入,数据库的转储、恢复、系统性能监视、分析等功能。
- 数据库的传输:DBMS提供处理数据的传输,实现用户程序与DBMS之间的通信,通常与操作系统协调完成。
常用的DBMS有Oracle、MySQL、Microsoft SQL Server等
1.4 数据库系统(DataBase System,DBS)
数据库系统(DataBase System,简称DBS)是指引入数据库技术后的整个计算机系统。能够实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的核心系统。
数据库系统主要包括3个部分:
计算机系统(软件、硬件和人)、数据库、数据库管理系统。
即DBS = 计算机系统 + DB + DBMS
二、数据库技术的历史
2.1 数据库管理技术的历史
人工管理阶段
- 数据不保存
- 数据由程序各自管理
- 一组数据只能对应一个程序
- 数据不具备独立性
文件系统阶段
- 数据可以长期的保存
- 数据由文件系统管理
- 数据可以结构化(记录内部是有结构的,整体无结构)
- 数据共享差,冗余度大
- 有了一定的独立性
- 数据面对的对象是某一个程序
数据库管理系统
- 数据库由DBMS管理
- 数据整体结构化
- 数据共享性高
- 高度的物理独立性和一定的逻辑独立性
- 数据控制能力由DBMS统一管理和控制
数据库管理技术各阶段比较分析:
2.2 数据库的发展
数据库最早的起源是因为美国政府要管理庞大的火箭构件数据,要求IBM进行数据库的开发。
1968年诞生了层次数据库
1969年诞生了网状数据库
1970年诞生了关系数据库
2.3 未来已来
新型数据库由普通数据库到与各种先进技术结合所形成的新型数据库:
- OA⇐DB + Management Information System
- Database Machine ⇐DB + Computer Architecture
- Intelligent Database ⇐ DB + Artificial Intelligence
- Distributed Database(DDB) ⇐ DB + Computer Network
- Image Database / Multimedia Database ⇐ DB + Image
- processing/ Multimedia processing
- Temporal Database ⇐ DB + 时态技术处理
- 传感器数据库 RFID(Radio Frequency IDentification)射频识别技术,可以薄如纸张,小如豆粒。可以无线存储、发送数据。
三、数据模型
现实生活中一张地图、一组建筑沙盘、一架航模飞机都是的模型。
而我们在数据库中,要把现实世界中存在的数据进行建模。比如我们把一个学校转化成数学模型,然后存储在计算机中。就需要经过一些数据抽象的步骤:
- 在数据库的开发过程中,我们把学校中的数据,通过概念结构的设计,转化成概念数据模型
- 然后对概念数据模型进行抽象,转化成数据模型(逻辑模型)
- 最终通过计算机物理模型的实现,有效的表达在计算机。
3.1 层次模型
层次模型的数据结构是树型结构。满足下面两个条件的基本层次的集合为层次模型
- 有且只有一个结点没有双亲结点,该节点称为根结点
- 根结点以外的其他结点有且只有一个双亲结点
根节点:最顶上的唯一的一个,所以A就是根结点
双亲节点:子节点的父节点就叫做双亲节点,如A是B、C的双亲节点
以下是教员学生层次数据模型
以下是教员学生层次数据的值
通过层次数据模型的数据结构可以清晰的了解到逻辑上对数据是怎么储存的(1对N)
层次模型的数据结构的优点 :
- 结构比较简单清晰
- 查询效率高
- 提供了良好的完整性支持
层次模型的数据结构的缺点
- 结点之间的多对多联系表示不自然
- 对插入和删除操作的限制多,应用程序的编写比较复杂
- 查询孩子结点必须通过双亲结点
- 层次命令趋于程序化
3.2 网状模型
网状模型的数据结构是是图型结构,任一结点都可以无双亲或有一个以上的双亲(N对N)。
例如:
学生进行选修课程的时候可以选择多门课程,一门课程也可以被多名学生选择
网状模型的优点:
- 能够更为直接地描述现实世界,如一个结点可以有多个双亲,具有良好的性能,存取效率较高
网状模型的缺点:
- 结构比较复杂,而且随着应用环境的扩大,数据库的结构就变得越来越复杂,不利于最终用户掌握
- DDL、DML语言复杂,用户不容易使用
- 记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节。
3.3 关系模型
层次、网状模型基本上是面向专业人员的,与物理层关系密切。我们需要一种面向用户的数据模型,因此我们用二维表(关系)来描述实体及实体间联系的模型。
例如,在现实生活中,有两张表,一个是班级信息表,一个是学生信息表。一名学生只能对应一个班级,班级中可以包含多名学生,这在现实生活中是一对多的联系,我们通过设置两个相同的属性列,就可以把这两个关系联接在一起,我们通过学生的ClaID就可以查询到班级相关的信息。
CREATE TABLE Student
(StuID char(13),
StuName varchar(8),
StuBir smalldatetime,
StuSex char(2),
StuAddr varchar(30),
Cla_ID char(10) ,
CONSTRAINT class_Cla_ID FOREIGN key(Cla_ID) REFERENCES class(Cla_ID)
);
关系模型的优点:
- 建立在严格的数学概念的基础上
- 概念单一
- 关系模型的存取路径对用户透明
关系模型的缺点 :
- 存取路径对用户透明,查询效率往往不如格式化数据模型
- 为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度
数据模型是对现实世界存在的客观对象进行抽象认识。
按照抽象的层次可分为:概念模型->数据模型(逻辑模型)->物理模型。
数据模型(逻辑模型):层次模型,网状模型,关系模型,面向对象模型等,关系模型是我们最常用的一种数据模型
四、模式与映像
在上面我们了解了数据库的工作坏境,应用程序是通过DBMS来访问数据库里的数据。
例如,图书借阅系统。图书采买管理系统中有图书采买管理程序、图书借阅程序管理程序等很多程序,他们是怎么DBMS进行数据库的访问的?
4.1 数据库的体系结构
从数据库应用开发人员角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构
从数据库最终用户角度看,数据库系统的结构分为:
4.2 模式(Schema)
模式(Schema)是数据库逻辑结构和特征的描述,是型的描述,不涉及具体值, 反映的是数据的结构及其联系。
4.3 三级模式
4.3.1 模式(逻辑模式)
模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,所有用户的公共数据视图,一个数据库只有一个模式 。简单点理解就是所有用户的公共视图(全局视图),可以用数据定义语言DDL来定义。
模式是数据库系统模式结构的中间层 ,与数据的物理存储细节和硬件环境、应用程序、开发工具及高级程序设计无关。
模式的定义 :
- 数据的逻辑结构(数据项的名字、类型、取值范围等)
- 数据之间的联系
- 数据有关的安全性、完整性要求
4.3.2 外模式(子模式或用户模式)
数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述。
数据库用户的数据视图,是与某一应用有关的数据的逻辑表示,
用户能看到的数据库和视图跟具体的程序或项目有关,可用DML来操作。
外模式的作用: 保证数据库的安全性
模式与外模式的关系: 一对多
- 外模式通常是模式的子集
- 一个数据库可以有多个外模式
- 对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同。
4.3.3 内模式(也称存储模式)
内模式是数据物理结构和存储方式的描述
是数据在数据库内部的表示方式
- 记录的存储方式(如顺序存储,按照B+树结构存储,按hash方法存储等)
- 索引的组织方式
- 数据是否压缩存储
- 数据是否加密
- 数据存储记录结构的规定。
简单而言内模式对应物理级,数据在物理介质的存储方式和存储结构。
4.4 二级映象
三级模式是对数据的三个抽象级别
二级映象在数据库管理系统内部实现这三个抽象层次的联系和转换
- 外模式/模式映像
- 模式/内模式映像
主要保证数据的逻辑独立性
当模式改变时,数据库管理员对外模式/模式映象作相应改变,使外模式保持不变
应用程序是依据数据的外模式编写的,应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
保证数据的物理独立性
当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变。
应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性