数据库(数据仓库)概述
数据(Data):描述事务的符号记录,不仅包含普通意义上的数字,还包括文件、图像、声音等,也就是说凡是在计算机中用来描述事物的信息都可称为数据
数据库(Database ,DB):数据仓库,是按照数据结构来组织/存储和管理数据的仓库,即长期存放在计算机内、有组织、可共享的大量数据的集合。数据库中的数据按照一定数据模型组织、描述和存储
数据库不等于数据库系统,数据库系统的范围远大于数据库
数据库特征:
-
数据要具备结构化特征
-
数据的冗余度要小,共享性要高,扩充性要强
-
针对于原子性数据,独立性要强
-
数据要有统一的管理和控制
数据库系统的几个重要部分
(1)数据库:数据库提供一个存储空间来存储各种数据 ,即数据库是一个存储数据的容器
(2)数据库管理系统:专门用于创建和管理数据库的一套软件,介于应用程序和操作系统之间,如MySQL、Oracle、SQL、DB2等等。它不仅具有最基本的数据管理功能,还能保证数据的完整性、安全性和可靠性
(3)数据库应用程序:在大多数情况下,数据库管理系统无法满足用户对数据库的管理,因此就需要数据库应用系统与数据库管理系统来进行通信、访问和管理DBMS中存储的数据
数据库技术的发展
(1)人工管理阶段
时间:20世纪50年代中期以前
此阶段数据的输入、存取等,需要人工操作
此阶段特点:
- 数据不在计算机中长期保存
- 没有专门的数据管理软件,数据需要应用程序自己管理
- 数据是面向应用程序的,不同应用程序之间无法共享数据
- 数据不具有独立性,完全依赖于应用程序
(2)文件系统阶段
时间:20世纪50年代后期到60年代中期
此阶段硬件方面有了磁盘等直接存取设备,软件方面有了操作系统
此阶段特点:
- 数据在计算机的外存设备上长期保存,可以对数据反复进行操作
- 通过文件系统管理数据,文件系统提供了文件管理功能和存取方法
- 虽然在一定程序上实现了数据独立性和共享性,但都非常薄弱
(3)数据库系统阶段
时间:20世纪60年代后期
数据库技术为提高数据管理的效率,解决多用户,多应用程序共享数据的需求而应运而生
此阶段特点:
- 数据结构化
- 数据共享
- 数据独立性高
- 数据统一管理和控制
该阶段又可分为:
- 初级阶段----第一代数据库:网状模型和层次模型的数据库
- 中级阶段----第二代数据库:关系型数据库&&结构化查询语句 Oracle MySql SqlServer
- 高级阶段----新一代数据库:NoSql型数据库 Redis..MnGo..
- 未来阶段----云库
三级模式和二级映像
三级模式
三级模式是指数据库管理系统从三个层次来管理数据,分别是外部层、概念层和内部层。这三个层次分别对应三种不同类型的模式,分别是外模式、概念模式和内模式
二级映像是指在外模式与概念模式之间,以及概念模式与内模式之间存在的映像
外模式面向应用程序,描述用户的数据视图
内模式面向物理上的数据库,描述数据在磁盘中如何存储
概念模式面向数据库设计人员,描述数据的整体逻辑结构
例:有个商城使用电子表格保存商品信息
概念模式:代表表格的列标题
内模式:在表格另存为文件时,可以选择保存的文件路径、保存类型等
外模式:在打开表格后,默认会显示表格中所有的数据,这个表格称为基本表
一个数据库可以有多个外模式,而概念模式和内模式则只有一个
二级映像
二级映像类似于一种规则,它规定了映像双方如何进行转换。通过二级映像,体现了逻辑和物理两个层面的独立性
逻辑独立性:外模式/概念模式映像体现了逻辑独立性,即修改了概念模式不影响其上一层的外模式
物理独立性:概念模式/内模式体现了物理独立性。物理独立性是指修改了内模式不影响上层的概念模式和外模式
数据模型
三种基本数据模型:层次模型、网状模型和关系模型
数据建模
数据建模是对现实世界中的各类数据的抽象组织,,以确定数据库的管辖范围、数据的组织形式等
数据建模大致分为三个阶段,分别是概念建模阶段、逻辑建模阶段、物理建模阶段,相应的产物分别是概念模型、逻辑模型和物理模型
概念模型的术语
(1)实体:客观存在并可相互区分的事物
(2)属性:实体所具有的某一特性
(3)联系:实体与实体之间的联系,一个实体可以由若干个属性来描述
(4)实体型:实体型即实体类型,通过实体名及其属性名集合来抽象描述同类实体
(5)实体集:实体集时同一类型的实体集合
E-R图
E-R图是一种用图形表示的实体联系模型,它提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型
表示方法:
实体:用矩形框表示,实体名写在框内
属性:用椭圆框表示,属性名写在框内,用连线将实体与属性连接
联系:用菱形框表示,联系名写在框内,用连线将相关的实体连接,并在连线旁标注联系类型(一对一“1:1”、一对多“1:n”、多对多“n:m”)
关系模型
基本概念:
1、关系:反应元素之间的联系和性质
2、属性:二维表中的列称为属性
3、元组:二维表中的每一行数据称为一个元组
4、域:属性的取值范围
5、关系模式:对关系的描述
6、键:关键字
关系模型的完整性
为保证数据库中数据的正确性和相容性,需要对关系模型进行完整性约束。完整性通常包括实体完整性、参照完整性和用户自定义完整性
实体完整性:要求关系中的主键不能重复,且不能取空值
参照完整性:要求关系中的外键要么取空值,要么取被参照关系中的某个元组的主键值
用户自定义完整性:是用户针对具体的应用环境定义的完整性约束条件,由DBMS检查用户自定义的完整性
数据库与文件系统的区别
文件系统:操作系统用于明确存储设备(通常泛指磁盘),或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。
数据库系统:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件。用于建立、使用和维护数据库。对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。
不同点:
1 管理对象不同==>文件系统的管理对象是文件,并非直接对数据进行管理,不同的数据结构需要使用不同的文件类型进行保存,两者之间存在隔离性。
2 存储方式不同==>文件系统使用不同的文件名加以区分(.doc/.mp4/.png),保存在外部存储设备上,数据库系统使用标准统一的数据类型进行数据保存(字母/数字/符号/时间....)
3 调用数据方式不同==>文件系统使用不同的软件去调用不同类型的文件,数据库系统则统一使用DBMS进行调用和管理
常见数据库
1.关系型数据库
关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。
当前主流的关系型数据库有Oracle、DB2、Microsoft SQL Server、MicrosoftAccess、MySQL、浪潮K-DB 、武汉达梦、南大通用、人大金仓等。
实体关系模型 E-R 图,它将真实世界事物与关系的概念,来解释 了数据库中抽象的数据架构。实体关系模型利用图形的方式(实体-关系图)来表示数据库的概念设计,有助于设计过程中的构思及沟通讨
2 非关系型数据库
普遍定义是“非关联性的”,强调key--value存储和访问。
DBMS支持的数据模型
层次模型
层次模型非常像一个倒置的树形结构。层次模型满足如下的条件:
有且仅有一个节点且无父节点的,这个节点被称为根节点。
其他的节点,有且只有一个父节点。多应用于桌面型关系模型数据库。
网状模型
在现实世界中,事物之间的联系更多的是非层次关系的,用层次模型表示非树型结构是很不直接的,网状模型则可以克服这一弊病。网状模型是一个网络结构。在数据库内如何区分网状模型,它满足的条件:
允许一个以上的节点无父节点
一个节点可以有多于一个的父节点
关系模型
以二维表的形式表示实体和实体之间存在的关系。从模型的三要素角度分析,满足关系模型的条件:
数据结构:一个二维表格
数据操作:数据表的定义 维护 检索 计算
数据约束条件:数据表中列的限制
面向对象模型(概念模型)
基于客户的想法和观点所形成的认识和抽象
实体(Entity):客观存在,能够被描述的事物
属性(Attribute): 用于描述实体所具有的特征或特性。如针对学生实体 学号 姓名 年龄 性别 住址......
关系(Relationship):实体和实体之间的联系
一对一关系 ===> 个人 和 身份证
一对多关系(多对一关系) ===> 班级 和 学生
多对多关系 ===> 学生 和 课程
数据模型 (关系概念模型)
行和列:行代表一个具体的实体的数据。也叫一条记录。列是属性的映射,用于描述实体的。
1.7 各岗位对数据库的要求
开发岗位针对于数据库的要求
精通SQL操作 IDUS (Insert,Deletc,Update,Selete)
多表连接,分组,子表检索
常用的函数
常用的操作命令
市面上常见的开发工具
事务 存储函数 存储过程 游标
索引 视图 触发器
维护岗位针对于数据库的要求
环境部署
安装,参数配置,权限管理
备份还原
监控
基本的故障处理
性能调优
容灾 升级/迁移
系统用户反馈的问题汇总解决
通用的要求
能不给做的事情不要给数据库,数据库尽量纯粹进行数据容器管理
任何数据变更,必须存在记录,支持回滚