1、网络数据库课程概述,课程性质:课程介绍了当今流行的关系型数据库管理系统的管理和使用,主要包括MySQL与Oracle。 课程总学时64学时,4学分。包括课堂讲授36学时,实验28学时。,课程考核,平时成绩:占总成绩的10%。根据学生日常表现给分,包括课堂表现及课堂参与情况;如无故旷课三次,平时成绩为0分。 实验成绩:占总成绩的30%。根据学生实验课程的表现给分,包括实验操作及实验报告完成情况。 期末考试:占总成绩的60%。闭卷,笔试,于学期末课程结束时进行,考试时间为90分钟,按各知识点要求,突出重点,全面考核学生的能力。,第1章 数据库的基本概念,1.1 数据库基本概念,1.2 关系数据库设
2、计,1.3 数据库应用系统,1.4 MySQL概述,1.1 数据库基本概念,1. 数据库 数据库(DB)是存放数据的仓库,只不过这些数据存在一定的关联,并按一定的格式存放在计算机上。从广义上讲,数据不仅包含数字,还包括了文本、图像、音频、视频等。 2. 数据库管理系统 数据库管理系统(DBMS)是管理数据库的系统,它按一定的数据模型组织数据。,1.1.1 数据库与数据库管理系统,1.1.2 数据模型,数据库管理系统根据数据模型对数据进行存储和管理,数据库管理系统采用的数据模型主要有层次模型、网状模型和关系模型。 层次模型 以树形层次结构组织数据。图1.2为某学校按层次模型组织的数据示例。,图1
3、.2 按层次模型组织的数据示例,1.1.2 数据模型, 网状模型 每一个数据用一个节点表示,每个节点与其他节点都有联系,这样数据库中的所有数据节点就构成了一个复杂的网络。图1.3为按网状模型组织的数据示例。,图1.3 按网状模型组织的数据示例, 关系模型 以二维表格(关系表)的形式组织数据库中的数据。表格中的一行称为一个记录,一列称为一个字段,每列的标题称为字段名。如果给每个关系表取一个名字,则有n个字段的关系表的结构可表示为:关系表名(字段名1,字段名n),通常把关系表的结构称为关系模式。MySQL是支持关系数据模型的数据库管理系统,1.2 关系数据库设计,图1.4 学生和课程实体集属性的描
4、述,1.2.1 概念结构设计,1.2.1 概念结构设计,1. 一对一的联系(1:1) A中的一个实体最多与B中的一个实体相联系,B中的一个实体也最多与A中的一个实体相联系。例如,“班级”与“正班长”这两个实体集之间的联系是一对一的联系,因为一个班只有一个班长,反过来,一个正班长只属于一个班。“班级”与“正班长”两个实体集的E-R模型如图1.5所示。,图1.5 “班级”与“正班长”实体集E-R模型,1.2.1 概念结构设计,2. 一对多的联系(1:n) A中的一个实体可以与B中的多个实体相联系,而B中的一个实体至多与A中的一个实体相联系。例如,“班级”与“学生”这两个实体集之间的联系是一对多的联
5、系,因为,一个班可有若干学生,反过来,一个学生只能属于一个班。“班级”与“学生”两个实体集的E-R模型如图1.6所示。,图1.6 “学生”与“班级”两个实体集的E-R模型,1.2.1 概念结构设计,3. 多对多的联系(m:n) A中的一个实体可以与B中的多个实体相联系,而B中的一个实体也可与A中的多个实体相联系。例如,“学生”与“课程”这两个实体集之间的联系是多对多的联系,因为,一个学生可选多门课程,反过来,一门课程可被多个学生选修。“学生”与“课程”两个实体集的E-R模型如图1.7所示。,图1.7 “学生”与“课程”实体集间的E-R模型,1.2.2 逻辑结构设计,1. (1:1)联系的E-R
6、图到关系模式的转换 对于(11)的联系既可单独对应一个关系模式,也可以不单独对应一个关系模式。 (1)联系单独对应一个关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。例如,考虑图1.5描述的“班级(BJ)”与“正班长(BZ)”实体集通过属于(SY)联系E-R模型可设计如下关系模式(下横线表示该字段为主码): BJ(班级编号,院系,专业名,人数) BZ(学号,姓名) SY(学号,班级编号) (2)联系不单独对应一个关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。例如,考虑图1.5描述的“班级(BJ)”与“正班长(BZ)
7、”实体集通过属于(SY)联系E-R模型可设计如下关系模式: BJ(班级编号,院系,专业名,人数) BZ(学号,姓名,班级编号) 或者 BJ(班级编号,院系,专业名,人数,学号) BZ(学号,姓名),1.2.2 逻辑结构设计,2. (1:n)联系的E-R图到关系模式的转换 对于(1n)的联系既可单独对应一个关系模式,也可以不单独对应一个关系模式。 (1)联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。例如,考虑图1.6描述的“班级(BJ)”与“学生(XS)”实体集E-R模型可设计如下关系模式: BJ(班级编号,院系,专业名,人数
8、) XS (学号,姓名,专业名,性别,出生日期,总学分,备注) SY(学号,班级编号) (2)联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码。例如,图1.6“班级(BJ)”与“学生(XS)”实体集E-R模型可设计如下关系模式: BJ(班级编号,院系,专业名,人数) XS (学号,姓名,专业名,性别,出生日期,总学分,备注,班级编号,1.2.2 逻辑结构设计,3. (m:n)联系的E-R图到关系模式的转换 对于(mn)的联系,单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性
9、共同组成。例如,图1.7描述的“学生(XS)”与“课程(KC)”实体集之间的联系可设计如下关系模式: XS (学号,姓名,专业名,性别,出生日期,总学分,备注) KC(课程号,课程名称,类别,开课学期,学时,学分) XS_KC (学号,课程号,成绩) 关系模式XS_KC的主码是由“学号”和“课程号”两个属性组合起来构成的一个主码,一个关系模式只能有一个主码。 至此,已介绍了根据E-R图设计关系模式的方法,通常这一设计过程称为逻辑结构 设计。 在设计好一个项目的关系模式后,就可以在数据库管理系统环境下创建数据库、关系表及其他数据库对象,输入相应数据,并根据需要对数据中的数据进行各种操作。,1.2
10、.3 数据库物理设计,数据的物理模型即指数据的存储结构,如对数据库物理文件和索引文件的组织方式、文件的存取路径、内存的管理等。物理模型不仅与数据库管理系统有关,还和操作系统甚至硬件有关,物理模型对用户是不可见的。,1.3 数据库应用系统,1. ODBC数据库接口 ODBC即开放式数据库互连(Open DataBase Connectivity),是微软公司推出的一种实现应用程序和关系数据库之间通信的接口标准。ODBC本质上是一组数据库访问API(应用程序编程接口),由一组函数调用组成,核心是SQL语句。 MySQL是通过MySQL Connector/ODBC(MyODBC驱动程序系列)为OD
11、BC提供支持的,图1.8说明了MySQL使用ODBC连接方式的结构。,1.3.1 数据库的连接方式,1.3.1 数据库的连接方式,2. ADO数据库接口 ADO(ActiveX Data Object)是微软公司开发的基于COM的数据库应用程序接口,通过ADO连接数据库,可以灵活地操作数据库中的数据。 使用ADO访问关系数据库有两种途径:一种是通过ODBC驱动程序,另一种是通过数据库专用的OLE DB Provider,后者有更高的访问效率。,1.3.1 数据库的连接方式,3. ADO.NET数据库接口 ADO.NET数据模型从ADO发展而来,但它不只是对 ADO的改进,而是采用了一种全新的技
12、术。主要表现在以下几个方面: ADO.NET不是采用ActiveX技术,而是与.NET框架紧密结合的产物。 ADO.NET包含对XML标准的完全支持,这对于跨平台交换数据具有重要的意义。 ADO.NET既能在与数据源连接的环境下工作,又能在断开与数据源连接的条件下工作。特别是后者,非常适合于网络应用的需要。因为在网络环境下,保持与数据源连接,不符合网站的要求,不仅效率低,付出的代价高,而且常常会引发由于多个用户同时访问时带来的冲突。因此ADO.NET系统集中主要精力用于解决在断开与数据源连接的条件下数据处理的问题。 图1.9显示了 ADO.NET 架构总览。,1.3.1 数据库的连接方式,图1
13、.9 通过ADO.NET访问数据库的接口模型,数据层是实现ADO.NET断开式连接的核心,从数据源读取的数据先缓存到数据集中,然后被程序或控件调用。数据源可以是数据库或XML数据。 数据提供器用于建立数据源与数据集之间的联系,它能连接各种类型的数据,并能按要求将数据源中的数据提供给数据集,或者从数据集向数据源返回编辑后的数据。 MySQL使用MySQL Connector/NET实施了所需的ADO.NET接口,并将其集成到了ADO.NET aware工具中。从而使开发人员能够方便地创建需要安全和高性能数据连接(与MySQL)的.NET应用程序。MySQL Connector/NET是用纯C#语
14、言编写的可完全管理的ADO.NET驱动程序。,1.3.1 数据库的连接方式,4. JDBC数据库接口 在JDBC API中有两层接口:应用程序层和驱动程序层,前者使开发人员可以通过SQL调用数据库和取得结果,后者处理与具体数据库驱动程序的所有通信。 使用JDBC接口对数据库操作有如下优点: (1)JDBC API与ODBC十分相似,有利于用户理解; (2)使编程人员从复杂的驱动器调用命令和函数中解脱出来,而致力于应用程序功能的实现; (3)JDBC支持不同的关系数据库,增强了程序的可移植性。 使用JDBC的主要缺点:访问数据记录的速度会受到一定影响,此外,由于JDBC结构中包含了不同厂家的产品
15、,这给数据源的更改带来了较大麻烦。 MySQL通过MySQL Connector/J驱动实现JDBC接口,它提供了与使用Java编程语言开发的客户端应用程序的连通性。MySQL Connector/J是一种纯Java程序,实施了3.0版JDBC规范,并能使用MySQL协议与MySQL服务器直接通信。 5. 数据库连接池技术 对于网络环境下的数据库应用,由于用户众多,使用传统的JDBC方式进行数据库连接,系统资源开销过大成为制约大型企业级应用效率的瓶颈,采用数据库连接池技术对数据库连接进行管理,可以大大提高系统的效率和稳定性。,1.3.2 客户/服务器(C/S)模式应用系统,对于一般的数据库应用
16、系统,除了数据库管理系统外,需要设计适合普通人员操作数据库的界面。目前,流行的开发数据库界面的工具主要包括Visual BASIC/NET、Visual C+/NET、Visual C#、Delphi、PowerBuilder等。数据库应用程序与数据库、数据库管理系统之间的关系如图1.10所示。,图1.10 数据库应用程序与数据库、数据库管理系统之间的关系,1.3.2 客户/服务器(C/S)模式应用系统,从图中可看出,当应用程序需要处理数据库中的数据时,首先向数据库管理系统发送一个数据处理请求,数据库管理系统接收到这一请求后,对其进行分析,然后执行数据操作,并把操作结果返回给应用程序。由于应用
17、程序直接与用户打交道,而数据库管理系统不直接与用户打交道,所以应用程序被称为“前台”,而数据库管理系统被称为“后台”。 例如,用Visual Basic开发的客户/服务器(C/S)模式的学生成绩管理系统学生信息输入界面如图1.11所示。,图1.11 C/S模式的学生成绩管理系统界面,1.3.3 三层客户/服务器(B/S)模式应用系统,基于Web的数据库应用采用三层客户/服务器模式,也称B/S结构。第一层为浏览器,第二层为Web服务器,第三层为数据库服务器。浏览器是用户输入数据和显示结果的交互界面,用户在浏览器表单中输入数据,然后将表单中的数据提交并发送到Web服务器,Web服务器应用程序接收并
18、处理用户的数据,通过数据库服务器,从数据库中查询需要的数据(或把数据录入数据库)送到Web服务器,Web服务器把返回的结果插入HTML页面,传送到客户端,在浏览器中显示出来,如图1.12所示。,图1.13 B/S模式的学生成绩管理系统页面,1.4 MySQL概述,MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。 目前Internet上流行的网站构架方式是LAMP(Linux
19、+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。由于这4个软件都是遵循GPL的开放源码软件,因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。 MySQL数据库的特点主要有以下几个方面: 使用核心线程的完全多线程服务,这意味着可以采用多CPU体系结构。 可运行在不同平台。 使用C和C+编写,并使用多种编译器进行测试,保证了源代码的可移植性。 支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Novell Netware、OpenBSD、OS/2 Wrap、Sol
20、aris、Windows等多种操作系统。,1.4.1 MySQL的安装和配置,1. MySQL服务器的安装 (1)下载Windows版的MySQL 5.1.28,解压后双击进入安装向导。有3种安装方式可供选择:Typical(典型安装)、Complete(完全安装)和Custom(定制安装),对于大多数用户,选择Typical就可以了。单击“next”按钮进入下一步。 (2)进入如图1.14所示的安装界面。在MySQL5.1中,数据库主目录和文件目录是分开的。其中,“Destination Folder”为MySQL所在的目录,默认目录为C:Program FilesMySQLMySQL Se
21、rver 5.1。“Data Folder”为MySQL数据库文件和表文件所在的目录,默认目录为C:Documents and SettingsAll UsersApplication DataMySQLMySQL Server 5.1data,其中Application Data是隐藏文件夹。确认后单击“Install”按钮开始安装。,1.4.1 MySQL的安装和配置,图1.14 MySQL安装界面,1.4.1 MySQL的安装和配置,2. MySQL服务器的配置 (1)安装完毕后选择“Configure the MySQL server now”复选框进入配置向导。第一步选择配置类型,有
22、两种:Detailed Configuration(详细配置)和Standard Configuration(标准配置)。标准配置选项适合想要快速启动MySQL而不必考虑服务器配置的新用户。详细配置选项适合想要更加细粒度控制服务器配置的高级用户。这里选择Detailed Configuration。 (2)单击“next”按钮进行服务器类型选择,分为3种:Developer Machine(开发机器)、Server Machine(服务器)和Dedicated MySQL Server Machine(专用MySQL服务器)。鉴于只是初学MySQL,所以这里选择Developer Machin
23、e。 (3)单击“next”按钮进入数据库使用情况对话框,有3个选项:Multifunctional Database(多功能数据库)、Transactional Database Only(只是事务处理数据库)和Non-Transactional Database Only(只是非事务处理数据库)。其中多功能数据库对InnoDB和MyISAM表都适用,所以这里选择“Multifunctional Database”。 (4)下一步进入InnoDB表空间对话框,这里可以修改InnoDB表空间文件的位置,如 图1.15所示。默认位置是MySQL服务器数据目录,这里不做修改,直接下一步。,1.4.
24、1 MySQL的安装和配置,图1.15 表空间对话框,1.4.1 MySQL的安装和配置,(5)接下来进入并发连接选择对话框,Decision Support(决策支持)(DSS)/OLAP:如果服务器不需要大量的并行连接可以选择该选项;Online Transaction Processing(联机事务处理)(OLTP):如果服务器需要大量的并行连接则选择该选项;Manual Setting(人工设置):选择该选项可以手动设置服务器并行连接的最大数目。这里选择“Decision Support(DSS)/ OLAP”。 (6)进入联网选项对话框,如图1.16所示。默认情况是启用TCP/IP网
25、络,默认端口为3306。这里不做修改,直接下一步。,图1.16 联网选项对话框,1.4.1 MySQL的安装和配置,(7)进入字符集选择对话框,前面的选项一直是按默认设置进行的,这里要做一些修改。选中“Manual Selected Default Character Set/Collation”选项,在“Character Set”选框中将latin1修改为gb2312,如图1.17所示。,图1.17 设置字符集,1.4.1 MySQL的安装和配置,(8)下一步进入服务选项对话框,服务名为MySQL,这里不做修改。 (9)下一步是安全选项对话框,如图1.18所示,在密码输入框中输入root用
26、户的密码。要想防止通过网络以root登录,选中Root may only connect from localhost(只允许从本机登录连接root)选项旁边的框。要想创建一个匿名用户账户,选中Create An Anonymous Account(创建匿名账户)选项旁边的框。由于安全原因,这里不建议选择这项。,图1.18 安全选项对话框,1.4.1 MySQL的安装和配置,(10)设置完毕后,随后一步是提交配置,单击“execute”按钮即可完成。 注意:对不同的操作系统和不同版本的MySQL,安装过程可能有所不同,这里只举MySQL 5.1的安装例子。 以上步骤完成后,MySQL服务器就已
27、经可以使用了。由于MySQL自身不带界面工具,为了进行可视化的管理,可以另外安装界面工具来处理SQL语句。MySQL官方网站上提供了MySQL Administrator管理工具和MySQL Query Browser查询工具,可以一起下载。下载地址是http:/ Lite for MySQL、phpMyAdmin、MySQL Front等。然而这些不是数据库服务器,它们只是在Windows或Linux下允许用户能够进行可视化管理的工具。,1.4.2 MySQL的环境,1. MySQL命令行客户端 MySQL安装和配置完后,打开“开始”“程序”“MySQL”“MySQL Server 5.1”
28、“MySQL Command Line Client”,进入到MySQL客户端,在客户端窗口输入密码,就以root用户身份登录到MySQL服务器,在窗口中出现如图1.19所示命令行,在命令行中输入SQL语句就可以操作MySQL数据库。以root用户身份登录可以对数据库进行所有的操作。MySQL还可以使用其他用户登录,这在以后会讲到。,图1.19 MySQL命令行,1.4.2 MySQL的环境,2. 重新配置服务器 如果要对服务器重新配置,可以打开“开始”“程序”“MySQL”“MySQL Server 5.1”“MySQL Server Instance Config Wizard”,在出现的
29、配置向导中重新配置服务器。 (1)选项文件 在C:Program FilesMySQLMySQL Server 5.1的MySQL主目录下有一个my.ini文件,这是MySQL的选项文件,在MySQL启动时会自动加载文件中的一些选项。可以通过修改选项文件来修改MySQL的一些默认设置,具体会在以后的内容中了解到。 (2)数据目录 MySQL有一个data目录,用于存放数据库文件。MySQL 5.1的默认的路径为C:Documents and SettingsAll UsersApplication DataMySQLMySQL Server 5.1data。在data目录中MySQL为每一个数据库建立一个文件夹,所有的表文件存放在相应的数据库文件夹中。,MySQL的启动,MySQL -h -u-pMySQL -h localhost -u root -pmysql,