基本概念
数据库
数据库定义:是一种依照特定数据模型组织、存储和管理数据的文件集合。这些文件一般存放在外部存储器中,以便长久保存数据,并可快速访问。
特点
- 由数据库管理系统软件管理
- 结构化
数据库与普通数据文件的主要区别(重要)
- 数据库可以支持不同应用对数据共享访问,普通数据文件难以支持。
- 数据库可实现复杂的数据管理,普通数据文件难以实现。
- 数据库可独立于应用程序,普通数据文件与应用程序紧耦合。
- 数据库的操作访问与控制管理由数据库管理系统软件实现;普通数据文件的操作访问与控制管理,都必须由应用程序实现
数据模型
数据模型定义:指描述事物对象的数据结构组成、数据语义联系、数据约束的抽象结构及其说明
- 数据结构
- 数据操作
- 数据约束
不同的数据库变化的是数据模型
数据库使用的数据模型
- 层次数据模型(现在已经不适用)
- 思想:采用"树"结构来组织、存储和管理数据
- 思想:采用"树"结构来组织、存储和管理数据
- 网状数据模型
- 思想:"网状图"来组织、存储和管理数据
- 思想:"网状图"来组织、存储和管理数据
- 关系数据模型(经久不衰至,今任使用)
- 思想:"二维表"来组织、存储和管理数据 ,并以关联列(共享列)实现表之间的联系
- 优点
- 数据结构简单、操作灵活
- 支持关系和集合的运算
- 支持SQL
- 广泛的用户基础
- 局限
- 只用于结构化数据的组织与存储管理
- 支持的数据类型简单
- 对象组织
- 用户表:存储用户的应用数据
- 系统表:存储数据库系统自身数据
- 视图:通过虚拟表实现数据查询处理
- 索引:通过目录数据结构支持快速的数据查询
- 约束:对关系表及其数据施加规则
- 存储过程:在数据库内部实现特定数据处理的过程程序
- 触发器 :实现数据操作数据触发自动执行的过程程序
- 其他数据模型(针对不同的情形)
数据库(应用)系统
基于数据库进行数据管理与信息服务的软件系统。由用户、数据库应用程序、数据库管理系统和数据库组成
- 用户:使用人员——程序员、系统分析师、管理员、最终用户
- 应用程序: 在DBMS支持下对数据库中的数据进行访问处理的应用程序
- 基本功能:输入、连接访问、查询、输出……
- 数据库管理系统(DBMS):一种专门用来创建数据库、管理数据库、维护数据库,并提供外部对数据库进行访问的系统软件
- 基本功能:创建、读写改删、维护、执行访问规则、备份和恢复、安全控制……
- 数据库 :依照特定数据模型组织、存储和管理数据的文件集合
- 数据内容:用户表(用户数据)、系统表(元数据1、索引数据、运行数据、其它数据)
功能(重要)
- 创建数据库、数据库表以及其它对象
- 读写、修改、删除数据库表中数据
- 维护数据库结构
- 执行数据访问规则
- 提供数据库并发访问控制和安全控制
- 执行数据库备份和恢复
发展
数据管理技术
- 人工管理阶段
- 文件系统管理阶段
- 数据库系统管理阶段
数据库技术
- 第一代——层次模型、网状模型数据库技术
- 第二代——关系模型数据库技术
- 第三代——面向对象数据库技术和对象-关系数据模型
- 第四代——半结构化,面向互联网应用的非结构化、大规模分布式
数据库技术领域
- 大数据技术:解决传统数据库管理软件不能有效解决的技术问题,如复杂
- 数据挖掘技术
- 商业智能
发展趋势
- 两级发展,大的越大,小的越小
- 行数据访问模式到列数据访问模式
- 结构化到非结构化、半结构化
- 操作型到数据仓库、商业智能数据分析、大数据处理
- 通用到专业领域数据库
问题
1.为什么关系数据库不适合大数据应用处理?
2.结构化数据与非结构化数据有何区别?
3.NoSQL数据库与NewSQL数据库有何区别?
4.通用数据库与领域数据库有何区别?
5.数据库与数据仓库有何区别?
6.大数据分析与数据挖掘有何区别?
解答
1、大数据一般是非结构化的
2、即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据;非结构化数据包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等等
3、前者是非关系数据库(对象数据库),后者是既能处理非结构化也能处理结构化
4、领域数据库是专用领域,前者公共处理,两者在性能与支持上有区别
5、数据库通常更关注业务交易处理(OLTP),而数据仓库更关注数据分析层面(OLAP),由此产生的数据库模型上也会有很大的差异。数据库通常追求交易的速度,交易完整性,数据的一致性,等等,在数据库模型上主要遵从范式模型(1NF,2NF,3NF,等等),从而尽可能减少数据冗余,保证引用完整性;而数据仓库强调数据分析的效率,复杂查询的速度,数据之间的相关性分析,所以在数据库模型上,数据仓库喜欢使用多维模型,从而提高数据分析的效率。
6、数据挖掘可以对传统数据进行挖掘,也能对大数据进行挖掘,能挖掘数据的内在模式或者说知识,有许多算法;大数据分析面向更广泛的数据进行统计分析,也包含挖掘,两者有交叉
数据库应用系统
类型
- 业务处理系统:商业终端销售系统、酒店系统……
- 管理信息系统(MIS):人力资源管理系统……
- 决策支持系统:提供辅助决策服务 电信销售大数据决策支持系统
应用结构
- 单机结构:数据存储在一个计算机里,一般冗余度大
- 集中式结构:为多个用户服务,存放在同一个服务器内,通过网络访问,所有处理集中在服务器中
- 客户/服务器结构:解决集中式结构负载过重的问题,客户机程序与数据库服务器分工进行数据处理
- 分布式结构:物理上分布,逻辑上是一个整体,负载能力极强,处理性能强,数据要保证一致性,维护有一定的开销和技术难度
生命周期
- 需求分析:需求获取,采用数据模型定义系统数据组成,以及数据字典
- 系统设计:对系统数据库进行设计,包括系统概念数据模型、系统逻辑数据模型和系统物理数据模型设计
- 系统实现:数据库创建与应用编程实现,主要包括DBMS安装部署、数据库创建、数据对象创建、应用编程实现等方面的工作
- 系统测试:对数据库对象进行测试操作访问,实现数据库功能和性能测试
- 系统运行与维护:在信息系统投入运行过程中,对数据库系统进行定期维护和优化,以保证数据库系统正常地、高效地运行
重点问题
典型数据库管理系统
分类
- 按用途分
- 统用DBMS——如SQL Server
- 专业邻域DBMS ——如嵌入式领域的SQLite
- 按用户数分
- 单用户——miniSQL
- 多用户——MySQL
- 按系统部署分类
- 集中式——Access
- 分布式 ——Oracle Database
- 按使用场景分类
- 桌面级——Access
- 企业级——DB2、Oracle Database、Sybase ASE
- 按软件版权分类
- 产品——SQL Server
- 开源 ——My SQL
桌面和企业级DBMS比较
桌面级应用于小规模,单用户场景。功能简单、体量小、处理能力弱。通常仅支持单一语言的应用程序开发
企业级应用于大规模,多用户使用场景。功能完善、软件体量大、处理能力强,安全性、可靠性更强。支持多种语言的应用程序开发。
典型数据库管理系统
- ACCESS——微软公司推出的桌面数据库管理系统
- SQL SERVER——微软公司推出的商用数据库管理系统
- OracleDatabase——甲骨文公司推出的企业级数据库管理系统 ——支持云计算服务
- IBMDB2——|BM公司推出的企业级数据库管理系统 Sybase
- ASE——Sybase公 司推出的企业级数据库管理系统
- MySql——应用广 泛的开源关系数据库管理系统
- PostgreSQL——技术领先的开源对象-关系数据库管理系统 ——支持面向对象(重要,熟练使用!!)
- Sybase SQL Anywhere——Sybase推出的移动计算数据库管理系统
- SQLite——开源的轻量级嵌入式数据库管理系统
元数据是描述数据库内数据的结构和建立方法的数据。创建对象时就产生并存储到数据库里 ↩︎