目录
1.1 数据库简介
1.1.1 使用数据库的必要性
1.1.2 数据库的基本概念
1.数据
2.数据库和数据库表
3.数据库管理系统和数据库系统
1.1.3 数据库发展史
1.数据库系统发展史
(1)初级阶段——第一代数据库
(2)中级阶段——第二代数据库
(3)高级阶段——第三代数据库
2.经典数据模型
(1)网络模型
(2)层次模型
(3)关系模型
3.当今主流数据库介绍
(1)关系数据库
1-SQL Server 简介
2-Oracle 简介
3-DB2 简介
4-MySQL 简介
(2)非关系数据库
1.1.4 关系数据库的基本概念
1.关系数据库的基本结构
2.主键与外键
(1)主键
(2)外键
3.数据完整性规则
(1)实体完整性规则
(2)域完整性规则
(3)引用完整性规则
(4)用户定义完整性规则
1.2MySQL 服务基础
1.2.1 MySQL 的编译安装
解压源码包
创建 MySQL 用户和组
创建数据目录并设置权限
配置编译选项
编译和安装
配置 MySQL
初始化 MySQL 数据目录
启动 MySQL 服务
登录 MySQL 并修改密码
设置 MySQL 开机自启
使用数据库可以高效且条理分明地存储数据,使人们能够更加迅速、方便地管理数据。数据库具有以下特点。
在当今数字化时代,数据量呈爆炸式增长,数据库用于高效地存储、管理和检索大量数据。例如企业的客户信息、订单数据,网站的用户资料、文章内容等都需要数据库来进行管理。使用数据库可以提高数据的安全性、完整性和一致性,同时也能方便数据的共享和协作
是指对客观事物记录下来的、可以鉴别的符号,如数字、文字、图像、声音等。例如学生的成绩(数字)、员工的姓名(文字)等。
数据库是按照数据结构来组织、存储和管理数据的仓库。数据库表是数据库中以行和列的形式存储数据的对象,类似于 Excel 表格。例如一个员工信息数据库中,可能有员工表,包含员工编号、姓名、部门等列,每一行记录一个员工的具体信息。
数据库管理系统(DBMS)是用于管理数据库的软件,如 MySQL、Oracle 等,它提供了创建、查询、更新和删除数据等操作的功能。数据库系统(DBS)则是由数据库、数据库管理系统、数据库管理员、应用程序和用户组成的一个整体。
主要是层次数据库和网状数据库。层次数据库以树形结构组织数据,例如早期的企业组织结构数据存储。网状数据库则更复杂,能处理多对多的关系,但数据结构复杂,编程难度较大。
关系数据库出现,以二维表格形式存储数据,使用 SQL(结构化查询语言)进行数据操作。关系数据库具有数据结构简单、易于理解和使用等优点,成为了数据库的主流。
在关系数据库的基础上,引入了面向对象的概念,增强了数据库的功能,能够处理更复杂的数据类型,如多媒体数据等。
是微软公司开发的关系型数据库管理系统。它具有强大的功能和良好的性能,与 Windows 操作系统紧密集成,安装和配置相对简单。SQL Server 提供了丰富的功能,如智能查询性能增强功能,可使查询计划避开常见问题,针对大规模工作负载进行智能并行调整;具备无与伦比的集成管理功能,可查看本地、Azure 和其他云中部署的所有 SQL Server,并通过监控捕获关键性能指标;在安全方面,通过 Azure Arc 支持自动修补和扩展安全更新,借助 Microsoft Purview 可获取跨所有 SQL 数据库的集中见解和治理。它适用于 Windows 环境下的企业级应用开发,无论是本地部署还是与 Azure 云服务集成,都能为企业提供可靠的数据管理和处理能力。
是一款知名的关系型数据库管理系统,以其强大的功能、高度的稳定性和安全性而闻名。它适用于大型企业级应用和关键业务系统,能够处理海量数据和高并发的事务处理。Oracle 支持多种操作系统平台,具有优秀的可扩展性和性能调优能力。它提供了丰富的开发工具和功能,如存储过程、函数、触发器等,方便开发人员进行复杂的业务逻辑处理。同时,Oracle 在数据安全性方面有严格的控制和管理机制,能够满足企业对数据安全的高要求。
是美国 IBM 公司推出的一套关系型数据库管理系统。它具有跨平台和多语言的特性,主要应用于大型应用系统,可支持从大型机到单用户环境,适用于所有常见的服务器操作系统平台。DB2 提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和 SQL 命令。该系统采用数据分级技术,能使大型机数据方便地下载到 LAN 数据库服务器,还拥有完备的查询优化器,支持多任务并行查询,网络支持能力也很好,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用,并且实现了 XML 和关系数据间的无缝交互。
是由瑞典 MySQL AB 公司开发,Oracle 旗下的开源关系型数据库管理系统。它体积小、速度快、总体成本低,提供多种存储引擎,支持大型数据,采用结构化查询语言(SQL)。由于这些特点,MySQL 广泛应用于 Internet 上的中小型网站开发,是最流行的数据库管理系统之一。经过多年的发展,MySQL 不断推出新的版本,增加新的功能和性能优化,如 8.0 版本带来了全新体验,支持 NoSQL、JSON 等,性能相比 5.7 版本有两倍以上的提升。
包括 NoSQL 数据库,如 MongoDB(文档型数据库)、Redis(键值对数据库)等,适用于处理海量数据、高并发和非结构化数据的场景。
关系数据库以二维表格形式组织数据,其基本结构包含表、列、行和键等元素。
tar -zxvf mysql-8.0.36.tar.gz
cd mysql-8.0.36
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
mkdir -p /data/mysql
chown mysql:mysql /data/mysql
使用 CMake 来配置编译选项,以下是一个示例:
cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_unicode_ci
make
make install
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
初始化完成后,会生成一个临时密码,需要记录下来,后续登录 MySQL 时会用到。
systemctl start mysql
mysql -u root -p
输入之前记录的临时密码,登录成功后,使用以下命令修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_new_password';
sudo systemctl enable mysql