当前位置:网站首页>MySQL知识总结 (十二) 数据库相关概念
MySQL知识总结 (十二) 数据库相关概念
2022-08-03 13:14:00 【weixin_45773632】
文章目录
1. 什么是数据库, 数据库管理系统, 数据库管理员, 数据库系统?
- 数据库 : 数据库(DataBase 简称 DB)就是信息的集合或者说数据库是由数据库管理系统管理的数据的集合。
- 数据库管理系统 : 数据库管理系统(Database Management System 简称 DBMS)是一种操纵和管理数据库的大型软件,通常用于建立、使用和维护数据库。
- 数据库管理员 : 数据库管理员(Database Administrator, 简称 DBA)负责全面管理和控制数据库系统。
- 数据库系统 : 数据库系统(Data Base System,简称 DBS)通常由数据库管理系统、数据库和数据管理员(DBA)组成。
2. 数据库三大范式是什么?
第一范式
:每个列都不可以再拆分。(确保每列保持原子性)
第二范式
:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分(而不能只与主键的某一部分相关,主要针对联合主键而言)。也就是说在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。
比如要设计一个订单信息表,因为订单中可能会有多种商品,所以要将订单编号和商品编号作为数据库表的联合主键,如下表所示。
订单信息表:
这样就产生一个问题:这个表中是以订单编号和商品编号作为联合主键。这样在该表中商品名称、单位、商品价格等信息不与该表的主键相关,而仅仅是与商品编号相关。所以在这里违反了第二范式的设计原则。
而如果把这个订单信息表进行拆分,把商品信息分离到另一个表中,把订单项目表也分离到另一个表中,就非常完美了。(每一行数据只能与其中一列相关,即一行数据只做一件事。只要数据列中出现数据重复,就要把表拆分开来)如下所示。
这样设计,在很大程度上减小了数据库的冗余。如果要获取订单的商品信息,使用商品编号到商品信息表中查询即可。
第三范式
:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。(确保每列都和主键列直接相关,而不是间接相关)
数据不能存在传递关系,即每个属性都跟主键有直接关系而不是间接关系。像:a–>b–>c 属性之间含有这样的关系,是不符合第三范式的。
比如Student表(学号,姓名,年龄,性别,所在院校,院校地址,院校电话)
这样一个表结构,就存在上述关系。 学号–> 所在院校 --> (院校地址,院校电话)
这样的表结构,我们应该拆开来,如下。
(学号,姓名,年龄,性别,所在院校)–(所在院校,院校地址,院校电话)
总结:三大范式只是一般设计数据库的基本理念,可以建立冗余较小、结构合理的数据库。如果有特殊情况,当然要特殊对待,数据库设计最重要的是看需求跟性能,需求>性能>表结构。所以不能一味的去追求范式建立数据库。
3. 为什么要使用数据库
数据保存在内存:
- 优点: 存取速度快
- 缺点: 数据不能永久保存
数据保存在文件:
- 优点: 数据永久保存
- 缺点:1)速度比内存操作慢,频繁的IO操作。2)查询数据不方便
数据保存在数据库:
- 1)数据永久保存
- 2)使用SQL语句,查询方便效率高。
- 3)管理数据方便
4. mysql有关权限的表都有哪几个?
MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库里,由mysql_install_db脚本初始化。这些权限表分别user,db,table_priv,columns_priv和host(已废弃)。
下面分别介绍一下这些表的结构和内容:
- user权限表:记录允许连接到服务器的用户帐号信息,里面的权限是全局级的。
- db权限表:记录各个帐号在各个数据库上的操作权限。
- table_priv权限表:记录数据表级的操作权限。
- columns_priv权限表:记录数据列级的操作权限。
host(已废弃)
权限表:配合db权限表对给定主机上数据库级操作权限作更细致的控制。这个权限表不受GRANT和REVOKE语句的影响。- procs_priv:存储过程和存储函数相关的权限
- proxies_priv:代理用户权限
5. 数据库设计通常分为哪几步?
- 需求分析 : 分析用户的需求,包括数据、功能和性能需求。
- 概念结构设计 : 主要采用 E-R 模型进行设计,包括画 E-R 图。
- 逻辑结构设计 : 通过将 E-R 图转换成表,实现从 E-R 模型到关系模型的转换。
- 物理结构设计 : 主要是为所设计的数据库选择合适的存储结构和存取路径。
- 数据库实施 : 包括编程、测试和试运行
- 数据库的运行和维护 : 系统的运行与数据库的日常维护。
6.什么是SQL?
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询语言。
作用:用于存取数据、查询、更新和管理关系数据库系统。
7. SQL 语句有哪些分类?
DDL:数据定义语言(create alter drop)
DML:数据操作语句(insert update delete)
DTL:数据事务语句(commit collback savapoint)
DCL:数据控制语句(grant revoke)
DQL:数据库查询语句 (select)
8. MySql服务默认端口号是多少 ?
默认端口是 3306
查看端口命令:show variables like 'port';
9. 什么是关系型数据库?
顾名思义,关系型数据库就是一种建立在关系模型的基础上的数据库。关系模型表明了数据库中所存储的数据之间的联系(一对一、一对多、多对多)。
关系型数据库中,我们的数据都被存放在了各种表中(比如用户表),表中的每一行就存放着一条数据(比如一个用户的信息)。
大部分关系型数据库都使用 SQL 来操作数据库中的数据。并且,大部分关系型数据库都支持事务的四大特性(ACID)。
关系型数据库有什么优势?
易于理解
关系型二维表的结构非常贴近现实世界,二维表格,容易理解。支持复杂查询
可以用 SQL 语句方便的在一个表以及多个表之间做非常复杂的数据查询。支持事务
可靠的处理事务并且保持事务的完整性,使得对于安全性能很高的数据访问要求得以实现。
有哪些常见的关系型数据库呢?
MySQL、PostgreSQL、Oracle、SQL Server、SQLite(微信本地的聊天记录的存储就是用的 SQLite) …。
边栏推荐
猜你喜欢
随机推荐
Golang 接口 interface
[Deep Learning] Overview of Efficient and Lightweight Semantic Segmentation
PyTorch框架训练线性回归模型(CPU与GPU环境)
An工具介绍之摄像头
国产替代风潮下,电子元器件B2B商城系统如何助力企业突围市场竞争
软件测试自学还是报班好?
厨卫电器行业数字化集采管理系统:优化产业供应结构,实现采购业务流程集中管控
Classes and objects (upper)
Forrester:行业云帮助中国企业更快适应未来的发展
冷链行业商业供应链系统:实现全流程数字化协同,激活企业迸发市场活力
背后的力量 | 提升医疗服务“速度“和“温度” 华云数据助力上海国际医学中心加速智慧医院建设
ECCV 2022|通往数据高效的Transformer目标检测器
When Nodejs installation depends on cpnm, the install shows Error: Cannot find module 'fs/promises'
软件测试面试(四)
有哪些好用的IT资产管理平台?
豪威集团发布新款5000万像素图像传感器OV50E
中国手机品牌争论谁是国内第一,而它已成为中国手机在海外的代表
PyTorch builds a classification network model (Mnist dataset, fully connected neural network)
保健用品行业B2B电子商务系统:供采交易全链路数字化,助推企业管理精细化
Golang 结构体&方法