应尉应胪应胎应用4
应肌
BEK
应阻\
酬3/
UWT:
朗斗/
dwy
二、概念结构设计方法:
通常采用自顶向下法,通过两个步骤完成概念设计,即首先建立局部信息结构,然后将局部信息结构合成为全局信息结构并优化。
1、E-R图的表示方法i)实体性,用矩形表示:
ii)属性,用椭圆形表示:
iii)联系,用菱形表示。
2、两个实体型之间的联系:
①一对一联系(1:
1);②一对多联系(1:
N)
③多对多联系(M:
N)
3、两个以上的实体型之间的联系:
(P75)也存在一对一;一对多;多对多;
4、单个实体型内的联系:
同一个实体集内各实体之间也可以存在一对一,一对多,多对多的联系。
5、局部信息结构设计:
根据需求分析报告中标明的不同用户视图范围所建
立的满足该范围内用户需求的信息结构称为局部信息结构。
局部信息结构设
计步骤如下:
(P77看实例演示)
(1)确定局部范围
(2)选择实体(3)选择实体的关键字属性(4)确定实体间联系(5)确定实体的属性
6、全局信息结构设计:
是将上述产生的所有局部信息结构合并成为一个全局信息结构。
合并过程是一个不断发现和解决冲突的过程,通常,各局部E-R图之间的冲突主要表现在三个方面:
属性冲突、命名冲突、结构冲突。
(P79看具体理解)
(1)属性冲突:
属性域冲突和属性取值单位冲突;
(2)命名冲突:
同名异义和异名同义:
(3)结构冲突:
i)同一对象在一个局部E-R图中作为实体,而在另一个局部E-R图中作为属性
ii)同一个实体在不同的E-R图中属性个数和类型不同
iii)实体之间的联系在不同的E-R图中是不同的类型
三、逻辑结构设计方法
逻辑结构设计任务是把概念结构设计产生的概念模型转换为具体的DBM新
支持的逻辑数据模型,也就是导出特定的DBM测以处理的数据库逻辑结构(数据库的模式和外模式),这些模式在功能、性能、完整性和一致性约束方面满足应用要求。
那么在关系数据库设计中,逻辑结构设计的任务就是把概念结构设计阶段已设计好的E-R图转换为关系数据库管理系统所支持的关系模型,通常包括
以下三项工作:
1.E-R图向关系模型的转换
2.数据模型的优化
3.设计用户子模式
四、物理设计方法(P81看实例讲解)
物理设计的主要任务是通过对关系建立索引和聚集来实现与应用相关数据的逻辑连接和物理聚集,以改善对数据库的存取效率。
1.建立索引(通常有动态和静态两种)
2.建立聚集(聚集是将相关数据集中存放的物理存储技术,借以提高I/O的数据命中率而改善存取速度,其功能由具体的DBMS所提供)数据聚集结构的一种有效方式--块结构方式。
第四章SQL与关系数据库基本操作
关系数据库各种基本操作的SQL语句,包括数据定义、数据更新、数据查询、视图使用。
一、SQL概述:
SQL是1974年由Boyce和Chamberlin提出;
SQL的特点:
1)SQL不是某个特定的数据库供应商专有的语言。
几乎所有重要的关系数据库管理系统都支持SQL所以掌握SQL可以帮助用户与几乎所有的关系数据库进行交互。
2)SQL简单易学。
它的语句全都是由具有很强的描述性的英语单词所组成,而且这些单词的数目不多。
3)SQL尽管看上去很简单,但它实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。
SQL的组成:
SQL是集数据查询、数据定义、数据操纵、数据控制四大功能为一体。
核心包括以下几个部分:
1.数据定义语言(DDL:
数据定义语言包括主要SQL语句有以下三个:
1)CREATES于创建数据库或数据库对象
2)ALTER用于对数据库或数据库对象进行修改
3)DROP用于删除数据库或数据库对象
2.数据操纵语言(DML:
主要用于操纵数据库中各种对象,特别是检索和修_数据。
主要包括语句如下:
1)SELECT用于从表或视图中检索数据,其是数据库中使用最为频繁的SQL语句之一o
2)INSERT用于将数据插入到表或视图中。
3)UPDATE用于修改表或视图中的数据,其即可修改表或视图中一行数据,也可同时修改多行或全部数据。
4)DELETE用于从表和视图中删除数据,其中可根据条件删除指定的数据。
3.数据控制语言(DCL:
主要用于安全管理,例如确定哪些用户可以查看或修改数据库中的数据,主要包括以下SQL语句:
1)GRANT用于授予权限,可把语句许可或对象许可的权限授予其他用户和角色。
2)REVOKE用于收回权限,其功能与GRAN相反,但不影响该用户或角色从其他角色中作为成员继承许可权限。
4.嵌入式和动态SQL规则:
规则规定了SQL语句在高级程序设计语言中使用的规范方法,以便适应较为复杂的应用。
5.SQL®用和会话规则:
SQL调用包括SQL例程和调用规则,以便提高SQL的灵活性、有效性、共享性以及使用SQL具有更多的高级语言的特征。
SQL会话规则则可使应用程序连接到多个SQL®务器中的某个,并与之交互。
二、MySQ预备知识
目前,使用MySQ数据库管理系统构建各种信息管理系统或互联网网站的应用环境主要有如下构架方式:
1)LAMPLinux作为操作系统,Apache作为Wet®务器,MySQ作为数据库管理系统,PHRPerl或Python语言作为服务器端脚本解释器。
2)WAMPWindows作为操作系统,Apache作为Web服务器,MySQ作为数据库管理系统,PHPPerl或Python语言作为服务器端脚本解释器。
三、MySQl中的SQL(P87)
MySQL乍为一种关系型数据库管理系统,遵循SQL标准,提供了对数据定义语言DDL数据操纵语言DML数据控制语言DCL并且同样支持关系数据库的三级模式结构。
如图
SQL
MySQL在SQL标准的基础上增加了部分扩展语言要素:
包括常量、变量、运算符、表达式、函数、流程控制语句和注释。
1)常量:
是指在程序运行过程中值不变的量,也称为字面值或标量值。
常量的使用格式取决于值的数据类型,可分为字符串常量、数值常量、十六进制常量、时间日期常量、位字段值、布尔值和NULL值。
2)变量:
用于临时存储数据,变量有名字和数据类型两个属性。
其中变量的名
字用于标识变量,变量的数据类型用于确定变量中存储数值的格式和可执行的运算。
在MySQ中,变量分为用户变量和系统变量,在使用时,用户变量前
常添一个符号“@,用于将其和列名区分开;而大多数系统变量应用于其他SQL
语句时,必须在系统变量名前加两个“@
3)运算符(P88)
4)表达式:
表达式是常量、变量、列名、复杂计算、运算符、函数的集合。
5)内置函数:
•数学函数,例如ABS()函数、SORT()函数•聚合函数,例如COUNT)函数
•字符串函数,例如ASCII()函数、CHAR()函数•日期和时间函数,例如NOW(函数、YEAR()函数
•加密函数,例女口ENCODE函数、ENCRYPT函数
•控制流程函数,例如IF()函数、IFNULL函数•格式化函数,例如FORMAT)函数•类型转换函数,例如CAST()函数
•系统信息函数,例如USER()函数、VERSION)函数
四、数据定义
SQL的数据定义功能包括数据库模式定义、表定义、索引定义和视图定义。
(P89)
㈠数据库模式定义:
包含数据库的创建、选择、修改、删除、查看等操作。
1.创建数据库,可以使用CREATEDATABA或ECREATESCHEMA
2.选择数据库,使用USE语句,指定某个数据库为当前数据库之后,才能对该数据库及其存储的数据对象进行各种操作。
3.修改数据库,可以使用ALTERDATABASEALTERSCHEM来;修改已被创建的数据库的相关参数。
4.删除数据库,可以使用DROPDATABASEDROPSCHEMA
5.查看数据库,可以使用SHOVDATABAS或SHOWCHEMAJ选项“LIKE”
关键字用于匹配指定的数据库名称,可选项“WHERE从句用于指定数据库名称
查询范围的条件。
㈡表定义:
只有成功创建数据库之后,才能在数据库中创建数据表,数据表是关系数据库中最重要、最基本的数据对象,也是数据库存储的基本单位。
1.创建表,MySQL®用CREAT圧ABLE语句创建表。
该语法主要由表的创建
定义、表选项、和分区选项等内容构成。
1)临时表与持久表,带TEMPORARY临时表,不带为持久表
2)数据类型,主要有数值类型、布尔型、日期和时间类型、字符串类型、空_间数据类型等。
3)关键字AUTO_INCREMENT
4)指定默认值
5)NULL值,指没有值或缺值。
6)主键,通过PRIMARKEY关键字来指定,主键值必须唯一,且一定要为NOTNULL
2.更新表,为了实现数据库表的规范化设计的目的,可以使用ALTERTABLED句来更改原有表的结构,有以下几个子句:
1)ADD[COLUM子句,增加新列,也可增加多个列。
也可在ALTERTABLETADDPRIMARYKEYKDDINDEX和ADDFOREIGNKEY原表添加一个主键、索引和
外键。
2)CHANGE[C0LUM子句,修改制定列的名称和数据类型,且在ALTERTABLE下同时放入多个CHANGE[COLUM子N句。
3)ALTER[C0LUM子句,修改或删除指定列的默认值。
4)M0DIFY[C0LUM子句,与ALTER[COLUM不|同的是,只是修改列的数据类型,不会干涉列名。
5)DR0P[C0LUM子句,用于卸除多余的列,一旦卸除列,原本存储在该列的一切内容都会跟着被卸除。
6)RENAME[C0LUM子句,为表重新赋予一个表名。
3.重命名表,除了前面ALTERTABLE语句,也可以直接用RENAMETAB进行更改表的名字。
4.删除表,通过DR0PTABL语句实现,但操作者必须有该命令权限,删除表时,数据和分区信息均会被删除,但权限不会删除。
5.查看表,1)显示表的名称,使用SHOWTABLES句;
2)显示表的结构,使用SHOWCOLUM语句。
五、索引定义
索引,就是DBMS艮据表中的一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表,因而索引实质上是一张描述索引列值与愿表中记录行之间一对应关系的有序表。
..
索引是提高数据文件访问效率的有效方法,也存在弊端:
1)索引是以文件的形式存储的,DBM陰将一个表的所有索引保存在同一个索引文件中,索引文件需要占用磁盘空间;
2)索引在提高查询速度的同时,会降低更新表的速度。
索引在逻辑上通常包含以下几类:
1)普通索引L(INDEX,通常使用关键字INDEX或KEY
2)唯一性索引(UNIQUE,索引列的所有值都只能出现一次
3)主键(PRIMARYKEY,主键是一种唯一性索引,创建主键时,必须指定关键字PRIMARYKE,Y且不能有空值。
实际使用中,索引通常索引通常被创建程单列索引丄和纽合索引。
—
1.索引的创建
1.使用CREATEINDE语句创建索引,但该句不能创建主键。
语法格式:
CREATE[UNIQUE]INDEXindex_name
ONtbl_name(index_col_name...)
关键字:
ASC升序)和DESC降序),默认时为ASC
2.使用CREATETABL语句创建索引,索引可以在创建表的同时被创建。
3.使用ALTERTABL语句创建索引,在使用ALTERTABL语句修改表的同时,可以向已有的表中添加索引。
(语法项P100
4.索引的查看,可以使用SHOWINDE语句
5.索引的删除,可以使用DROPINDE或ALTERINDEXS句来删除。
七、数据更新(P102)
数据更新在SQL中三类相应语句,插入数据(INSERT)修改数据(UPDATE删除数据(DELETE
㈠插入数据_(详细看书)
1.使用INSERT...VALUES语句插入单行或多行元组数据
语法格式:
INSERT[INTO]tbl_name[(col_name,…)]
{VALUES|VALUE}({expr|DEFAULT}/•),(…),…
语法中:
1)”tbl_name”指定欲被插入数据的表名
2)”col_name”指定需要插入数据的列名列表
3)通过关键字”VALUES或”VALUE引导的子句,其包含各列需要插入的数据单•
I)”expr”表示常量、变量或一个表达式,也可以是空值NULL,其值的数据类型要与列的数据类型一致。
II)关键字“default即用于指定此列值为该列的默认值,前提是该列之前已经明确指定了默认值,否则插入语句会出错。
2.使用INSERT...SET语句插入部分列值数据
可以使用INSERT...SET语句直接给表中的某(些)列指定对应的列值,既要插入数据的列名在SET子句中指定,这种方式更灵活,语法格式如下:
INSERT[INTO]tbl_name
SETcol_name={expr|DEFAULT},••
3.使用INSERT...SELECT语句插入子查询数据
子查询不仅可以嵌套在SELECTS句中,用于构造父查询的条件,也可以嵌套在INSERT语句中,用于生成要批量插入的数据。
语法格式:
INSERT[INTO]tbl_name[(col_na