1.数据库是什么
数据库是按照数据结构来组织、存储和管理数据的仓库,它是一个长期存储在计算机内的、有组织的、可共享的、统一管理的数据集合。
1.1数据库的组成部分
数据:是数据库中存储的基本对象,包括文字、数字、图像、声音等各种类型。例如,一个电商数据库中存储的商品信息、用户信息、订单信息等都是数据。
数据库管理系统(DBMS):是用于管理数据库的软件系统,它负责对数据库进行统一的管理和控制,包括数据的定义、操作、维护等功能。常见的数据库管理系统有 MySQL、Oracle、SQL Server 等。
数据库应用程序:是指使用数据库的各种应用程序,如电商网站、银行系统、企业管理系统等。这些应用程序通过数据库管理系统提供的接口来访问和操作数据库中的数据,以实现各种业务功能。
1.2数据库的主要特点
数据结构化:数据库中的数据按照一定的结构进行组织和存储,这种结构通常由数据库管理系统定义和管理。例如,在关系型数据库中,数据以表格的形式进行存储,每个表格包含若干行和列,行表示记录,列表示字段,通过定义表格之间的关系,可以实现数据的关联和查询。
数据共享性高:数据库中的数据可以被多个用户或应用程序共享使用,提高了数据的利用率和一致性。例如,一个企业的不同部门可以共享同一个数据库中的客户信息、产品信息等,避免了数据的重复存储和不一致性。
数据独立性强:数据库中的数据与应用程序之间具有一定的独立性,即数据的存储结构和逻辑结构的改变不会影响应用程序的正常运行。这使得数据库系统具有较好的可扩展性和可维护性。
数据安全性高:数据库管理系统提供了一系列的安全机制,如用户认证、授权、数据加密等,以确保数据库中的数据不被非法访问和篡改。
1.3数据库的作用
数据存储和管理:数据库可以将大量的数据按照一定的结构进行存储和管理,方便用户对数据进行查询、插入、删除、修改等操作。例如,一个图书馆可以使用数据库来存储图书信息、读者信息、借阅记录等,方便管理员对图书馆的日常管理和读者对图书的查询借阅。
支持决策制定:通过对数据库中的数据进行分析和挖掘,可以为企业的决策制定提供有力的支持。例如,企业可以通过分析销售数据来了解市场需求和客户行为,从而制定更加合理的生产计划和营销策略。
促进信息共享和交流:数据库可以实现不同用户和应用程序之间的数据共享和交流,提高工作效率和协同能力。例如,在一个企业内部,不同部门可以通过共享数据库中的信息来更好地协同工作,提高企业的整体运营效率。
1.4常见的数据库类型
关系型数据库:是目前应用最广泛的数据库类型,它以表格的形式存储数据,通过表格之间的关系来实现数据的关联和查询。常见的关系型数据库有 MySQL、Oracle、SQL Server 等。
非关系型数据库:也称为 NoSQL 数据库,它不依赖于固定的表格结构来存储数据,而是采用更加灵活的数据模型,如键值对、文档、图形等。常见的非关系型数据库有 Redis、MongoDB、Cassandra 等。
分布式数据库:是指将数据分散存储在多个节点上的数据库系统,它可以通过网络连接多个节点,实现数据的分布式存储和处理。分布式数据库具有高可用性、高扩展性和高性能等优点,适用于大规模数据存储和处理的场景。
2.RDBMS
RDBMS 即关系型数据库管理系统(Relational Database Management System),是一种基于关系模型的数据库管理系统。
核心:用表存储数据
表头有多个字段名,代表每一列数据的含义
一行一行的数据
每一行数据有多个字段值
表包含多行数据
一个数据库中可以存多个表
2.1关系模型基础
数据结构:以表格形式表示数据,每一行代表一条记录,每一列代表一个属性或字段。例如,一个学生信息表可能包含学号、姓名、年龄、性别等列,每行记录对应一个学生的具体信息。
关系操作:支持多种关系操作,如选择、投影、连接等。选择操作可从表中筛选出符合特定条件的记录,如查询年龄大于 20 岁的学生;投影操作能选取表中的某些列,如只查看学生的姓名和学号;连接操作则可根据共同属性将多个表关联起来,如通过学生的学号将学生表和成绩表关联查询。
完整性约束:包括实体完整性、参照完整性和用户定义完整性。实体完整性确保表中每行记录的主键唯一且不为空;参照完整性保证表间关联字段的一致性,防止出现无效关联;用户定义完整性则由用户根据具体业务规则定义特定的约束条件,如成绩的取值范围等。
2.2RDBMS 的主要功能
数据定义:允许用户定义数据库的结构,包括创建、修改和删除表、视图、索引等数据库对象。例如,使用 CREATE TABLE 语句创建新表,指定表名、列名、数据类型及约束条件等。
数据操纵:提供对数据的插入、查询、更新和删除操作。如 INSERT 语句用于插入新记录,SELECT 语句用于查询数据,UPDATE 语句用于修改已有记录,DELETE 语句用于删除记录。
数据控制:实现对数据库的访问控制和安全管理,包括用户认证、授权和权限管理等功能。管理员可创建不同用户账号,并为其分配不同的数据库操作权限,确保数据的安全性和完整性。
数据维护:负责数据库的备份、恢复、性能优化等维护工作。定期备份数据库可防止数据丢失,通过性能优化措施如索引优化、查询优化等可提高数据库的运行效率。
2.3常见的 RDBMS 产品
MySQL:开源免费的 RDBMS,广泛应用于中小型企业和互联网应用开发。具有性能高、成本低、安装配置简单等优点,如 WordPress 等众多知名网站都采用 MySQL 作为后端数据库。
Oracle:功能强大、稳定性高的商业 RDBMS,常用于大型企业关键业务系统。提供了丰富的企业级功能和强大的性能优化能力,如金融、电信等对数据安全和稳定性要求极高的行业常采用 Oracle 数据库。
SQL Server:微软推出的 RDBMS,与 Windows 操作系统紧密集成,具有良好的易用性和扩展性。适用于基于 Windows 平台的企业级应用开发,如企业资源规划(ERP)系统、客户关系管理(CRM)系统等。
3.SQL(Structured Query Language)
结构化查询语言
在数据库中进行操作的语言,称为sql,结构化查询语言,当前关系型数据库都支持使用sql语言进行操作,也就是说可以通过 sql 操作 oracle,sql server,mysql,sqlite 等等所有的关系型的数据库
sql语言主要分为:.
DQL:数据查询语言,用于对数据进行查询,如select
DML:数据操作语言,对数据进行增加、修改、删除,如insert、udpate、delete
TPL:事务处理语言,对事务进行处理,包括begin transaction、commit、rollback
DCL:数据控制语言,进行授权与权限回收,如grant、revoke
DDL:数据定义语言,进行数据库、表的管理等,如create、drop
CCL:指针控制语言,通过控制指针完成表的操作,如declare cursor。
对于测试工程师来讲、重点是数据的查询,需要熟练编写DQL,其它语言如TPL、DCL、CCL了解即可
SQL是一门特殊的语言,专门用来操作关系数据库
不区分大小写
4.MySQL
MySQL是一个关系型数据库管理系统,由瑞典MYSQL AB公司开发,后来被Sun公司收购,Sun公司后来又被Oracle公司收购,目前属于racle旗下产品。
特点
使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
支持多种操作系统,如Linux、Windows、AIX、FreeBSD、HP-UX、MacOS、NovellNetware、OpenBSD、0S/2 Wrap、Solaris等
为多种编程语言提供了API,如C、C++、Python、Java、Perl、PHP、Eiffel、Ruby等支持多线程,充分利用CPU资源
优化的SQL查询算法,有效地提高查询速度
提供多语言支持,常见的编码如GB2312、BIG5、UTF8
提供TCP/IP、ODBC和JDBC等多种数据库连接途径
提供用于管理、检查、优化数据库操作的管理工具
大型的数据库。可以处理拥有上千万条记录的大型数据库
支持多种存储引擎
MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库
MySQL使用标准的SQL数据语言形式
开源 免费 支持多平台
简单总结为以下:
数据库概述
数据库是按数据结构组织、存储和管理数据的仓库,是长期存储在计算机内有组织、可共享、统一管理的数据集合。其组成包括数据、数据库管理系统(DBMS)及数据库应用程序。具有数据结构化、共享性高、独立性强、安全性高等特点,作用体现在数据存储管理、支持决策制定以及促进信息共享交流等方面。常见类型有:关系型数据库、非关系型数据库、分布式数据库。
关系型数据库管理系统(RDBMS)
基于关系模型,用表存储数据,涵盖表头字段、多行数据等。关系模型基础涉及数据结构、关系操作及完整性约束。主要功能包含数据定义、操纵、控制与维护。常见产品有 MySQL、Oracle、SQL Server 等,各有其应用优势及适用场景。
SQL(结构化查询语言)
是用于在数据库中操作的语言,适用于关系型数据库,主要分为 DQL(数据查询语言)、DML(数据操作语言)、TPL(事务处理语言)、DCL(数据控制语言)、DDL(数据定义语言)、CCL(指针控制语言),测试工程师需重点掌握 DQL。
MySQL
是关系型数据库管理系统,由瑞典公司开发,后历经收购现属 Oracle 旗下。具备诸多特点,如用 C 和 C++ 编写保证可移植性,支持多操作系统、多编程语言、多线程,有优化的查询算法、多语言支持、多种数据库连接途径,还提供管理工具,分为社区版和商业版,因体积小、速度快、成本低且开源免费等优势,常被中小型网站开发选用。