2019/04/02 数据库原理

学习重点,mysql
在这里插入图片描述
mysql有多种存储引擎,而sqlserver和orcle只有一种,没有选择
变量类似于bash脚本里的系统变量(类似于PATH,HOSTNAME)
mysql有很多变量,通过设置变量来管理mysql数据库
优化查询,利用索引可以改善数据库的性能
ext3和ext2最大区别有日志功能
mysql一样有日志,利用日志可以还原系统

在这里插入图片描述
在这里插入图片描述
数据库,数据的集合,只要能把数据存起来,都叫数据库
在这里插入图片描述
层次型
在这里插入图片描述
层次的应对有重复的数据,可能会有问题
网状的拓补结构比较能表达关系能体现现实中的关系
,但是数据越来越多,管理起来比较错综复杂

在这里插入图片描述
我们常用的关系型数据库,用结构化查询语言sql语言
在这里插入图片描述
横纵列的二维表
在这里插入图片描述
在这里插入图片描述
sqlserver和orelc宣传自己是面向对象的数据库,实际上本质上还是关系型数据库,只是添加了面向对象的特性
在这里插入图片描述
在这里插入图片描述
DBMS数据库管理系统,mysql,oracle
mysql是一个程序,将来生成的数据通过mysl来进行组织和管理
存储引擎,存储方式(就是mysql存放数据的一种格式)不同的数据库,在硬盘存放的格式是不一样的
关系型数据库可以针对某一列,来指定用户是否能访问,能修改
数据库大部分都有日志功能,可以用日志恢复,如果意外停电等其他的情况下
保证数据正确性。可以加一些约束,来限定数据库用户写入数据的时候一些合理性,
比如年龄,数据库可以限定一个范围

在这里插入图片描述
大部分数据都是存在磁盘上的,即时断电也保留数据
一小部分是把数据存放在内存中,断电就没有
有些数据库确实是依靠内存存放的比如,memacached,纯粹基于内存形式,性能超好
RAW文件系统,没有文件系统的磁盘空间(就是个裸磁盘)就是0101二进制
MBR的前面512字节就是010101
oracle是支持把数据放在非文件系统的磁盘上的,性能好,文件不存在,要拷贝文件也只能用DD命令,失去了可管理性

在这里插入图片描述
数据定义:小数,整数,字符串,
数据处理:增删改查
数据安全:用户权限控制
!!!!数据备份:备份还原一定要滚瓜烂熟

在这里插入图片描述
单机架构:数据库是存放在单一的一个主机上,访问的时候也是访问这台主机,这种架构访问,只适合单个人访问,有些财务软件就是针对单机架构的,因为背后用的数据库就是office里的access数据库,或者sqlserver单机版的数据库,比如用友的T3财务软件,基于单机版的,同一时间只能一个人使用
大型主/终端架构,linux起源的适合,有一个multics unix 最早的是unics
multics就是大型主机终端架构,一个主机带好多终端,现在用的少了,就是操作用很多终端链接到主机上

主从架构现在是主流的,专门有一个服务器数据库进行访问,就需要安装客户端来进行访问,
sqlserver,mysql。oracle都是基于主从式的架构
这些服务器有很大缺点,因为是主一个服务器来支持并发很多客户端的访问,这时候服务器往往会带来一个系统的瓶颈,比如有几百个用户通过客户端软件链接你的服务器,这个服务器的性能就会受到影响,没有办法及响应,瓶颈比较严重。

所以就有分布式的架构,dns就是类似分布式的架构,把服务分布在每个服务器上,每次访问只占用每个服务器的一部分所以性能就比较好
当我们的数据库达到一定的规模,用户量太大,全放在一个数据库承受不住,就拆开,跟dns服务一样,
找服务器,每个数据库服务器,只放一部分数据,这样的话,每个数据库服务器都承担了一部分用户访问,进而提高性能

在这里插入图片描述
不是所有数据库都是关系型数据库
非关系型数据库就是NO SQL =not only sql
memacached redis(基于key,value值的,键值对)
mongodb(基于文档)
关系型数据库性能确实不好,所以引入了非关系型数据库,大部分非关系型数据库性能都是非常好的
关系型数据库主流,是因为存放数据比较稳妥,缺点是性能较差
no sql 性能好,存放数据灵魂,但是安全性,稳定性各方面都不如关系型数据库那么严谨

awk也提到行
record记录,行 row

在这里插入图片描述
在这里插入图片描述
这个属性是关联在表中的某个列上的,pk
作用在某个字段以后,表明这个字段的所有记录是不能重复的
通常数据库规范,都需要加主键

在这里插入图片描述
避免了重复数据。
在这里插入图片描述
在这里插入图片描述
mysql只是大的类别,因为是开源的,所以里面进行二次开发还有分支
关系型数据库都符合国际标准,都是差不多的
postgresql被红帽收购了,取名enterprisesql,ansible也被红帽收购了(号称很强,但是没不普及,类似resizefs。betuefs)
最重要的一点是支持事务 transaction。在数据库执行操作的适合,允许多个动作
这个多个动作如果以事务方式执行,必须作为一个整体对待
10的80次方,宇宙的原子个数
事务都有 ACID特性
原子性,要么任务都做,要么都不做,不可分割(认为园子不可分割
ATM机吐钱银行不会损失,ATM的厂家有押金在银行里,损失的是ATM厂家

如果有5个事务,没做完,就停电了,当机器重启的时候,发现这是个不完整事务,不会继续把事务做完,就会把前面做过的事务撤销,利用日志把事务撤销,rollback回滚在这里插入图片描述
在这里插入图片描述
一致性
在数据库操作的时候,要时时刻刻保证数据库一致性状态
一致性,(类似于转帐,不可能出现转出的钱,对方没有收到,莫名其妙消失的情况)

隔离性
dirty data 脏数据,处于中间状态未确认的数据
我们应该看到的事务在开始的状态,不应该看到脏数据

在这里插入图片描述

持久性,持久影响
一旦修改,就彻底的把数据修改了,在硬盘上,叫持久性

在这里插入图片描述
面试经常问

在这里插入图片描述
在这里插入图片描述
实体模型图 ER图
entity实体,一条记录,一般用矩形方框
员工编号,和上司编号这里面是有联系的

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值