bitscn.com 启动:mysql -uroot –p 回车; 输入密码; 显示数据库:show databases; 1. 数据库 数据库(db(databases的缩写))是存放数据的仓库,只不过这些数据存在一定的关联,并按一定的格式存放在计算机上。从广义上讲,数据不仅包含数字,还包括了文本、图像、音频、视频等。 数据库由一些持久的相互关联数据的集合组成,并以一定的组织形式存放在计算机的存储介质中。 2. 数据库管理系统 数据库管理系统(dbms)是管理数据库的系统,它按一定的数据模型组织数据。dbms应提供如下功能: (1)数据定义功能可定义数据库中的数据对象。 (2)数据操纵功能可对数据库表进行基本操作,如插入、删除、修改、查询。 (3)数据的完整性检查功能保证用户输入的数据应满足相应的约束条件。 (4)数据库的安全保护功能保证只有赋予权限的用户才能访问数据库中的数据。 (5)数据库的并发控制功能使多个应用程序可在同一时刻并发地访问数据库的数据。 (6)数据库系统的故障恢复功能使数据库运行出现故障时进行数据库恢复,以保证数据库可靠运行。 (7)在网络环境下访问数据库的功能。 (8)方便、有效地存取数据库信息的接口和工具。编程人员通过程序开发工具与数据库的接口编写数据库应用程序。数据库管理员(dba,database adminitrator)通过提供的工具对数据库进行管理。 3. 数据、数据库、数据库管理系统与操作数据库的应用程序,加上支撑它们的硬件平台、软件平台和与数据库有关的人员一起构成了一个完整的数据库系统。下图描述了数据库系统的构成。 4. 数据库管理系统根据数据模型对数据进行存储和管理,数据库管理系统采用的数据模型主要有层次模型、网状模型和关系模型。 ● 层次模型 以树形层次结构组织数据. ● 网状模型 每一个数据用一个节点表示,每个节点与其他节点都有联系,这样数据库中的所有数据节点就构成了一个复杂的网络。 ● 关系模型 以二维表格(关系表)的形式组织数据库中的数据。例如学生表涉及的主要信息有学号、姓名、专业名、性别。 表格中的一行称为一个记录,一列称为一个字段,每列的标题称为字段名。如果给每个关系表取一个名字,则有n个字段的关系表的结构可表示为:关系表名(字段名1,…,字段名n),通常把关系表的结构称为关系模式。 ? 在关系表中,如果一个字段或几个字段组合的值可唯一标志其对应记录,则称该字段或字段组合为码。 ? 有时一个表可能有多个码,对于每一个关系表通常可指定一个码为“主码”,在关系模式中,一般用下横线标出主码。 按关系模型组织的数据表达方式简洁、直观,插入、删除、修改操作方便,而按层次、网状模型组织的数据表达方式复杂,插入、删除、修改操作复杂。因此,关系模型得到了广泛应用,mysql是支持关系数据模型的数据库管理系统。 5. 关系数据库设计的主要任务:通过对现实世界中的数据进行抽象,得到符合现实世界要求的、能被rdbms支持的数据模型。 即确定应用系统所使用的数据库应包含哪些表,每个表的结构是怎样的。 关系数据库设计有三种:概念结构设计、逻辑结构设计、数据库物理设计。 6. 设计步骤 需求分析:通过调查、收集和分析,明确用户对数据库的要求。 概念结构设计:对需求分析得到的用户需求进行综合、归纳与抽象,形成一个独立于具体dbms的概念模型。概念结构设计---建立实体-关系模型(entity-relationship,e-r) – e-r模型直接从现实世界中抽象出实体类型和实体间联系,然后用实体联系图(e-r图)表示数据模型,是描述概念世界,建立概念模型的实用工具。 – 实体:客观存在并可以相互区分的事物叫实体。从具体的人、物、事件到抽象的状态、概念,都可以用实体抽象地表示。用矩形表示,矩形框内写明实体名。 – 实体集:是共享公共性质的事物的集合。 – 属性:每个实体集涉及的信息项称为属性,即是实体集的一种性质。用椭圆形表示,并用无向边将其相应的实体连接起来。 – 实体集中的实体彼此是可区别的,如果实体集中的属性或最小属性组合的值能唯一标志其对应实体,则将该属性或属性组合称为码。对于每一个实体集,可指定一个码为主码。 实体集a和实体集b之间存在各种关系,通常把这些关系称为“联系”。 联系用菱形表示,通过直线与实体相连。这样构成的图就是e-r图,e-r图就是e-r模型的描述方法。 7.两个实体集a和b之间的联系可能是以下三种情况之一。一对一的联系(1:1):a中的一个实体最多与b中的一个实体相联系,b中的一个实体也最多与a中的一个实体相联系。 一对多的联系(1:n):a中的一个实体可以与b中的多个实体相联系,而b中的一个实体至多与a中的一个实体相联系。 多对多的联系(m:n):a中的一个实体可以与b中的多个实体相联系,而b中的一个实体也可与a中的多个实体相联系。 8.逻辑结构设计 实体:每个实体映射为一个表格。 属性:映射为相应表中的一个字段。 ? 关系映射 (1:1)联系的e-r图到关系模式的转换:既可单独对应一个关系模式,也可以不单独对应一个关系模式。 联系单独对应一个关系模式,则由联系属性、参与联系的各实体集的主码属性构成关系模式,其主码可选参与联系的实体集的任一方的主码。 联系不单独对应一个关系模式,联系的属性及一方的主码加入另一方实体集对应的关系模式中。 (1:n)联系的e-r图到关系模式的转换:既可单独对应一个关系模式,也可以不单独对应一个关系模式。 联系单独对应一个关系模式,则由联系的属性、参与联系的各实体集的主码属性构成关系模式,n端的主码作为该关系模式的主码。 联系不单独对应一个关系模式,则将联系的属性及1端的主码加入n端实体集对应的关系模式中,主码仍为n端的主码。 (m:n)联系的e-r图到关系模式的转换:单独对应一个关系模式,该关系模式包括联系的属性、参与联系的各实体集的主码属性,该关系模式的主码由各实体集的主码属性共同组成。 关系模式xs_kc的主码是由“学号”和“课程号”两个属性组合起来构成的一个主码,一个关系模式只能有一个主码。 在设计好一个项目的关系模式后,就可以在数据库管理系统环境下创建数据库、关系表及其他数据库对象,输入相应数据,并根据需要对数据中的数据进行各种操作。 10.数据的物理模型即指数据的存储结构,如对数据库物理文件和索引文件的组织方式、文件的存取路径、内存的管理等。物理模型不仅与数据库管理系统有关,还和操作系统甚至硬件有关,物理模型对用户是不可见的。 11.数据库的连接方式 1). odbc数据库接口 odbc即开放式数据库互连(open database connectivity),是微软公司推出的一种实现应用程序和关系数据库之间通信的接口标准。符合标准的数据库就可以通过sql语言编写的命令对数据库进行操作,但只针对关系数据库。目前所有的关系数据库都符合该标准,如oracle、sql server、mysql、db2、sybase、access等。odbc本质上是一组数据库访问api(应用程序编程接口),由一组函数调用组成,核心是sql语句。 在具体操作时,首先必须用odbc管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及odbc驱动程序等信息,建立起odbc与具体数据库的联系。这样,只要应用程序将数据源名提供给odbc,odbc就能建立起与相应数据库的连接。 mysql是通过mysql connector/odbc(myodbc驱动程序系列)为odbc提供支持的。odbc驱动包管理器是用于管理odbc应用程序和驱动程序间通信的库。odbc.ini是odbc配置文件,其中保存了连接到服务器所需的驱动信息和数据库信息。odbc驱动管理器将使用它来确定加载哪个驱动程序(使用数据源名)。 2). ado数据库接口 ado(activex data object)是微软公司开发的基于com的数据库应用程序接口,通过ado连接数据库,可以灵活地操作数据库中的数据。 使用ado访问关系数据库有两种途径:一种是通过odbc驱动程序,另一种是通过数据库专用的ole db provider,后者有更高的访问效率。 3). ado.net数据库接口 ado.net数据模型从ado发展而来,但它不只是对 ado的改进,而是采用了一种全新的技术。主要表现在以下几个方面: ● ado.net不是采用activex技术,而是与.net框架紧密结合的产物。 ● ado.net包含对xml标准的完全支持,这对于跨平台交换数据具有重要的意义。 ● ado.net既能在与数据源连接的环境下工作,又能在断开与数据源连接的条件下工作。特别是后者,非常适合于网络应用的需要。因为在网络环境下,保持与数据源连接,不符合网站的要求,不仅效率低,付出的代价高,而且常常会引发由于多个用户同时访问时带来的冲突。因此ado.net系统集中主要精力用于解决在断开与数据源连接的条件下数据处理的问题。 ado.net提供了面向对象的数据库视图,并且在ado.net对象中封装了许多数据库属性和关系。更重要的是,ado.net通过很多方式封装和隐藏了很多数据库访问细节,可以完全不知道对象在与ado.net对象交互,也不用担心数据移动到另外一个数据库或者从另一个数据库获得数据的细节问题。 数据层是实现ado.net断开式连接的核心,从数据源读取的数据先缓存到数据集中,然后被程序或控件调用。数据源可以是数据库或xml数据。 数据提供器用于建立数据源与数据集之间的联系,它能连接各种类型的数据,并能按要求将数据源中的数据提供给数据集,或者从数据集向数据源返回编辑后的数据。 mysql使用mysql connector/net实施了所需的ado.net接口,并将其集成到了ado.net aware工具中。从而使开发人员能够方便地创建需要安全和高性能数据连接(与mysql)的.net应用程序。mysqlconnector/net是用纯c#语言编写的可完全管理的ado.net驱动程序。 4). jdbc数据库接口 在jdbc api中有两层接口:应用程序层和驱动程序层,前者使开发人员可以通过sql调用数据库和取得结果,后者处理与具体数据库驱动程序的所有通信。 使用jdbc接口对数据库操作有如下优点: (1)jdbc api与odbc十分相似,有利于用户理解; (2)使编程人员从复杂的驱动器调用命令和函数中解脱出来,而致力于应用程序功能的实现; (3)jdbc支持不同的关系数据库,增强了程序的可移植性。 使用jdbc的主要缺点:访问数据记录的速度会受到一定影响,此外,由于jdbc结构中包含了不同厂家的产品,这给数据源的更改带来了较大麻烦。 mysql通过mysql connector/j驱动实现jdbc接口,它提供了与使用java编程语言开发的客户端应用程序的连通性。mysql connector/j是一种纯java程序,实施了3.0版jdbc规范,并能使用mysql协议与mysql服务器直接通信。 5). 数据库连接池技术 对于网络环境下的数据库应用,由于用户众多,使用传统的jdbc方式进行数据库连接,系统资源开销过大成为制约大型企业级应用效率的瓶颈,采用数据库连接池技术对数据库连接进行管理,可以大大提高系统的效率和稳定性。 12. 对于一般的数据库应用系统,除了数据库管理系统外,需要设计适合普通人员操作数据库的界面。 当应用程序需要处理数据库中的数据时,首先向数据库管理系统发送一个数据处理请求,数据库管理系统接收到这一请求后,对其进行分析,然后执行数据操作,并把操作结果返回给应用程序。由于应用程序直接与用户打交道,而数据库管理系统不直接与用户打交道,所以应用程序被称为“前台”,而数据库管理系统被称为“后台”。由于应用程序是向数据库管理系统提出服务请求,通常称为客户程序(client),而数据库管理系统是为其他应用程序提供服务,通常称为服务器程序(server),所以又将这种操作数据库模式称为客户/服务器(c/s)模式。 应用程序和数据库管理系统可以运行在同一台计算机上(单机方式),也可以运行在网络方式。在网络方式下,数据库管理系统在网络上的一台主机上运行,应用程序可以在网络上的多台主机上运行,即一对多的方式。对于mysql,除了服务器安装数据库管理系统外,还需要在客户端安装数据库客户程序。 13. 基于web的数据库应用采用三层客户/服务器模式,也称b/s结构。第一层为浏览器,第二层为web服务器,第三层为数据库服务器。浏览器是用户输入数据和显示结果的交互界面,用户在浏览器表单中输入数据,然后将表单中的数据提交并发送到web服务器,web服务器应用程序接收并处理用户的数据,通过数据库服务器,从数据库中查询需要的数据(或把数据录入数据库)送到web服务器,web服务器把返回的结果插入html页面,传送到客户端,在浏览器中显示出来。 14. 关系数据库的标准语言是sql(structured query language,结构化查询语言)。sql语言是用于关系数据库查询的结构化语言,最早由boyce和chambedin在1974年提出,称为sequel语言。1976年,ibm公司的san jose研究所在研制关系数据库管理系统system r时修改为sequel2,即目前的sql语言。sql语言的功能包括数据查询、数据操纵、数据定义和数据控制4个部分。sql语言简洁、方便实用,为完成其核心功能只用了6个命令:select、create、insert、update、delete、grant(revoke)。目前已成为应用最广的关系数据库语言。sql语言简洁,易学易用。 15. mysql简介: mysql是一个小型关系型数据库管理系统,开发者为瑞典mysql ab公司。目前mysql被广泛地应用在internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了mysql作为网站数据库。 与其他的大型数据库相比,mysql还有一些不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,mysql提供的功能已经绰绰有余,而且由于mysql是开放源码软件,因此可以大大降低总体拥有成本。 目前internet上流行的网站构架方式是lamp(linux+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、solaris、windows等多种操作系统。 ● 为多种编程语言提供了api。这些编程语言包括c、c++、eiffel、java、perl、php、python、ruby和tcl等。 ● 支持多线程,充分利用cpu资源。 ● 优化的sql查询算法,可有效地提高查询速度。 ● 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的gb2312、big5,日文的shift_jis等都可以用做数据表名和数据列名。 ● 提供tcp/ip、odbc和jdbc等多种数据库连接途径。 ● 提供可用于管理、检查、优化数据库操作的管理工具。 ● 可以处理拥有上千万条记录的大型数据库。 2008年sun公司收购mysql ab公司。 16.mysql的安装和配置见资料文件下安装word文件,重新配置服务器,如下: 如果要对服务器重新配置,可以打开“开始”→“程序”→“mysql”→“mysqlserver 5.1”→“mysql server instance config wizard”,在出现的配置向导中重新配置服务器。 (1)选项文件 在c:/program files/mysql/mysql server 5.1的mysql主目录下有一个my.ini文件,这是mysql的选项文件,在mysql启动时会自动加载文件中的一些选项。可以通过修改选项文件来修改mysql的一些默认设置,具体会在以后的内容中了解到。 (2)数据目录 “destination folder”为mysql所在的目录,默认的目录为:c:/program/files/mysql/mysql server5.1“datafolder”为mysql数据库文件和表文件所在的目录。 在mysql主目录下有一个my.ini文件,这是mysql的选项文件,在mysql启动时会自动加载文件中的一些选项,可以通过修改选项文件来修改mysql的一些默认设置。 mysql有一个data目录,用于存放数据库文件。mysql 5.1的默认的路径为c:/documents and settings/all users/application data/mysql/mysqlserver 5.1/data。在data目录中mysql为每一个数据库建立一个文件夹,所有的表文件存放在相应的数据库文件夹中。 作者 tianyazaiheruan bitscn.com
