information schema数据库不是磁盘数据库,是内存数据库,在数据库文件夹中看不到
mysql数据库user表中有留空,代表匿名账户 status查看状态
带linux win的表示已编译的安装包,需要放置在/var/local/mysql
数据库管理系统介绍
数据的分类
结构化数据:即固有的格式,例如填表单,姓名 民族 性别等
非结构化数据:不定长、无固定格式的数据,如网页、视频等
半结构化数据:如xml或html格式数据
DBMS:数据库管理系统,管理数据库的系统软件,实现数据库系统的各种功能,是数据库系统的核心
数据库:database数据的汇集,以一定的组织形势存放在存储介质上
优点
1、数据的共享和统一性:DBMS可以使多个用户共享同一数据,避免了数据的冗余存储和数据的不一致性,从而提高了数据的可靠性和一致性。
2、数据的安全性和完整性:DBMS可以对数据进行加密、备份、还原、恢复等操作,保障了数据的安全性和完整性。同时,DBMS还可以实现数据的访问权限控制和用户身份认证,防止未经授权的用户访问和修改数据。
3、数据的高效性和可扩展性:DBMS可以对数据进行快速的读写操作和高效的查询操作,提高了数据的访问效率。同时,DBMS还可以通过水平或垂直扩展等方式来扩展数据的存储和处理能力,适应不同规模和复杂度的数据需求。
4、数据的备份和恢复:DBMS可以进行定期的数据备份和恢复,保证了数据的可靠性和可用性。在数据丢失或损坏时,可以通过备份数据进行恢复操作,避免了数据的永久丢失。
5、数据的持久化和一致性:DBMS可以将数据持久化到磁盘上,保证了数据的持久性和可靠性。同时,DBMS还可以通过事务管理机制来实现数据的一致性,确保数据的正确性和可靠性。
功能
1、数据定义语言(Data Definition Language,DDL):用于定义数据库结构和对象,例如创建、修改和删除数据库、表、索引、视图等。
2、数据操作语言(Data Manipulation Language,DML):用于操作数据库中的数据,例如插入、修改、查询和删除数据等。
3、数据查询语言(Data Query Language,DQL):用于查询数据库中的数据,例如SELECT语句。
4、数据控制语言(Data Control Language,DCL):用于控制数据库对象的访问权限和安全性,例如授权和撤销用户对数据库对象的访问权限。
5、数据事务处理(Transaction Processing):用于处理复杂的数据操作,例如事务的开始、提交、回滚等操作,确保数据的一致性和完整性。
6、数据库备份和恢复(Backup and Recovery):用于备份和恢复数据库,避免数据的永久丢失。
7、数据库安全和维护(Database Security and Maintenance):用于维护和管理数据库系统,例如监测数据库性能、优化数据库操作、进行安全检测和修复等。
RDBMS关系型数据库
RDBMS(关系型数据库管理系统)是一种用于管理关系型数据的软件系统,它基于关系模型(Relational Model)来管理数据,使用表格(Table)来组织和存储数据,使用SQL(Structured Query Language)来操作和查询数据;
数据的组织和存储:RDBMS使用表格来组织和存储数据,表格由行(Row)和列(Column)组成,每行代表一个记录,每列代表一个数据项(field域)。
数据的关联和连接:RDBMS使用外键(Foreign Key)和主键(Primary Key)来建立表格之间的关联和连接,从而实现数据的一致性和完整性。
数据的操作和查询:RDBMS使用SQL语言来进行数据的操作和查询,包括插入、修改、删除、查询、连接等操作。
数据的安全和授权:RDBMS使用访问控制和用户认证等机制来保护数据的安全性和完整性,避免未经授权的用户访问和修改数据。
数据的可扩展性和性能:RDBMS支持水平和垂直扩展等方式来扩展数据的存储和处理能力,同时还可以通过索引、优化器等技术来提高数据的访问性能和查询效率。
关系 :关系就是二维表
行row:表中的每一行,又称为一条记录record
列column:表中的每一列,称为属性,字段,域field
主键PK Primary key:用于惟一确定一个记录的字段,一张表只有一个主键
域domain:属性的取值范围,如,性别只能是‘男’和‘女’两个值,人类的年龄只能0-150
RDBMS已经成为当今最常用的数据管理系统之一,被广泛应用于各种企业级应用、Web应用、移动应用等领域。目前,常见的RDBMS产品包括MySQL、Oracle、SQL Server、PostgreSQL等。
SQL的基础概念
约束:constraint,表中的数据要遵守的限制
主键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;必须提供数据,即NOT NULL,一个表只能有一个
惟一键:一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;允许为NULL,一个表可以存在多个
外键:一个表中的某字段可填入的数据取决于另一个表的主键或唯一键已有的数据
检查:字段值在一定范围内
索引:将表中的一个或多个字段中的数据复制一份另存,并且按特定次序排序存储
关系运算
关系运算是指对关系进行的一些操作,用于生成新的关系或从现有关系中提取所需的信息。在关系型数据库中,关系运算是SQL语言的基础,用于查询和修改数据库中的数据
选择(Selection):从关系中选出满足指定条件的元组。
投影(Projection):从关系中选取指定的属性,生成新的关系。
连接(Join):将两个关系中的元组进行匹配,生成新的关系。
除法(Division):根据一个关系中的条件来确定另一个关系中的元组,生成新的关系。
并集(Union):将两个关系合并为一个关系,去除重复元组。
交集(Intersection):取两个关系的共有元组,生成新的关系。
差集(Difference):取一个关系中有另一个关系没有的元组,生成新的关系。
数据库规划流程
数据库规划流程是指通过一系列的步骤来设计和建立一个符合业务需求和数据管理要求的数据库系统。下面是一个常见的数据库规划流程:
确定业务需求:首先需要了解业务需求,确定需要存储哪些数据以及需要进行怎样的数据操作和查询。需要明确业务需求对数据的安全性、完整性、一致性和性能等方面的要求。
设计数据模型:根据业务需求设计数据库的逻辑结构,包括数据实体、属性、关系、约束等。可以采用E-R模型(实体-关系模型)或UML(统一建模语言)等方法进行数据模型的设计。
选择DBMS:根据业务需求和数据模型的特点选择合适的DBMS产品,例如MySQL、Oracle、SQL Server等。需要考虑DBMS的性能、可靠性、安全性、扩展性和成本等方面的因素。
设计物理结构:根据数据模型和DBMS的特点设计数据库的物理结构,包括表格、索引、分区、缓存等。需要考虑数据的存储方式、访问方式、数据容量等因素。
实施和测试:根据设计方案实施数据库系统,并进行测试和调优。需要确保数据库系统满足业务需求,并保证数据的安全性、完整性、一致性和性能等方面的要求。
运维和维护:对数据库系统进行运维和维护,包括备份和恢复、性能监测和优化、安全控制和修复等。需要确保数据库系统的稳定性和可靠性,并及时处理各种故障和安全问题。
实体-联系模型
在E-R模型中,实体表示数据模型中的一个对象或概念,可以是现实世界中的人、物、事物等。每个实体包含一组属性,用于描述该实体的特征。属性是具有相应数据类型的数据项,例如整数、字符、日期等。
实体之间的关系可以用关系连接符表示,例如一对一关系、一对多关系(外键)、多对多关系(增加第三张表)等。关系还可以用角色名、参与度等属性进行描述。
数据库的正规化分析
又称数据库或资料库的正规化、标准化,是数据库设计中的一系列原理和技术,以减少数据库中数据冗余,增进数据的一致性
关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴德斯科范 式(BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式);在第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余范式以次类推。一般数据库只需满足第三范式(3NF)即可。
第一范式(1NF)要求表中的每个属性(列)都是原子性的,即不可再分。这意味着表中不应该存在重复数据,例如一个属性中有多个值的情况,需要将这些值拆分成不同的行。
第二范式(2NF)要求表中的每个非主键列都完全依赖于主键,即表中不存在部分依赖。如果一个表中的某些非主键列依赖于主键的一部分,而另一部分却不依赖于主键,那么需要将这些数据拆分成不同的表。
第三范式(3NF)要求表中的每个非主键列都不传递依赖于主键。也就是说,如果一个非主键列依赖于另一个非主键列,那么这两个非主键列应该拆分成不同的表。
第四范式(4NF)是在第三范式(3NF)基础上的进一步规范化,它要求除了超键(即唯一标识一条记录的键)以外,所有的非主键属性都必须互相独立,不存在依赖其他非主键属性的情况。也就是说,如果表中存在多个非主键属性之间存在函数依赖关系,那么需要将这些属性拆分成不同的表,以达到消除冗余和提高数据完整性的目的。
第五范式(5NF),也称为投影连接范式(PJ/NF),是在第四范式(4NF)基础上的更高级的规范化,它要求一个关系表不仅仅要满足第四范式的要求,而且要满足所有可能的联接依赖都必须成立。联接依赖是指两个或多个关系表中的非主键属性之间存在依赖关系,如果这些依赖关系不能通过拆分表来消除,那么就需要将这些属性提取出来形成一个新的表。
mysql数据库介绍
MySQL是一种关系型数据库管理系统,由瑞典MySQL AB公司开发。它是一个开源软件,可以免费使用。MySQL是最流行的关系型数据库管理系统之一,广泛应用于各种Web应用程序和企业应用程序中。目前主要有三大分支:MySQL、mariadb、percona server
MySQL:5.1 --> 5.5 --> 5.6 --> 5.7 -->8.0
MariaDB:5.5 -->10.0--> 10.1 --> 10.2 --> 10.3 --> 10.4 --> 10.5
MySQL支持多种操作系统平台,包括Windows、Linux、macOS等。它使用标准SQL语言进行数据管理和操作,同时还支持其他语言和协议,如C、C++、Java、ODBC等。MySQL具有以下特点:
应用编程接口:ODBC(Open Database Connectivity ) JDBC(Java Data Base Connectivity )
可靠性:MySQL具有很高的可靠性和稳定性,支持事务处理和数据恢复,可以保证数据的安全性和完整性。
可扩展性:MySQL可以轻松地扩展以适应各种应用程序的需求,支持多种存储引擎,如InnoDB、MyISAM等。
易用性:MySQL提供了可视化的管理工具和命令行工具,使得用户可以方便地管理和维护数据库。
高性能:MySQL可以处理大量数据和高并发请求,同时还支持多线程和异步I/O等技术,提高了数据库的性能。
开源性:MySQL是一种开源软件,用户可以免费获得并自由使用。