SQL server基础理论学习

 .SQL语法

   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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章