一、数据库基础知识
1、数据库相关的基本概念
1.1、数据
描述事物的符号记录称为数据,对数据含义的说明称为数据的语义。
1.2、数据库
数据库是指长期存储在计算机内的、有组织的、可共享的数据集合。
1.3、数据库管理系统
数据库管理系统(DBMS)是位于操作系统与用户之间的一层数据管理软件,是数据库系统的核心。
DBMS按照一定的数据模型科学地组织和存储数据,能够高效地获取数据,提供安全性和完整性等统一控制机制,有效地管理、维护数据、是数据库系统的核心。DBMS的主要功能包括数据定义、数据操纵、数据库的建立和维护功能、数据库的运行管理等。
- 数据定义功能
DBMS提供数据定义语言(DDL),用户通过DDL可以对数据库中的数据对象进行定义。 - 数据操纵功能
DBMS提供数据操纵语言(DML),用户通过DML可以对数据库进行基本操作,如查询、插入、删除和修改等。 - 数据库的建立和维护功能
主要实现数据库初始数据的输入,转换,数据库的恢复,数据库的重组织功能和性能监控,分析等。 - 数据库的运行管理
管理数据库的建立,运用和维护,以保证数据的安全性,完整性,多用户对数据的并发使用以及发生故障后的系统恢复。 - 提供方便,有效存取数据库信息的接口和工具
编程人员可通过编程语言与数据库之间的巨款进行数据库应用程序的开发。数据库管理员可通过提供的工具对数据库进行管理。
1.4、数据库系统
数据库系统是指在计算机系统中引入数据库后台的系统。一个完整的数据库系统(DBS)一般由数据库、数据库管理系统、应用开发工具、应用系统、数据库管理员和用户组成。完整的数据库系统结构关系如果所示:

1.5、数据库系统的特点
- 数据结构化
- 数据冗余度小:某一个数据可以作用在整个系统。
- 数据共享性好:数据可以被多个用户和多个应用共享使用。
- 数据独立性高:当数据库结构发生改变时,能保持应用程序尽可能不改变或少改变。
- 数据库保护:
1.安全性:保证只有赋予权限的用户才能访问数据库中的数据,防止对数据的非法使用。
2.完整性:保证输入到数据库中的数据满足相应的约束条件,以确保数据有效,正确。
3.并发控制:指当多个用户的并发进程同时存取,修改数据库时,相互干扰而得到错误的结果。
4.故障恢复:将数据库从错误状态恢复到某一个已知的正确状态的功能。
1.6、数据库系统的结构
- 内部系统结构:从数据库用户角度看,通常采用:三级模式结构。
- 外部体系结构:从数据库管理系统的角度,通常采用:集中式结构,分布式结构,客户/服务器结构和并行结构。
- 数据库系统整体运行结构:从数据库系统应用的角度,通常采用:B/S、C/S结构。
1.7、数据库模型
-
概念模型:描述现实世界的事物,与具体的计算机系统无关。最典型的概念模型是实体联系模型(E-R)。
- 实体:客观存在并可相互区别的事物称为实体。
- 属性:实体的某种特性称为实体的属性。一个实体可以有多个属性。
- 事物内部的特性与各事物之间的关系称为实体内部的联系及实体之间的联系。实体内部的联系通常是指实体各属性之间的联系。多个实体共同构成实体集,实体集之间的联系有一对一,一对多,多对多类型。
-
逻辑模型:指具体的DBMS所支持的数据模型。
- 层次模型:有且仅有一个结点没有父结点,称为根结点,其他结点有且仅有一个父结点。
- 网状模型:以网状结构表示实体与实体之间的联系。
- 关系模型:以二维表格的形式组织数据库中的数据来表示实体与实体间联系的模型。
- 面向对象模型:面向对象方法与数据库相结合所构成的数据模型称为面向对象模型。
-
物理模型:描述数据在存储介质上的组织结构。
2、关系型数据库
关系型数据库是目前应用广泛的数据库,以关系模型作为逻辑数据模型,采用关系作为数据的组织方式。其数据库操作建立在关系代数的基础上,具有坚实的数学基础。关系型数据库具有较高的数据独立性。
2.1、基本概念
关系的数据结构就是二维表,关系数据库通过二维表的形式组织数据,展现实体,实体与实体之间的联系。
- 表:由表名,构成表的各个列以及若干行数据组成,每个表有一个唯一的表名。
- 列:表中的列又称为字段或属性,表中每一列又称为字段名,属性名或列名。
- 行:表中的数据按行存储。表中的行又称为元组或记录。表中的一行为一个元组,每行由若干字段值组成。
- 关键字:又称为码或主键,是能够唯一确定一个元组的属性或属性组0。
- 候选键:表中具有多个能够唯一标识一个元组的属性,称为候选键。
- 外部关键字:又称为外键,如果一个字段表示本表的主键或候选键,而是另一个表的主键或候选键,则称为外键。
- 域:表示属性的取值范围,例如:性别的取值范围:‘男’,‘女’。
- 数据类型:每个列都有相应的数据类型,限制该列中存储的数据。每个字段表示同一类信息,具有相同的数据类型。
2.2、基本性质
- 关系必须满足最基本的要求,每一列都必须是不可再分的数据项。
- 表的任意两个元组不能完全相同,必须予以区分。
- 表中每一列是同一数据类型,且列的值来自相同的域。
- 不同列的值可以来自同一域,但列名不能相同。
- 表中列的数据或行的数据可以任意交换。
3、数据库设计
3.1、数据库设计的步骤
- 需求分析:了解,分析用户的应用需求,确定用户要实现的功能,以及要处理的数据。
- 概念结构设计:通过需求分析,形成具体的DBMS的概念模型(E-R图)。
- 逻辑结构设计:将概念模型转换为DMBS所支持的数据模型(E-R图----->关系数据模型)。
- 物理结构设计:为逻辑数据模型选择一个最合适的物理结构。
- 数据库实施:根据数据库语言建立数据库
- 数据库运行与维护
3.2、关系型数据库设计方法
- 概念结构的设计方法

实体:用户,用户组,部门,权限
属性:[用户:口令,用户名,用户ID,年龄...;用户组:用户组ID,用户组名,用户组描述...;部门:部门ID,部门名,部门所在地,部门领导...;权限:权限名,权限ID...]
- 逻辑结构的设计方法
- 将E-R图转换为关系模型
- 将‘用户组’的主键作为‘用户’关系的外键,表示用户属于用户组。
- 将‘部门’关系的主键作为‘用户’关系的外键,表示用户所在的部门。
- 在‘用户组’与‘权限’关系之间增加一个中间表,将‘用户组’与‘权限’各自的主键作为其外键。
二、认识MySQL
1、MySQL的优势
MySQL是一个关系型数据库管理系统。MySQL使用SQL语言用于访问数据库的最常用的标准化语言。由于MySQL数据库体积小、速度快、总体拥有成本低、开发源代码,具有广泛的应用,一般中小型网站的开发都选择MySQL作为网站数据库。
MySQL数据库管理系统具有以下系统特性:
- mysql系统属于C和C++编写,并使用多种编译器进行测试,保证源代码具有可移植性。
- 支持多种操作系统。
- 为多种编程语言提供了应用程序编程接口,便于应用程序的开发。
- 支持多线程服务,可充分利用CPU资源。
- 优化SQL程序算法,能有效提高查询速度。
- 能够作为一个单独的应用程序运行,也能够作为一个库而嵌入其他的软件中。
- 提供多语言支持,实际应用中,要避免使用中文作为数据表名或列名。
- 提供多种连接数据库的途径。
- 提供用于管理,检查,优化数据库操作的管理工具。
- 支持拥有上千万条记录的大型数据库应用,数据类型丰富。
- 支持多种存储引擎。
2、MySQL版本
针对不同的用户,MySQL分为两个版本:
- MySQL Community Server(社区版):该版本完全免费,但是官方不提供技术支持。
- MySQL Enterprise Server(企业版):该版本需要付费使用,官方提供技术支持。
MySQL的命名机制由3个数字和1个后缀组成,例如:mysql-5.7.20 - 第1个数字(5)是主版本号,用于描述文件的格式,所有版本5的发行版都有相同的文件夹格式。
- 第2个数字(7)是发行级别,主版本号和发行级别组合在一起便构成了发行序列号。
- 第3个数字(20)是在此发行系列的版本号,随每次发行的版本
3、MySQL服务器与客户端
MySQL服务器端实用工具程序如下:
- mysqld:SQL后台程序(即MySQL服务器进程)。该程序必须运行之后,客户端才能通过连接服务器来访问数据库。
- mysqld_safe:服务器启动脚本。
- mysql.server:服务器启动脚本。该脚本用于使用包含为特定级别的、运行启动服务器脚本的、运行目录的系统。
- mysqld_multi:服务器启动脚本,可以启动或停止系统上安装的多个服务器。
- mysamchk:用来描述、检查、优化和维护MyISAM表的实用工具。
- mysql.server:服务器启动脚本。在UNIX中的MySQL分发版包括mysql.server脚本。
- mysqlbug:MySQL缺陷报告脚本。它可以用来向MySQL邮件系统发送缺陷报告。
- mysql_install_db:该脚本用默认权限创建MySQL授予权表。通常只是在系统上首次安装MySQL时执行一次。
MySQL客户端实用工具程序如下:
- myisampack:压缩MyISAM表以产生更小的只读表的一个工具。
- mysql:交互式输入SQL语句或从文件经批处理模式执行它们的命令行工具。
- mysqlacceess:检查访问主机名、用户名和数据库组合的权限的脚本。
- mysqladmin:执行管理操作的客户程序。例如创建或删除数据库、重载授权表、将表刷新到硬盘上以及重新打开日志文件。Mysqladmin还可以用来检索版本、进程以及服务器的状态信息。
- mysqlbinlog:从二进制日志读取语句的工具。在二进制日志文件中包含执行过的语句,可用来帮助系统从崩溃中恢复
- mysqlcheck:检查、恢复、分析以及优化表的表维护客户程序。
-mysqldump:将MySQL数据库转存储到一个文件(例如SQL语句或Tab分隔符文本文件)的客户程序。 - mysqlhotcopy:当服务器在运行时,快速备份MyISAM或ISAM表的工具。
- mysql import:使用LOAD DATA INFILE将文本文件导入相应的客户程序。
- mysqlshow:显示数据库、表、列以及索引相关信息的客户程序。
- perror:显示系统或MySQL错误代码含义的工具。
4、MySQL启动
windows下启动MySQL
第一步:使用windows+R,打开运行窗口,输入services.msc
第二步:在服务列表中,选择相关的"mysql"服务,进行启动与关闭操作。
启动服务(cmd):mysqld --console 或 net start mysql
关闭服务(cmd):mysqladmin -uroot shudown 或 net stop mysql
Linux下启动MySQL
启动服务:service mysql start
关闭服务:service mysql stop
重启服务:service restart stop
登录MySQL
mysql -h ip -u 用户名 -p 密码
网友评论