Linux:MySQL-数据库介绍

数据库的发展史

一、萌芽阶段:文件系统
使用磁盘文件来存储数据

二、初级阶段:第一代数据库
出现了网状模型、层次模型的数据库

三、中级阶段:第二代数据库
关系型数据库和结构化查询语言

四、高级阶段:新一代数据库
''关系-对象"型数据库

文件管理系统的缺点:

一、编写应用程序不方便

二、数据冗余不可避免

三、应用程序依赖性

四、不支持对文件的并发访问

五、数据间联系弱

六、难以按用户视图表示数据

七、无安全控制功能

数据库管理系统的优点 2008年Sun收购mysql数据库管理系统10亿美金

相互关联的数据的集合
较少的数据冗余
程序与数据相互独立
保证数据的安全、可靠   中间都是跨网络连接
最大限度地保证数据的正确性
数据可以并发使用并能同时保证一致性

数据库管理系统:

数据库管理系统是软件
数据库是存放数据的地方
数据库是数据的汇集,它以一定的组织形式存于存储介质上
DBMS是管理数据库的系统软件,它实现数据库系统的各种功能。是数据库系统的核心
DBA:负责数据库的规划、设计、协调、维护和管理等工作
应用程序指以数据库为基础的应用程序

数据库管理系统的基本功能:

1、数据定义 (例如:每列写什么,第一列ID,第二列姓名)
2、数据处理
3、数据安全
4、数据备份

网状数据库:

最早出现的是网状DBMS,1964年通用电气公司的Charles Bachman成功地开发出世界上第一个网状IDS,也是第一个数据库管理系统,IDS 具有数据模式和日志的特征,只能在GE主机运行(特定的硬件上跑,不通用)

层次数据库:

以树型结构表示实体及其之间的联系。关系只支持一对多。代表数据库IBM IMS.(容易产生相对多的数据冗余,浪费空间,历史中的小水花,很快就过去了)

数据库系统的架构:

1、单机架构 (数据库装在哪,我就在哪使用)
2、大型主机/终端架构 (一个主机加多个终端,本质上还是单机架构,减轻硬件费用)
3、主从式架构(C/S) (例:用友U8安装在Windows 2008sql server上,其他人下载应用程序连接使用)
4、分布式架构 (用户量太大,大规模用分布式)

关系型数据库:

用的SQL语言(结构化查询语言)
内部实现机制:ACID特性(用户量达到一定规模瓶颈:性能差)
性能差出现了NoSQL(not only sql 例如:redis 高性能高并发)

关系 :关系就是二维表,其中:表中的行、列次序并不重要
1、行row:表中的每一行,又称为一条记录(record)
2、列column:表中的每一列,称为属性,字段(field)
3、主键(Primary key):用于惟一确定一个记录的字段
4、域domain:属性的取值范围,如,性别只能是‘男’和‘女’两个值

笔记:

1、表和表之间有关联的,就是关系型数据库,表一id1和表二id1应当数值一样

2、DBMS:可管理多个数据库,(为了性能好,访问量大推荐放一个数据库)

3、每个数据库:同一个项目相关数据,包含多个表,每个表内有多个字段(列)和记录(行)

4、PK->用于id上比较合理,避免数据库产生冗余

关系数据库

RDBMS:(Relational)
MySQL: MySQL, MariaDB, Percona Server
PostgreSQL: 简称为pgsql,EnterpriseDB 被红帽收购
Oracle
MSSQL 微软左右键点点点
DB2 IBM

数据库排名:
https://db-engines.com/en/ranking

实体-联系模型E-R

实体Entity:客观存在并可以相互区分的客观事物或抽象事件称为实体
•在E-R图中用矩形框表示实体,把实体名写在框内

属性:实体所具有的特征或性质

联系:联系是数据之间的关联集合,是客观存在的应用语义链
•实体内部的联系:指组成实体的各属性之间的联系。如职工实体中,职工号和部门经理号之间有一种关联关系
•实体之间的联系:指不同实体之间联系。例:学生选课实体和学生基本信息实体之间
•实体之间的联系用菱形框表示

联系类型

一、联系的类型:
一对一联系(1:1)
一对多联系(1:n) 外键表依赖于主键表(fk-pk外键依赖主键),一个学员多次考试成绩模型
多对多联系(m:n) 避免录入错误,建立第三张表关联前两张表,多学员多课程模型

二、数据的操作:
数据提取:在数据集合中提取感兴趣的内容。SELECT
数据更新:变更数据库中的数据。INSERT、DELETE、UPDATE

三、数据的约束条件 :是一组完整性规则的集合
实体(行)完整性 Entity integrity (每一行都唯一,与众不同)
域(列)完整性 Domain Integrity (限定范围,例:年龄范围,男女)
参考完整性 Referential Integrity (外键,表和表之间的关系)

简易数据规划流程

第一阶段:收集数据,得到字段
•收集必要且完整的数据项
•转换成数据表的字段

第二阶段:把字段分类,归入表,建立表的关联
•关联:表和表间的关系
•分割数据表并建立关联的优点
•节省空间
•减少输入错误
•方便数据修改

第三阶段:
•规范化数据库

数据库的正规化分析

一、RDMBS设计范式基础概念
设计关系数据库时,遵从不同的规范要求,设计出合理的关系型数据库,这些不同的规范要求被称为不同范式,各种范式呈递次规范,越高的范式数据库冗余越小

二、目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。满足最低要求的范式是第一范式(1NF)。在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般数据库只需满足第三范式(3NF)即可。

范式:满足前3范式基本够用

  • 1NF:无重复的列,每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。除去同类型的字段,就是无重复的列
    说明:第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是关系数据库
    不能有多个值

  • 2NF:属性完全依赖于主键,第二范式必须先满足第一范式,要求表中的每个行必须可以被唯一的区分。通常为表加上一个列,以存储各个实例的唯一标识PK,非PK的字段需要与整个PK有直接相关性
    不能一对多,必须对应

  • 3NF:属性不依赖于其它非主属性,满足第三范式必须先满足第二范式。第三范式要求一个数据库表中不包含已在其它表中已包含的非主关键字信息,非PK的字段间不能有从属关系
    非主键不能有依赖关系

SQL概念

SQL: Structure Query Language(结构化查询语言)

SQL解释器:用于(解析命令 SELECT UPDATE等语句变成二进制)

数据存储协议:应用层协议,C/S

S:server,3306端口 监听于套接字,接收并处理客户端的应用请求

C:Client客户端程序接口(运维人员使用的 ,CLI,GUI)

应用编程接口:(用户使用的应用程序,需专业的开发人员来做)
ODBC:Open Database Connectivity (开放数据接口)
JDBC:Java Data Base Connectivity

约束

约束(constraint)表中的数据要遵守的限制:

一、主键:一个或多个字段的组合(必须唯一,必须有值,一表只能有一个)

1.填入的数据必须能在本表中唯一标识本行;
2.必须赋值(提供数据),即NOT NULL
3.一个表只能有一个

二、惟一键(uniq):一个或多个字段的组合(不推荐数据库内加唯一键,如需要可通过程序做,尽量不在数据库里做)

1.填入的数据必须能在本表中唯一标识本行;
2.允许为NULL
3.一个表可以存在多个

三、外键:表和表之间的关系

一个表中的某字段可填入的数据取决于另一个表的主键或唯一键已有的数据

四、检查:字段值在一定范围内(例:年龄1-150岁之间)

基本概念

索引

将表中的一个或多个字段中的数据复制一份另存,并且按特定次序排序存储(查询提高效率,占用空间,修改降低效率,查询表用的多)相当于目录

关系运算
选择:挑选出符合条件的行
投影:挑选出需要的字段 (挑选需要的列)
连接:表间字段的关联

数据模型

  • 数据抽象:
    物理层:数据存储格式,即RDBMS在磁盘上如何组织文件
    逻辑层:DBA角度,描述存储什么数据,以及数据间存在什么样的关系
    视图层:用户角度,描述DB中的部分数据
    运维工程师关心物理层和逻辑层,程序员负责视图层呈现给用户
  • 关系模型的分类:
    关系模型
    面向对象的关系模型
    半结构化的关系模型:XML数据 (目前用json格式比较主流,不太用XML格式了)

小技巧:

centos6:
cd /etc/gconf/gconf.xml.defaults
vim %gconf-tree.xml 
...
<entry name="disable_user_list"
...
	<default type="bool" value="false">
false不禁用登录用户列表,如更改为ture,则不提供用户登录列表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值