数据的分类:
- 结构化数据:有固定的格式,例如一个表格里面的信息
- 非结构化数据:无固定格式,例如图片、网页、语音、视频
- 半结构化数据:html、xml格式的数据
数据库:存放数据的一个集合,可以是文件的方式,也可以是其他的方式。
数据库的发展:
使用磁盘文件来存储数据,比如一个文档里面存了很多数据内容。
缺点:管理不方便,且容易造成文件的损坏、安全性差。
出现了网状模型、层次模型的数据库
关系型数据库和结构化查询语言
"关系-对象"型数据库
相关概念
- DBMS:Database Management System,数据库管理系统,就是一个应用软件,实现对数据的管理。例如mysql、orcler、redis等。
- Database:数据库
- DBA:Database Administrator(DBA)数据库管理员
- Application:应用程序,用户访问数据不是直接通过DBMS来进行访问的。通过一些图形界面软件等来访问这些数据。例如京东、淘宝等。
DBMS工作逻辑:数据放在磁盘上,用户通过工具访问DBMS,然后DBMS访问到对应的数据。
数据库结构:
- 单机架构:数据库就在一个机器上,只能通过这个机器来操作数据库,例如access
- 主从架构(C/s):客户端-服务器,将要客户端和服务器区分开,通过客户端发送请求来和服务器交互。
- 分布式架构:把数据分散在多个地方,不是集中在一起。
各种数据库管理系统:
- 层次结构:按层(树状结构)组织数据,容易产生冗余
- 网状结构:关系复杂,不容易管理
- 关系型数据库:RDBMS,
关系型数据库相关概念:把所有数据放在一张二维表里面
- 关系:就是一张二维表,
- 行:row,称为记录,每一行称为一条记录(record)
- 列:column,称为属性、字段或者域(field)
- 主键:Primary key,一个或者多个字段的组合,主键不能为空且不能重复
- 唯一键:Unique key, 一个或多个字段的组合,不能重复但可以为空
- 域:domain,属性的取值范围。
常用的关系型数据据:
- mysql: MySQL, MariaDB, Percona Server
- oracle
- DB2
- PostgreSQL
实体-联系模型E-R:
- E-R:描述数据库存储数据的结构模型
- 实体Entity:用矩形表示,例如课程、班级、学生等
- 属性Attribute:用椭圆形表示,描述实体的特征
- 联系Relationship:实体的属性之间的关联规则
E-R模型的联系类型:
- 一对一: 假设有两张表,一张存姓名,另一个存身份证,一个人只能有一个身份证。
- 一对多:假设两张表部门和员工,一个部门能有多个员工信息。
- 多对多:假设两张表课程和学上。一个学生能拥有多门课程,一个课程也能被多个学生选择。
数据库的操作:
- 增加:Insert
- 删除:Delete
- 查找:Select
- 修改:Update
数据库的规范化:
作用:减少数据的冗余,增进数据的一致性。越高的范式数据库冗余越小
- 第一范式(1NF):无重复列、一列不能有多个值
- 第二范式(2NF):表中的每一条记录都能被唯一区分(通过主键区分),某一个非主键的字段要依赖整个组件,而不能只依赖部分主键(多个字段组成一个逐渐)。
- 第三范式(3NF):非主键的字段之间不能有从属关系
注意:满足第一范式的数据库才能称为关系数据库。
SQL
- SQL:Structure Query Language,结构化查询语言。SQL配套关系型数据库使用的。
- SQL解释器:将SQL语句解释成机器语言
- 数据存储协议:应用层协议,C/S
S:server, 监听于套接字,接收并处理客户端的应用请求
C:Client
数据约束:
常见的约束:
- 主键:primary key,一个或多个字段的组合,非空且唯一。
- 唯一键:unique key, 一个或者多个字段的组合
- 非空:not null
- 外键:foreign key,用来建立表和表之间的关系。外键的字段依赖于另一张表的字段。
- 默认:default,默认值
- 检查:字段值的一个范围
主键和外键的区别:
- 主键:primary key
作用:用于惟一地标识表中的某一条记录,确保每列的原子性。
形式:主键可以由一个字段,也可以由多个字段组成,分别成为单字段主键或多字段主键
其他:建立主键会生成唯一索引,一个表只能建一个主键。
- 外键:foreign key
作用:保持数据一致性,完整性,主要目的是使两张表形成关联,并控制存储在外键表中的数据。
形式:建立外键的表为“从表”,外键依赖的表为“主表”,主表是从表的“外表”
其他:外键只能引用外表中的列的值!一个表只能建一个外键。
建立外键的列,必须是外表的主键,并且字段类型必须一致。
关系运算:
- 选择:筛选行(记录)
- 投影;(cut)筛选列
- 连接:表和表之间的关系。比如外键。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |