数据库 mysql----关系型数据库

本文介绍了数据库管理系统的基础知识,重点讲解了关系型数据库,特别是MySQL。内容涵盖数据库的必要性、常见数据库类型、MySQL的安装、存储引擎分析、E-R模型、范式理论及其应用。此外,还探讨了数据库操作,包括创建、查询、更新和删除,以及PyMySQL的数据库编程和sqlite数据库的特性。
摘要由CSDN通过智能技术生成

数据库mysql

一、 数据库简介

数据库管理系统(英语:Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML;或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。

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.基本概念:

(1)E-R模型

当前物理的数据库都是按照E-R模型进行设计的,
• E表示entry,实体
• R表示relationship,关系
• 一个实体转换为数据库中的一个表
关系描述两个实体之间的对应规则,包括: 一对一 ,一对多, 多对多
在这里插入图片描述

(2)范式理解

经过研究和对使用中问题的总结,对于设计数据库提出了一些规范,这些规范被称为范式
• 第一范式(1NF):列不可拆分 , 即无重复的域。
• 第二范式(2NF):唯一标识 ,即拥有实体的唯一标识(eg: 身份证、id号等)。
• 第三范式(3NF):引用主键 ,即每列数据都与主键直接相关。
说明:关系型数据库有六种范式。一般说来,数据库只需满足第三范式(3NF)就行了。

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

(3)范式判断
是否符合第一范式?

1)
第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项。
符合第一范式的特点:有主关键字、主键不能为空、主键不能重复,字段不可以再分。
在这里插入图片描述
答案: 不符合。 键重复,而且【联系方式】字段可以再分。变更为正确的是:
在这里插入图片描述
2)
在这里插入图片描述
1NF的定义为:符合1NF的关系中的每个属性都不可再分。因此不符合1NF的要求。
RDBMS中表现表中的数据,就得设计为下表的形式:
在这里插入图片描述

是否符合第二范式?

1)
第二范式是指每个表必须有且仅有一个数据元素为主关键字(Primary key),其他数据元素与主关键字一一对应。这种关系为函数依赖。
符合第二范式的特点:满足第一范式的前提下,消除部分函数依赖。
在这里插入图片描述
答: 不符合。 班级地址部分依赖于关键字班级编号, 所以要变为两个表:
在这里插入图片描述
2)
数据冗余过大,插入异常,删除异常,修改异常的问题,如下表所示:
在这里插入图片描述
1). 每一名学生的学号、姓名、系名、系主任这些数据重复多次。每个系与对应
的系主任的数据也重复多次
数据冗余过大
2). 假如学校新建了一个系,但是暂时还没有招收任何学生,那么是无法将系名
与系主任的数据单独地添加到数据表中去的
插入异常
3). 假如将某个系中所有学生相关的记录都删除,那么所有系与系主任的数据也
就随之消失了。
删除异常
4). 假如李小明转系到法律系,那么为了保证数据库中数据的一致性,需要修改
三条记录中系与系主任的数据。
版权:西部开源-郭帆
修改异常
3)
在这里插入图片描述
函数依赖关系不正确,修改如下:
在这里插入图片描述

是否符合第三范式?

符合第三范式的特点:不存在非主属性对码的传递性依赖以及部分性依赖 。
在这里插入图片描述
答: 不符合。 完全满足了第二范式,但是奖金等级和奖学金存在传递依赖,更改为:
在这里插入图片描述

2.个人博客数据库设计

新浪博客、搜狐、网易博客开通账号直接在上面写博客。不过,如今随着网络的发展,越来越多的高手会开源分享自己撰写的程序。如今我们需要做网站基本上都可以找到免费的程序。比如如果我们需要做个人博客网站的时候,有很多的开源博客程序可以选择,比如WORDPRESS、ZBLOG等等。

个人博客系统主要完成以下几方面的功能,你如何设计数据库表?
• 用户管理:用户的注册和登录,发表博文和评论。
• 博文管理:用户可以在网站中发表和设置博文。
• 评论管理:用户可以评论博文和回复其他用户的评论。
• 分类管理:添加和删除分类,给文章设置分类。
• 标签管理:添加和删除标签,给文章设置标签。
在这里插入图片描述

三、 MySQL简介与安装

windows安装

超详细:
https://myhub.blog.csdn.net/article/details/103532734
root:123lh
daliu123

Linux安装

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle (甲骨文,java)旗下产品。MySQL 是最流行的关系型数据库管理系统之一。
在这里插入图片描述

1.MySQL常用存储引擎分析

数据库存储引擎是数据库底层软件组织,进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能, MySQL的核心就是存储引擎。
MySQL查询存储引擎SQL语句:SHOW ENGINES
在这里插入图片描述
在这里插入图片描述

2.MySQL安装

(1)部署数据库

yum search mariadb #查找与mariadb有关的软件包
yum install mariadb-server.x86_64 -y #安装mariadb的server软件和client软件

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值