一.写在前面
工作后第一次走出公司出去外面公司面试,对方公司是一家互联网性质的公司。过程中面试官对我说的一句话让我一直记在心上“数据库在现代应该是每个技术人员都应该要掌握的技术”。面试当时对这句话没有感受很深,真正让我意识到我必须学习这一门课程是在某一天突然发现自己的项目也要用到数据库来做统计,而我对这一块知识完全不懂。在很慌乱的集中学习了几天之后,暂时会运用;经人提醒之后,原来我直接跳过了基础部分,因此,通过文档来记录基础文档部分的学习吧。
二. 和数据库相关的几个概念
2.1 数据
数据是数据库中存储基本对象,它是描述事物的符号记录。因此,时间万物,只要有实际的数据描述,其描述就可以被存储下来。
2.2 数据库
顾名思义,数据库是用来存放数据的仓库,只不过,这个仓库被存储在计算机设备上。他的特点是长期存储性,有组织,按一定格式,可共享。特点的具体解释会在后面展开。
2.3 数据库管理系统(database management system,DBMS)
数据库管理系统是可以完成科学的组织和存储,高效的获取和维护数据的系统软件。因此,是位于用户与操作系统之间的一层数据管理软件。这个软件包括4方面的内容:
1.数据定义功能(DDL)
Data definition Language,简称DDL,在数据库中负责数据结构定义以及数据库对象定义。
由CREATE、ALTER与DROP三个语法所组成,用于改变数据库结构。
2.数据操纵功能
data manipulation language,简称DML,在数据库中负责查询(SELECT),插入(INSERT),删除(DELETE)和修改(UPDATE)。
3.数据库的建立和维护功能
包括数据库初始数据的输入,转换功能,数据库的存储,恢复功能等。
4.数据库的运行管理
可以对数据库在建立,运用和维护时由数据库管理系统进行统一管理与控制。这一过程可以确保数据的安全,完整以及多用户的并发使用,以及发生数据故障后系统数据恢复。
2.4 数据库系统
Database system,简称DBS。一般由数据库,数据库管理系统,应用系统,数据库管理员和用户构成。
三.数据管理技术的发展
从上面的数据库相关的概念可以看出,现代的数据库管理离不开计算机的存储。众所周知的是,计算机发展之初由于技术受限并没有很大的存储能力,那早起的数据是如何管理起来的呢?
毫无疑问,数据库技术是站在巨人的肩膀上发展起来的,而那个巨人就是“计算机硬件以及软件的发展”。数据的管理经历了人工管理,文件系统,数据库系统三个阶段。用一张表来解释三者的概念和区别。
通过上述图标可以看出,确实,数据管理走向如今的数据库系统阶段,依赖于计算机硬件存储功能的发展以及计算机软件之操作系统的发展,吃了两波技术红利。
四.数据库系统的特点
4.1 数据结构化
数据库系统实现整体数据的结构化,是数据库的主要特征之一,也是数据库系统与文件系统的本质区别。
数据库系统存取数据的方式也很灵活,可以存储数据库中的某一个数据项(某个字段下的一个记录),一组数据项(某个字段下的多个记录),一个记录,一组记录(多条记录同时插入)。
相反,在文件系统中,数据的最小存取单位是记录,粒度不能铣刀数据项。也就是说,数据的插入必须是一条记录或者一批记录。
4.2 数据库的共享性高,冗余度低,易扩展
数据库系统是存在于计算机系统上的,面对的是整个系统而非某个应用,因此数据可以被多个用户,多个应用共享使用;也因此具有冗余度第,易扩展的优势。
4.3 数据独立性高
物理独立性:数据在内存中如何存储,用户程序不需要了解;当物理存储改变,应用程序不需要改变。
逻辑独立性:指用户的应用程序与 数据库的逻辑结构是相互独立的,数据的逻辑结构改变,用户程序也可以不改变。
4.4 DBMS数据库控制功能
1. 数据的安全性保护
保护数据防止不合法的使用造成的数据泄密和破坏。使每个用户只能按规定对数据进行使用和处理。
2.数据的完整性检查
数据的完整性是指数据的正确性,有效性和相容性。完整性检查将数据控制在有效范围内,保证数据之间满足一定的关系。
3.并发控制
当多个用户并发进程对数据库进行存取和修改时,可能会发生相互干扰而得到错误的结果,也可能会破坏数据库的完整性。因此,必须对数据库加以控制和协调。
4.数据恢复
当数据库遭遇破坏时,数据库系统必须具有将数据库从错误状态恢复到某一已知的正确状态。类似于版本控制的回退。
五. 数据库技术的研究领域
1.DBMS 软件系统的设计
由第四节可以看出,一个合理的数据库管理系统应该包含并不仅仅包含上面这些功能,因此,研制一个可靠的软件系统是发展数据库系统的基础。
2.数据库设计
数据库系统的技术是数据库,而数据库的设计是对事物模型的抽象,如何抽象使事物结构更合理,使用事物的数据更方面,效率更高就显得尤其重要,
3.数据库理论
数据库技术和其他计算机技术互相结合,相互渗透,使数据库中新的技术内容层出不穷。建立和实现新型数据库系统,如分布式数据库系统并行数据库西戎,知识库系统,多媒体数据库系统等。