01-数据库基础知识

发布时间 2023-07-30 22:05:46作者: ღ᭄遇见你²⁰²²

01-数据库基础知识

课程目标

了解数据库的基本概念、数据库系统的发展阶段和基本特点、数据库系统的特点。

理解实体联系模型、数据模型简介、关系运算、数据库设计基础。

掌握MySQL简介、MySQL的安装。

1.1数据库的基本概念

1.数据:是指存储在某一种媒体上能够被识别的物理符号。通常我们所说的数据包括两方面的内容:

(1)描述事物特性的数据内容。

(2)存储在某一种媒体上的数据形式。

注:数据不仅包括数字、字母、文字和其他特殊字符组成文本形式的数据,而且还包括图形,图像,动画,声音等多媒体数据。

2.数据处理:是指将数据转换成信息的过程。

信息:是指一种被加工成特定形式的数据,并且这种数据形式对于数据接收者来说是有意义。

3.数据库(Database,即DB):是存储在计算机存储设备上,结构化的相关数据集合。

4.数据库管理系统(Database Management System, 即DBMS):为了让多种应用程序并发地使用数据库中具有最小冗余的共享数据必须使数据库与程序有较高的独立性,这就需要一个软件系统对数据实行专门的管理,该软件就叫做数据库管理系统,也就是说数据库管理系统是一种在操作系统支持下的系统软件。如:Oracle、SQL Server、MySQL、Sybase、informix、DB2、interbase、PostgreSql 。

5.数据库系统(Database System, 即DBS):指引进数据库技术后的计算机系统,实现有组织地、动态地存储大量相关数据,提供数据处理和信息资源共享的便利手段。数据库系统(DBS)有5个部分组成包括:硬件及操作系统(PC及OS)、数据库集合(DB)、数据库管理系统及相关软件(DBMS)、数据库管量员(DBA)和用户(User),如下图1-1所示:

图1-1

注:数据库系统(DBS)的五大组成部分如上图所示,我们得到如下结论,即数据库系统(DBS)需要操作系统(OS)的支持。

6.数据库(DB)、数据库管理系统(DBMS)和数据库系统(DBS)之间的关系:数据库是结构化的相关数据的集合。为建立、使用和维护数据而配置的软件称为数据库管理系统,而数据库管理系统是数据库系统的一个组成部分,它是数据库系统的核心。所以数据库系统(DBS)包含数据库(DB)和数据库管理系统(DBMS)。

1.2数据库系统的发展阶段和基本特点

数据处理的中心问题就是数据管理,它共分为5个阶段。

多年来,数据管理经历了人工管理阶段、文件系统管理阶段、数据库系统管理阶段、分布式数据库管理系统阶段和面向对象的数据库系统阶段共五个阶段。其中,各个阶段的主要特点如下表1-1所示:

表1-1

阶段

主要特点

(1)人工管理阶段

程序和数据不具有独立性,一组数据只对应一组程序;数据不长期保存,程序运行结束后就退出计算机系统;一个程序中的数据无法被其他程序利用,程序与程序之间有大量的重复数据存在,称为数据冗余。

(2)文件系统管理阶段

程序和数据有了一定的独立性,程序和数据分开存储;有了程序文件和数据文件的区别,数据文件可以长期保存在存储器上被多次存取;程序和数据相互依赖,同一数据项可能重复出现在多个文件中,导致数据冗余度大。

(3)数据库系统管理阶段

提高了数据的共享性,使多个用户能够同时访问数据库中的数据;大大减小了数据的冗余度,以提高数据的一致性和完整性;提高数据与应用程序的独立性(所谓数据独立性就是指数据与应用程序相互独立,用户无需考虑数据的存储位置和结构),从而减少了应用程序的开发与维护代价。

(4)分布式数据库管理系统阶段

它是数据库技术和计算机网络技术紧密结合的产物。开放式数据库连接ODBC(Open DataBase Connectivity)是用于数据库服务器的一种标准协议。计算机网络是由多台计算机互联而成,为保证网络中计算机间的数据交换,要求计算机在交换数据的过程中遵守相应的网络协议,一个网络协议由语法、输出和时序三个要素组成。

(5)面向对象的数据库系统阶段

它是数据库技术与面向对象(在这里“对象”指的就是多媒体技术,它包括图形,图像,动画,声音等多媒体数据)程序设计相结合的产物。

注:在人工管理阶段,数据与程序不具有独立性,程序与程序之间有大量的重复数据存在,称为数据冗余;在文件系统阶段,程序和数据有了一定的独立性,但程序和数据相互依赖,同一数据项可能重复出现在多个文件中,导致数据冗余度大;在数据库系统阶段程序和数据高度独立,实现了数据共享,减少了数据冗余。

1.3数据库系统的特点

1.实现数据共享,减少数据冗余。

2.采用特定的数据模型(是关系模型,也叫做二维表模型)。

3.具有较高的数据独立性(所谓数据独立性就是指数据与应用程序相互独立,用户无需考虑数据的存储位置和结构)。

4.有统一的数据控制功能。

1.4实体联系模型

1.实体的描述:

(1)实体:客观存在并且可以相互区别的事物称为实体。

(2)实体的属性:描述实体的特性称为属性。

(3)实体集和实体型:属性值的集合表示一个实体,而属性的集合表示一种实体的类型,称为实体型.同类型的实体的集合,称为实体集。

2.实体间联系及联系的种类:

实体之间的对应关系称为联系,它反映现实世界事物之间的相互关联。

实体间联系的种类是指一个实体型中可能出现的每一个实体与另一个实体型中多少个具体实体存在联系,可归纳为以下3种类型:

(1)一对一联系:如果实体集A中的每一个实体只与实体集B中的一个实体相联系,反之亦然,则称这种关系是一对一联系。例如一个班级只能有一个班长,并且班长不可以在别的班级兼职,他只能在一个班级担任班长职务,那么班长与班级之间的关系就是一对一联系。

其实体-联系模型(即E-R模型)如下图1-2所示(其中矩形表示实体,菱形表示实体之间的关系):

图1-2

(2)一对多联系:如果实体A中的每一个实体,在实体集B中都有多个实体与之对应;实体集B中的每一个实体,在实体集A中只有一个实体与之对应,则称实体集A与实体集B是一对多联系。例如一个班级是由多名学生组成的,而一个学生只能属于一个班级,则班级与学生之间的联系就是一对多联系。其实体-联系模型(即E-R模型)如下图1-3所示(其中矩形表示实体,菱形表示实体之间的关系):

图1-3

(3)多对多联系:如果实体集A中的每一个实体在实体集B中都有多个实体与之对应,反之亦然,则称这种关系是多对多联系。例如一门课程可以被多个学生选修,而一个学生也可以同时选修多门课程,则学生和课程之间的关系就是多对多联系。其实体-联系模型(即E-R模型)如下图1-4所示(其中矩形表示实体,菱形表示实体之间的关系):

图1-4

1.5数据模型简介

为了反映事物本身及事物之间的各种联系,数据库中的数据必须有一定的结构,这种结构就叫做数据模型,所以说数据模型就是数据库管理系统用来表示实体及实体间联系的方法。

1.层次数据模型:用树形结构来表示实体及其之间的联系的模型称为层次模型,如下图1-5所示:

图1-5

2.网状数据模型:用网状结构来表示实体及其之间的联系的模型称为网状模型,如下图1-6所示:

图1-6

3.关系数据模型:用二维表的结构来表示实体以及实体之间的联系的模型就称为关系模型,如下图1-7所示:

图1-7

4.关系数据模型的相关概念:

(1)关系的数据结构:关系模型采用二维表来表示,一个关系对应一张二维表。可以说一个关系就是一个二维表。

  1. 认识表:一个二维关系称为一个表。在二维关系中,横向上的一行称为一个元组,纵向上的一列称为一个属性;在一个具体的表中,横向上的一行称为一条记录,纵向上的一列称为一个字段。
  2. 表是由结构和记录组成(要先创建表结构,再输入记录)

(2)元组:在一个二维表(一个具体关系)中,水平方向上的一行称为一个元组或称为一条记录。

(3)属性:二维表中垂直方向上的一列称为一个属性或称为一个字段,每一个列有一个列名叫做属性名或叫做字段名。

(4)域:属性的取值范围,也就是不同元组对同一属性的取值所限定的范围。

(5)关键字:在二维表中能够惟一标识出元组的属性值的字段称为该表的关键字。二维表中可能有若干个关键字,它们称为表的候选关键字。从二维表的所有候选关键字中选取一个作为用户使用的关键字就称为主关键字(在数据库技术中简称为主键)。表A中的某字段的属性值是表B中的主关键字或候选关键字,则称该字段为表A的外部关键字(在数据库技术中简称为外键或外码)。

(6)关系模型采用二维表来表示,二维表一般满足下面的7个性质:

①二维表中元组个数是有限的?元组个数的有限性;

②二维表中元组均不相同?元组的惟一性;

③二维表中元组的次序可以任意交换?元组的次序无关性;

④二维表中的属性必须是不可分割的数据单元?属性的原子性;

⑤二维表中属性名各不相同?属性名惟一性;

⑥二维表中属性的次序可以任意交换?属性的次序无关性;

⑦二维表中属性的分量具有与该属性相同的值域?分量值域的统一性。

(7)关系中的数据约束:关系模型中允许定义三类数据约束,它们是实体完整性约束(也就是表中记录的惟一性,即表中的主关键字段应没有重复值)、参照完整性约束(也就是建立表之间的关系)和域完整性约束(也就是表中字段值的取值范围)。

1.6关系运算

1.传统的关系运算:

(1)并:两个相同结构关系的并运算结果是由属于这两个关系的元组组成的集合,如下图1-8所示:

图1-8

(2)交:设有两个相同结构的关系A和B,它们的交集是由既属于A又属于B的元组组成的集合,如下图1-9所示:

图1-9

(3)差:设有两个具有相同结构的关系A和B,A差B的结果是由属于A但不属于B

的元组组成的集合,即差运算的结果是从A中去掉B中也有的元组,如下图1-10和1-11所示:

图1-10

图1-11

2专门的关系运算:

(1)选择:从关系中找出满足给定条件的元组的操作称为选择(是指对一个表进行横向切割)。选择是从行的角度进行的运算,即在水平方向上抽取记录。经过选择运算得到的结果可以形成新的关系,其关系模式不变,但其中的元组是原关系的一个子集,如下图1-12所示:

图1-12

(2)投影:从关系中指定若干个属性组成新的关系称为投影(是指对一个表进行纵向切割)。投影是从列的角度进行运算,相当于对关系进行垂直分解。经过投影运算可以得到一个新的关系,其关系模式所包含的属性个数往往比原关系少,或者属性的排列顺序不同,如下图所示:

图1-13

(3)连接:连接是关系的横向结合,连接运算将两个关系模式拼成一个更宽的关系模式,

生成的新关系中包含满足条件的元组,如果需要连接两个以上的表,应当进行两两连接,

如下图1-14所示:

图1-14

(4)自然连接:在连接运算中,按照字段值对应相等为条件进行的连接操作称为等值连

接,而自然连接是指去掉重复属性值的等值连接,如下图1-15所示:

图1-15

1.7数据库设计基础

1.数据库设计的原则:

(1)设计原则:为了合理组织数据,关系数据库的设计应遵从以下几个基本设计原则:

1)关系数据库的设计应遵从概念单一化“一事一地”的原则,“一事一地”是指一个表描述一个实体或实体间的一种联系。

2)避免表之间出现重复字段,是指除了保证表中有反映与其他表之间的联系的外部关键字之外,尽量避免在表之间出现重复字段。

3)表中的字段必须是原始数据和基本数据元素。

4)用外部关键字来保证有关联的表之间的联系。

(2) 数据库设计的步骤:

1)需求分析:确定建立数据库的目的,有助于确定数据库保存哪些信息。

2)确定需要的表:着手将需求划分各个独立的实体,每个实体都可以设计为数据库中的一个表。

3)确定所需字段:确定在每个表中要保存哪些字段。通过这些字段的显示或计算应该能够得到所有需求信息。

4)确定联系:对每个表进行分析,确定一个表中的数据和其他表中的数据有何联系。

5)设计求精:对设计进一步分析,查找其中的错误;创建表,在表中加入几个示例数据记录,考察能否从表中得到想要得到的结果,需要时调整设计。

1.8 MySQL简介

1.MySQL最初是由“MySQL AB”公司开发的一套关系型数据库管理系统(RDBMS-Relational Database Mangerment System)。MySQL不仅是最流行的开源数据库,而且是业界成长最快的数据库,每天有超过7万次的下载量,其应用范围从大型企业到专有的嵌入应用系统。

2.“MySQL AB”公司是由两个瑞典人和一个芬兰人:David Axmark、Allan Larsson和Michael “Monty” Widenius在瑞典创办的。

3.在2008年初,Sun Microsystems收购了MySQL AB公司。在2009年,Oracle收购了Sun公司,使MySQL并入Oracle的数据库产品线。

1.9 MySQL的安装

打开下载的MySQL安装文件MySQL-essential-5.0.22-win32.msi,双击运行,出现如下图1-16所示:

20080115010355372

图1-16

按“Next”继续,如下图1-17所示:

20080115010355153

图1-17

选择安装类型,有“Typical(默认)”、“Complete(完全)”、“Custom(用户自定义)”三个选项,我们选择“Custom”,有更多的选项,也方便熟悉安装过程

上一步选择了 Custom 安装,这里将设定 MySQL的组件包和安装路径,设定好之后,单击 Next 继续安装。如下图1-18所示:

图1-18

现在软件安装完成了,出现上面的界面,将 “Configure the MySQL Server now”前面的勾打上,点“Finish”结束软件的安装并启动MySQL配置向导。如下图1-19所示:

20080115010355600

图1-19

MySQL配置向导启动界面,选择配置方式,“Detailed Configuration(手动精确配置)”、“Standard Configuration(标准配置)”,我们选择“Detailed Configuration”,方便熟悉配置过程。按“Next”继续。如下图1-20所示:

20080115010355579

图1-20

选择服务器类型,“Developer Machine(开发测试类,MySQL占用很少资源)”、“Server Machine(服务器类型,MySQL占用较多资源)”、“Dedicated MySQL Server Machine(专门的数据库服务器,MySQL占用所有可用资源)”,大家根据自己的类型选择了,一般选“Server Machine”,不会太少,也不会占满。在这里,笔者由于有开发测试的需要,选择了“Developer Machine”,如下图1-21所示:

20080115010355938

图1-21

选择MySQL数据库的大致用途,“Multifunctional Database(通用多功能型,能很好的支持InnoDB与MyISAM存储引擎)”、“Transactional Database Only(服务器类型,专注于事务处理,一般)”、“Non-Transactional Database Only(非事务处理型,较简单,主要做一些监控、记数用,对MyISAM数据类型的支持仅限于non-transactional),随自己的用途而选择了,我这里选择“Multifunctional Database”, 按“Next”继续。如下图1-22所示:

20080115010355638

图1-22

对InnoDB Tablespace进行配置,就是为InnoDB 数据库文件选择一个存储空间,如果修改了,要记住位置,重装的时候要选择一样的地方,否则可能会造成数据库损坏,当然,对数据库做个备份就没问题了,这里不详述。我这里没有修改,使用用默认位置,直接按“Next”继续。如下图1-23所示:

20080115010355786

图1-23

选择您的网站的一般MySQL访问量,同时连接的数目,“Decision Support(DSS)/OLAP(20个左右)”、“Online Transaction Processing(OLTP)(500个左右)”、“Manual Setting(手动设置,自己输一个数)”,我这里选“Decision Support(DSS)/OLAP)”, 按“Next”继续。如下图1-24所示:

20080115010355159

图1-24

是否启用TCP/IP连接,设定端口,如果不启用,就只能在自己的机器上访问MySQL数据库了,我这里启用,把前面的勾打上,Port Number:3306,在这个页面上,您还可以选择“启用标准模式”(Enable Strict Mode),按“Next”继续。如下图1-25所示:

20080115010355668

图1-25

这个比较重要,就是对MySQL默认数据库语言编码进行设置,第一个是西文编码,我们要设置的是utf8编码,按 “Next”继续。如下图1-26所示:

I:\其他\截屏\Mysql.png

图1-26

选择是否将MySQL安装为windows服务,还可以指定Service Name(服务标识名称),是否将MySQL的bin目录加入到Windows PATH(加入后,就可以直接使用bin下的文件,而不用指出目录名,比如连接,“MySQL.exe -uusername -ppassword;”就可以了,不用指出MySQL.exe的完整地址,很方便),我这里全部打上了勾,Service Name不变。按“Next”继续。如下图1-27所示:

20080115010355703

图1-27

为访问数据库设置管理员账号,即root用户的密码,输入密码并再次确认密码即可,同时要把“Enable root access from remote machines”选项打上勾,按“Next”继续。如下图1-28所示:

20080115010355856

图1-28

确认设置无误,如果有误,按“Back”返回检查。按“Execute”使设置生效。如下图1-29所示:

20080115010355670

图1-29

设置完毕,按“Finish”结束MySQL的安装与配置。如下图1-30所示:

20080115010355829

图1-30

可以通过服务管理器管理MySQL的服务。

通过命令调用服务管理器:services.msc

停止 MySQL 的服务。如下图1-31所示:

图1-31

启动MySQL 的服务。如下图1-32所示:

图1-32

也可以在 DOS 中直接通过命令行的形式进行控制。

停止MySQL的服务。如下图1-33所示:

图1-33

启动MySQL的服务。如下图1-34所示:

图1-34

1.10 本章小结

本章主要阐述了关系数据库的基本理论、关系数据模型、关系数据库设计的基本原则、以及MySQL数据库的安装,配置。