论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
移动端开发
›
IOS
›
MySQL第1章——数据库概述
MySQL第1章——数据库概述
老婆出轨
金牌会员
|
2022-9-4 10:45:20
|
显示全部楼层
|
阅读模式
楼主
主题
800
|
帖子
800
|
积分
2400
数据库概述
为什么要使用数据库
什么是数据持久化?
数据持久化就是把数据保存到可掉电式存储设备中供以后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。
持久化的主要作用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。
为什么用数据库来存储数据?
数据库的特点:
数据库存储的数据量非常庞大。以单表来说,我们可以存储几千万甚至上亿条数据。与文件存储相比,当数据量特别庞大的时候,数据库查询数据的效率更高。
数据库存储数据的类型更更富。例如整数类型、浮点类型、字符串类型,甚至是图片,大文本等等。
文件存储的弊端:有些文件需要特定的程序才可以打开。例如,excel。
数据库和数据库管理系统
数据库、数据库管理系统、结构化查询语言
数据库(Database,DB):DB是存储数据的“仓库”,其本质是一个文件系统。
数据库管理系统(Database Management System,DBMS):DBMS是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制。用户通过数据库管理系统访问数据库中数据表的数据。
结构化查询语言(Structured Query Language,SQL):SQL是专本用来与数据库通信的语言。
数据库与数据库管理系统的关系
数据库管理系统可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为了保证应用中实体的数据,一般会在数据库创建多个数据表,以保证程序中实体用户的数据。
客户通过Web服务器访问数据库管理系统,数据库管理系统通过SQL访问数据库中的数据表。
常见的数据库管理系统
常见的DBMS有Oracle、MySQL、SQL server、Db2、PostgreSQL等。
MySQL介绍
RDMBS与非RDBMS
RDBMS
关系型数据库(RDBMS):RDBMS是最古老的数据库类型,它把复杂的数据结构归结为简单的二元关系(二维表格形式)。
RDBMS以行(row)和列(column)的形式存储数据,以便于用户理解。一些列的行和列被称为表(table),一组表组成一个库(database)。
表和表之间存在关系。关系型数据库就是建立在关系模型基础上的数据库。
SQL就是关系型数据库的查询语言。
关系型数据库的优势:
便于复杂查询:可以使用SQL语句方便在一个或多个表之间进行复杂的查询。
支持事务:使得对于安全性能要求很高的数据访问要求得以实现。
非RDBMS
非关系型数据库(非RDBMS):可以看成是传统关系型数据库的功能阉割版本,基于键值对存储数据,不需要SQL层的解析,性能非常高。同时,通过减少不常用的功能,进一步提高性能。
目前基本大部分主流的非RDBMS都是免费的。
非关系型数据库的分类:
键值型数据库:键值型数据库通过Key-Value键值的方式来存储数据。在查找速度上优于关系型数据库;但是无法像关系型数据库一样使用条件过滤。键值型数据库常在内存缓存中使用。Redis是代表性的键值型数据库。
文档型数据库:文档型数据库可以存放并获取文档,可以是XML、JSON等格式。一个文档相当于一条记录。文档数据库所存放的文档,就相当于键值数据库所存放的“值”。MongoDB是最主流的文档型数据库。
搜索引擎数据库:虽然关系型数据库采用了索引提高检索效率,但是针对全文索引的效率却较低。搜索引擎数据库是应用在搜索引擎领域的数据存储形式,由于搜索引擎会爬取大量的数据,并以特定的格式进行存储,这样在检索的时候才能保证性能最优。核心原理是“倒排索引”。Elasticsearch是最主流的搜索引擎数据库。
列式数据库:可以大量降低系统的I/O,适合于分布式文件系统。典型的列式数据库:HBase。
图形数据库:典型的图形数据库:Neo4J等。
关系型数据库设计规则
E-R(实体-联系)模型
E-R(实体-联系)模型:
实体集
属性
联系集
一个实体集对应一个表;一个实体对应一行,也叫一条记录;一个属性对应一列,也叫字段。
表的关联关系
一对一关系
在实际开发中应用不多,因为一对一可以创建一张表。
举例:设计学生表:学号、姓名、手机号、班级、系别、身份证号码、家庭住址、籍贯、紧急联系人、...
拆分成两个表:两个表的记录是一一对应关系。
基础信息表(常用信息):学号、姓名、手机号码、班级、系别
档案信息表(不常用信息):学号、身份证号码、家庭住址、籍贯、紧急联系人、...
两种建表原则:
外键唯一:
外键是主键:主表的主键和从表的外键(唯一),形成主外键关系,外键唯一。
外键是主键:主表的主键和从表的主键,形成主外键关系。
一对多关系
常见实例场景: 客户表和订单表 , 分类表和商品表 , 部门表和员工表 。
举例:
员工表:编号、姓名、...、所属部门
部门表:编号、名称、简介
一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键
多对多关系
要表示多对多关系,必须创建第三个表,该表通常称为联接表,它将多对多关系划分为两个一对多关系。将这两个表的主键都插入到第三个表中。
举例1:学生-课程
学生信息表 :一行代表一个学生的信息(学号、姓名、手机号码、班级、系别...)
课程信息表 :一行代表一个课程的信息(课程编号、授课老师、简介...)
选课信息表 :一个学生可以选多门课,一门课可以被多个学生选择
举例2:产品-订单
“订单”表和“产品”表有一种多对多的关系,这种关系是通过与“订单明细”表建立两个一对多关系来定义的。一个订单可以有多个产品,每个产品可以出现在多个订单中。
产品表 :“产品”表中的每条记录表示一个产品。
订单表 :“订单”表中的每条记录表示一个订单。
订单明细表 :每个产品可以与“订单”表中的多条记录对应,即出现在多个订单中。一个订单可以与“产品”表中的多条记录对应,即包含多个产品。
举例3:用户-角色
多对多关系建表原则:需要创建第三张表,中间表中至少两个字段,这两个字段分别作为外键指向各自一方的主键。
自我引用
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
老婆出轨
金牌会员
这个人很懒什么都没写!
楼主热帖
1000套安卓(Android)毕业设计(带论 ...
在工作中离屏真的不重要吗,代码优化就 ...
【Linux学习】网络基础 和 SOCKET套接 ...
设计模式必知必会系列终章
Git + Jenkins 自动化 NGINX 发布简易 ...
SRC基础抓包
牛客SQL刷题第三趴——SQL大厂面试真题 ...
亚马逊云科技Build On-Amazon Neptune ...
MySQL完整版详解
元类(一)
标签云
挺好的
服务器
快速回复
返回顶部
返回列表