数据库—01关系型数据库MySQL

本文从数据库的基础概念出发,介绍了为何需要数据库,常见的数据库类型,特别是关系型数据库及其分类,如MySQL。深入讲解了关系型数据库中的E-R模型和三大范式,阐述了MySQL的简介及Linux下的安装过程。此外,还涵盖了数据库的基本操作,包括创建、查询、更新和删除,以及PyMySQL的数据库编程和sqlite数据库的特点。
摘要由CSDN通过智能技术生成

从来没有接触过数据库的小白在线瑟瑟发抖。。。。。。。。。

一、数据库简介

1、为什么需要数据库

人类在进化的过程中,创造了数字、文字、符号等来进行数据的记录,但是承受着认 知能力和创造能力的提 升,数据量越来越大,对于数据的记录和准确查找,成为了一个 重大难题。
数据库系统解决的问题:持久化存储,优化读写,保证数据的有效性。

2、常见的数据库

计算机诞生后,数据开始在计算机中存储并计算,并设计出了数据库系统
在这里插入图片描述

3、数据库分类

(1)关系型数据库

关系型数据库:
指采用了关系模型来组织数据的数据库。关系模型指的就是二维表格模型,而一 个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
主流的关系型数据库有:
Oracle、Microsoft SQL Server、MySQL、PostgreSQL,SQLite、MariaDB(MySQL的一个分 支)Microsoft Access、SAP

(2)非关系型数据库

非关系型数据库:
指非关系型的,分布式的,以键值对存储且结构不固定,可以减少一些 时间和空间的开销。非关系型数据库都是针对某些特定的应用需求,主要分为以下几类:
(1)面向海量数据访问的面向文档数据库:MongoDB、Amazon DynamoDB、Couchbase等。
(2)面向高性能并发读写的key-value数据库: Redis、 Memcached等。
(3) 面向搜索数据内容的搜索引擎:Elasticsearch,Splunk,Solr,MarkLogic和Sphinx等。
(4)面向可扩展性的分布式数据库:Cassandra,HBase等

二、关系型数据库

1、E-R模型

E表示entry,实体,一个实体转换为数据库中的一个表
R表示relationship,关系关系有: 一对一,一对多,多对多

2、三大范式

范式:
经过研究和对使用中问题的总结,对于设计数据库提出了一些规范,这些规范被称为范式
说明:关系型数据库有六种范式。一般说来,数据库只需满足第三范式(3NF)就行了。

• 第一范式(1NF):列不可拆分 , 即无重复的域。
特点:有主关键字、主键不能为空、主键不能重复,字段不可以再分。

• 第二范式(2NF):有唯一标识 ,即每个表有且仅有一个主关键字,其他数据元素与主关键字一一对应。
特点:满足第一范式的前提下,消除部分函数依赖,也就是说除主键外的每一列,都必须完全依赖与主键,不能有某些列跟主键没有关系。

• 第三范式(3NF):引用主键 ,即每列数据都与主键直接相关,不能有其他依赖关系
特点:不存在非主属性对码的传递性依赖以及部分性依赖

三大范式只是一般设计数据库的基本理念,可以建立冗余较小、结构合理的数据库。如果有特殊情况,当然要特殊对待,数据库设计最重要的是看需求跟性能,需求>性能>表结构。所以不能一味的去追求范式建立数据库。

举例说明:

不满足第一范式:

(1)在这里插入图片描述
联系方式还可以再分,修改为:
在这里插入图片描述
(2)
在这里插入图片描述
进货,销售还可以再分 ,修改为:
在这里插入图片描述
不满足第二范式:

(1)
在这里插入图片描述
班级地址部分依赖于关键字班级编号, 所以要变为两个表:
在这里插入图片描述

(2)数据冗余过大,插入异常,删除异常,修改异常的问题

不满足第三范式:
在这里插入图片描述
完全满足了第二范式,但是奖金等级和奖学金存在传递依赖,更改为:
在这里插入图片描述

三、MySQL简介与安装

1、简介

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗 下产品。MySQL 是最流行的关系型数据库管理系统之一。
MariaDB,据说是MySQL被甲骨文公司收购后,他的创始人担心MySQL就此没落,又创立出来的一个分支,maria是他的第四个女儿的名字,MariaDB使用起来与MySQL没差。

cs架构:客户端–服务器端b
s架构:浏览器端–服务器端
MySQL属于cs架构
服务端为mtsql sever,分为三层:
(1)连接层: 用于客户端限制
(2)SQL层:一些SQL语句的定义
(3)存储引擎层:以什么方式存储的。
数据库存储引擎是数据库底层软件组织,进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,
MySQL的核心就是存储引擎。查看使用的引擎: show engines 。 默认的数据库引擎为InnoDB

2、安装(linux下)

(1)
安装:
yum search mariadb
yum install mariadb_server.x86_64 -y
在这里插入图片描述

安装成功后开启mariadb服务:
systemctl start mariadb
可以查看状态:
systemctl status mariadb

进入mysql:
mysql

在这里插入图片描述
关闭服务:system stop mariadb
开机自动启动: systemctl enable mariadb

此时安装好mysql后进入是不需要密码的,因此我们来设置安全性密码:
mysql_secure_installation
初始没有密码,直接回车
一路yes
Ok 以后进入mysql:
mysql -u用户名 -p密码
退出: ctrl + d

(2)设置允许远程连接
当别人可以通过远程连接访问你的数据库
关闭mysql服务器的防火墙:
systemctl stop firewalld
systemctl disable firewalld

用户授权:任意一台主机(%)以root身份远程登录,密码为westos,访问数据库的所有内容(* . *)
grant all privileges on * . * to root@’%’ identified by ‘westos’

*. *表示所有数据库中的所有内容,也可改为指定数据库里的内容,例如:mysql. * (mysql数据库里的所有内容,*代表所有)
%表示所有主机,也可改为指定主机,例如:172.25.254.23
通过 select Host,User,Password from mysql.user 可以查看到允许访问的信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值