1.1数据库表
一个数据库通常包含一个或多个表。每个表由一个名字标识,即表名。表包含带有数据的记录(行),第一行即每一列的首部一般为字段名,即每一列的内容概述。如上,该表表名为:dbo.gdbz,有6条记录,有国电标准文号、万方数据标准号、版本性质、中文名称 4个字段。
1.2 SQL语句
在数据库上执行的大部分工作都由 SQL 语句完成,SQL语句对大小写不敏感。
分号是在数据库系统中分隔每条 SQL 语句的标准方法,有的程序需要严格遵守,但是因为我使用的是SQl Server 2005,所以不必要。
1.3 SQL DML 和 DDL
SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。
SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。查询和更新指令构成了 SQL 的 DML 部分,如下:
SELECT - 从数据库表中获取数据
UPDATE - 更新数据库表中的数据
DELETE - 从数据库表中删除数据
INSERT INTO - 向数据库表中插入数据
SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。SQL 中最重要的 DDL 语句:
CREATE DATABASE - 创建新数据库
ALTER DATABASE - 修改数据库
CREATE TABLE - 创建新表
ALTER TABLE - 变更(改变)数据库表
DROP TABLE - 删除表
CREATE INDEX - 创建索引(搜索键)
DROP INDEX - 删除索引
3.关系数据库建模
3.1模拟现实
数据建模过程:
(1)手机观察结果和需求
(2)现实世界的逻辑表示
(3)可见实体的识别和设计
(4)架构设计(辅助和支持实体)
(5)应用程序结构设计
3.2可见实体
可见实体通常是大多数人能够识别的对象。
(1)每个元组(行)都是独立的
(2)主键
(3)表、行和列
3.3识别多个实体
(1)多个对象 (2)对象之间的关系 (3)组织对象 (4)一致的查找值 (5)复杂对象
3.4关系模式
关系使用键将实体关联起来,包含如下两个主要属性:
基数:在关系的每一端可能存在的对象数
可选性:关系是可选的也是强制的
(1)辅助实体和外键
两个对象彼此相关联时,通常一个实体为主实体,另一个实体为辅助实体。主实体中的一个对象将关联到辅助实体中的多个对象或元组。
(2)关系基数
指在关系的每一端有多少元组。在关系的主键端只能有一个元组,而在外键端可以有多个元组。
(3)关系的可选性:可选关系和强制关系对于数据库的完整性非常重要。
(4)绘制数据模型关系图
Chen ER关系图绘制方法非常简单,用sisio即可。
(5)关系种类
一对多 一对一 超类/子类 多对多
(6)类别实体
有时也称为查找表,
(7)自反关系
在两个相同类型的实体之间建立关系,比如人与人之间的上下级关系,家庭成员之间的关系等。
3.5规范化
规范化是减少更新异常的工具。
(1)实体/属性的设计原则:
每个数据库实体必须描述一个“事务”
属性和事务之间必须存在一对一的关系
每个属性必须描述其所属实体,而不能描述其相关的实体。
(2)范式
规范化通常以范式的方式定义。每种范式都描述了设计实体和属性时可能出现的错误,并提供了纠正这种错误的规则。因此范式类似于书面语言的语法规则。
规范化数据库与平面文件数据库比,优点如下:
消除重复存储
减少锁的争用
缩小文件
数据建模人员应该一开始就按照第三范式设计逻辑架构。
(3)第一范式
符合条件
A每个数据单元都是用标量属性表示的,标量值指的是“可以用标尺上的一个点表示”的值
B所有数据必须用唯一属性表示,每个属性都必须有唯一的名称和用途。
C所有的数据都必须用唯一的元组表示。
(4)第二范式
确保每个属性是实体属性。每个属性都必须有对应的主键。如果其他属性只依赖于主键的一个属性,而不依赖于主键的其他属性,这被称为部分依赖,违反了第二范式。
(5)第三范式
检查传递依赖。传递依赖和部分依赖的相似之处在于,他们值得都是属性不完全依赖于主键。当A依赖于B,B依赖于主键时,就发生了传递依赖。
同第二范式一样,解决方式是将非依赖属性移到新实体中。
*如果实体有很好的主键,每个属性都是标量且都完全依赖于主键,则逻辑设计符合第三方式,大多数数据库设计满足第三范式即可。
(6)BCNF范式
位于三四范式之间,用于处理实体有两组主键的问题。BCNF规定,在这种情况下,应将实体拆分为两个实体,每个实体包含一个主键。
(7)第四范式
用于处理复杂的符合主键导致的问题,如果将两个相互独立的属性组合成主键,同时还要有第三个属性,如果没有第三个属性,仅靠着两个属性不能唯一标识实体,则违反了第四范式。
(8)第五范式
用于设计涉及多个(3个以上)实体的复杂关系,如果设计正确可以设计出三元关系,其中每个关系的基数都可以是一或多。
3.6关系代数
关系代数有8个关系运算符组成
(1)限制:返回符合制定条件的行
(2)投影:从数据集中返回指定列
(3)积:关系乘法,返回两个数据集的所有可能的数据集合。
(4)联合:关系加法和减法,将一个表垂直堆叠到另一个表上,将两个表合并
(5)交集:返回两个表中都有的行
(6)差集:返回一个数据集中特有的行
(7)连接:返回两个表的水平合并结果,合并是根据都有的行来匹配
(8)除:返回两个数据集中完全匹配的内容
另外sql server还开发以下功能:
子查询
在关系代数中,使用以下术语:
表或数据集被称为关系或实体
行被称为元组
列被称为属性
转自 http://blog.sina.com.cn/s/blog_5f0493880100woe9.html