关系数据库
关系模型 定义:以二维表的形式表示实体和实体之间联系的数据模型称为关系数据模型。 从模型的三要素角度看,关系模型的内容为:
( 1 )数据结构:一张二维表格。
( 2 )数据操作:数据表的定义,检索、维护、计算等。
( 3 )数据约束条件:表中列的取值范围即域值的限制条件。
关系模型的几个常见概念:
( 1 )关系:一个关系就是一张二维表,每个关系都有一个关系名,即数据表名。 ( 2 )元组:表中的行称为元组,一行就是一个元组,对应表中一条记录。
( 3 )属性:表中的列称为属性,即字段。字段名称为属性名,字段值称为属性值。 ( 4 )域: 属性的取值范围,如,分数在 0 ~ 100 之间。
( 5 )关键字:表中的一个属性(组),它的值可以唯一地标志一个元组。如:学号。 ( 6 )候选码:表中的某一个属性,它的值可以唯一地标志一个元组。一个表中可能有多个候 选码,选择一个作为主键,主键的属性称为主属性。
(7) 外关键字:如果一个关系中的属性或属性组并非该关系的关键字,但它们是另外一个关 系的关键字,则称其为该关系的外关键字。
关系模型的完整性 : 关系模型的完整性是保证关系数据表正确的关键。
关系模型支持实体完整性约束、参照完整性约束和域约束 3 种完整性约束。 •
( 1 )实体完整性约束 假设 A 是一个表 R 的主键,则 A 不能接收空值,即单列主键的值不能为空. 复合主键的任何列都不能接收空值。
( 2 )参照完整性约束 参照完整性约束关心的是逻辑相关的表中值与值之间的关系。 假设 X 是一个表 A 的主键,在表 B 中是外键,那么若 K 是表 B 中一个外部键值, 则表 A 中必然存在在 X 上的值为 K 的记录。
( 3 )域约束 域是逻辑相关的值的集合,从域中可以得出特定列的值。 例如,在学生信息表中: ●“出生日期”域的值必须按照特定的统一格式存放,而不能有时用: 1986.12.23 格 式,有时用: 12/23/1986 格式,造成数据混乱; ●“学生名字”、“院系名称”等域的值必须属于字符集合; ●对于“性别”,该域中的值必须局限于男、女等。 ( 4 )数据库范式
本讲中只介绍第一范式 (1NF) 、第二范式 (2NF) 、第三范式 (3NF) 、第四范式 (4NF) 。 这 4 种范式,这对于绝大多数数据库来说已经足够了。
第一范式 (1)每个列的值都是不可分的简单数据项。
• 第二范式 (1)所有表必须符合第一范式; (2)表中每一个非主键列都必须完全函数依赖于主键(关键字)。 Patient_Id、Visit_Id、Oper_Id • 第三范式 (1)所有表必须符合第二范式。 (2)表中每一个非主键列对主键都不存在传递依赖,而应是直接依赖。(一个表中已有的非主 键列不能在其他表中也存在) Med_Pat_Master_Index表中的name字段,在其他表中就不能再存在。否则就会出现大量数据 冗余
第四范式
•
第四范式禁止了主键列和非主键列之间的一对多关系。
•
在表中,一个学生可以有多种喜欢的运动,也可以有多类喜欢的图书。这样在 同一表中具有这样两个不相关的列, 与主键存在多对一关系,使得表中存在冗 余现象和不对称情况 , 因为不知道每个人的喜好情况,也就无法知道哪列的值 多,哪列的值少,使得表格中出现了很多不规则的空白。
•
解决的方法同样是在遵守无损分解的条件下,将表分解成多个表,从而消除传 递依赖的情况。
关系数据库sql语言
语言: SQL • Structured Query Language ,结构化查询语言
。 SQL 语言的功能包括查询、操纵、 定义和控制,是一个综合的、通用的关系数据库语言,同时又是一种高度非过程化 的语言,只要求用户指出做什么而不需要指出怎么做。
• SQL标准: SQL-86 : ANSI/ISO 的第一个标准
SQL-89 :增加了引用完整性
SQL-92 :被数据库管理系统( DBMS )生产商广泛接受
SQL-99 :各种连接 jion 操作语法
SQL-2003 :包含 XML 相关内容,自动生成列值
SQL-2006 :定义了 SQL 与 XML (包含 XQuery )的关联应用